Без использования инструментов 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
, дважды щелкните и скопируйте оттуда.