尝试为列出了传真号码的所有用户在AD中编辑传真号码

时间:2019-01-24 16:25:42

标签: powershell

我首先要说我是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 :(得分: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,双击并从那里复制。