none
задача по заполнению учетки RRS feed

  • Вопрос

  • Не поможете решить три задачи в AD на posh или active role

    1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name

    (или в  upn до суффикса)

    Сейчас по-русски sam account name, хочу по сделать по англицки
    2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
    3) заполнить в поле , например, область,край, определенное значение
    Особо интересует, первая и вторая задача

    Буду крайне признателен

    31 марта 2018 г. 9:09

Ответы

  • 1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name

    Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
    	Set-ADUser $_ -SamAccountName $_.mail.split("@")[0]
    }


    2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
    Get-ADUser -filter "facsimileTelephoneNumber -like '*'" -Properties facsimileTelephoneNumber | Foreach {
    	Set-ADUser $_ -PostalCode $_.facsimileTelephoneNumber
    }


    3) заполнить в поле , например, область,край, определенное значение
    Set-ADUser myuser -State "область,край"

     
    31 марта 2018 г. 11:14
    Отвечающий
  • для borisovea

    $sam = $_.mail.split("@")[0].Trim().replace("_","")

    для eaborisov

    $sam = $_.mail.split("@")[0].Trim().split("_")[-2,-1,0] -join ""
    Set-ADUser $_ -SamAccountName $sam


    • Предложено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
    • Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
    31 марта 2018 г. 14:32
    Отвечающий

Все ответы

  • 1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name

    Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
    	Set-ADUser $_ -SamAccountName $_.mail.split("@")[0]
    }


    2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
    Get-ADUser -filter "facsimileTelephoneNumber -like '*'" -Properties facsimileTelephoneNumber | Foreach {
    	Set-ADUser $_ -PostalCode $_.facsimileTelephoneNumber
    }


    3) заполнить в поле , например, область,край, определенное значение
    Set-ADUser myuser -State "область,край"

     
    31 марта 2018 г. 11:14
    Отвечающий
  • Огромное спасибо! Скажите, а в задачах два и три также фильтровать по OU с помощью конструкции 

    -SearchBase "OU=MyUsers,DC=contoso,DC=ru"

    31 марта 2018 г. 12:31
  • Да, подход не меняется. Справку можно посмотреть -  Get-Help Get-ADUser -Full

    31 марта 2018 г. 13:21
    Отвечающий
  • Сейчас смотрю. Немного непонятно, как еще сделать такое

    Допустим, в первой задаче в поле email указаны почтовые адреса в формате

    borisov_e_a@lg.com вот этот скрипт проставит borisov_e_a в поле SamAccount Name

    Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
    	Set-ADUser $_ -SamAccountName $_.mail.split("@")[0]

     А если надо убрать пробелы, т.е проставить в SAM account name в таком виде borisovea или eaborisov

    Можно как-то в posh просто убрать подчеркивания? (и два последних сивола переставить в начало, но хотя бы пробелы убрать) ?

    31 марта 2018 г. 14:16
  • для borisovea

    $sam = $_.mail.split("@")[0].Trim().replace("_","")

    для eaborisov

    $sam = $_.mail.split("@")[0].Trim().split("_")[-2,-1,0] -join ""
    Set-ADUser $_ -SamAccountName $sam


    • Предложено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
    • Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
    31 марта 2018 г. 14:32
    Отвечающий
  • круто, спасибо. Буду тренироваться

    31 марта 2018 г. 15:11
  • Я понимаю, что несколько поднадоел, но все же

    Вот так отлично работает

    Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name

    Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
    	Set-ADUser $_ -SamAccountName $_.mail.split("@")[0]
    }

    А вот если меняю, задачу. Допустим у человека почта borisov_e_a@firma1.com, а я не в поле sAMAccountName хочу ему подставить borisov_e_a, а в поле UserPrincipalName

    А UPN у него от почтового отличается upn borisov_e_a@firma1.lg.com, а почта borisov_e_a@firma1.com

    К примеру, код

    Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
    Set-ADUser $_ -UserPrincialName $_.mail.split("@")[0]
    }

    "срезает" все после собаки, и надо руками выбирать доменный компонент из списка. А как правильно указать, чтобы оставлял в UPN firma1.lg.com

    2 апреля 2018 г. 12:20