我首先要说我是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'}}
答案 0 :(得分:0)
不使用Quest工具,您可以执行以下操作。
这里的假设是您想将1
添加到格式化的传真号码中,因此我要在现有号码前加上1-
,但前提是现有号码尚未以{开头{1}}或1
(用于国家/地区代码)。
现在,+
开关将使代码仅输出将要发生的情况,因此您可以调查这是否是您真正想要的。
如果您对输出感到满意,请删除-WhatIf
开关,以便代码实际在适用的情况下更新传真号码。
-WhatIf
P.s。 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
}
}
是用户所在的OU的-SearchBase
属性。启动“ Active Directory用户和计算机”(ADUC),选择并右键单击所需的OU,然后选择“属性”。在“属性”标签中,向下滚动到DistinghuishedName
,双击并从那里复制。