Попытка изменить номер факса в AD для всех пользователей с указанным номером факса - PullRequest
0 голосов
/ 24 января 2019

Сначала я скажу, что я новичок в PowerShell, и мой вопрос, вероятно, очень легко решить. Все, что я пытаюсь сделать, - это использовать Get-QADuser и захватить всех пользователей рекламы с указанным номером факса, после того как я просто хочу добавить «1» ко всем этим пользователям в начале указанного номера факса. Я пытаюсь перейти на основе кода, который я вижу ниже, но я не верю, что это именно то, что мне нужно. Любая помощь приветствуется!

Get-QADUser -SearchRoot "abc.com/ABC/Users" -LdapFilter '(facsimileTelephoneNumber=555-555-1234)' | Foreach-Object{Set-QADuser -Identity $_ -ObjectAttributes @{facsimileTelephoneNumber='555-555-4321'}}

1 Ответ

0 голосов
/ 25 января 2019

Без использования инструментов Quest вы могли бы сделать что-то вроде ниже.
Предполагается, что вы хотите добавить 1 к отформатированному номеру факса, поэтому я собираюсь добавить 1- к существующемуномер, но ТОЛЬКО если существующий номер еще не начинается с 1 или + (используется для кодов стран).

Прямо сейчас, переключатель -WhatIf заставит код выводить только то, что произошло бы, так что вы можете выяснить, действительно ли это то, что вам нужно.Если вы довольны выводом, удалите переключатель -WhatIf, чтобы код фактически обновлял номера факсов, где это применимо.

Import-Module ActiveDirectory

# get all users in the specified OU that have a fax number
Get-ADUser -LdapFilter '(facsimileTelephoneNumber=*)' -SearchBase 'OU=UserAccounts,DC=YourDomain,DC=com' -Properties 'Fax' | ForEach-Object {
    # test if the number starts with a '1' or a '+' and if that is NOT the case, prepend '1-' to the number
    if ($_.Fax -notmatch '^[+1].*') {
        # the faxnumber does not already start with "1" or "+"
        $newFax = '1-{0}' -f $_.Fax
        Write-Host "Setting Faxnumber to '$newFax' for user $($_.Name)"
        # remove the '-WhatIf' if you are sure the number may be changed
        $_ | Set-ADUser -Fax $newFax -WhatIf
    }
    else {
        Write-Host "Faxnumber '$($_.Fax)' for user $($_.Name) remains unchanged" -ForegroundColor Yellow
    }
}

Ps -SearchBase - это DistinghuishedNameсвойство подразделения, в котором находятся пользователи. Запустите «Active Directory - пользователи и компьютеры» (ADUC), выберите и щелкните правой кнопкой мыши нужное подразделение и выберите «Свойства».На вкладке «Атрибуты» прокрутите вниз до distinghuishedName, дважды щелкните и скопируйте оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...