Powershell 设置 Mailnickname 属性

Powershell setting Mailnickname attribute

我有一些 powershell 代码,在创建用户后,代码使用 Quest/AD 分配属性的帐户负载。除 Mailnickname 外,所有属性均已分配。这有什么原因吗/我该如何解决。下面是我的代码:

get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$x) -verbose
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$xy+"@domainexample.mail.onmicrosoft.com") -verbose
get-qaduser $xy | Set-QADUser -ObjectAttributes @{msExchVersion="44210883383015"} -verbose
Set-QADUser -identity $xy -ObjectAttributes @{mailnickname = $xy}

有没有人对如何设置它有什么建议。

提前致谢。

史蒂夫

一定要用Quest吗?这适用于 PS v3 本机:

Get-ADUser $xy | Set-ADUser -Add @{mailNickname=$xy}

或者:

Get-ADUser $xy | Set-ADUser -Replace @{mailNickname=$xy}

在下面回答您的问题:

我假设您指的是 PowerShell v1。我没用过 PS v1。您是否以 Import-Module ActiveDirectory 开始您的脚本?如果没有,您应该 post 将其放在行首。对于附近的 Quest,脚本总是以 Import-Module ActiveDirectory 开头,下一行是 Add-PSSnapIn Quest.ActiveRoles.ADManagement。这适用于 PS v2:

Import-Module ActiveDirectory
Add-PSSnapIn Quest.ActiveRoles.ADManagement
#This line lets you just type the user you want to modify
$XY = Read-Host "Input User ID"
#This is your code you said works
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$x) -verbose
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$xy+"@domainexample.mail.onmicrosoft.com") -verbose
get-qaduser $xy | Set-QADUser -ObjectAttributes @{msExchVersion="44210883383015"} -verbose
#This should add the mailNickname property through standard PS
Get-ADUser $XY | Set-ADUser -Add @{mailNickname = $XY}

看看是否满足您的需要,然后回复我。请记住:在此示例中,您将变量 $XY 声明为用户在 运行 脚本时输入的任何内容。

您看到这种情况的可能原因是 ARS 'Built-in Policy - Default E-mail Alias' 政策。您可以通过检查您尝试 create/modify.

的用户对象的更改历史记录来验证情况是否如此。

您会看到 属性 'Alias (mailNickName)' 已从操作请求中删除,因为没有请求 Exchange 任务。

尝试同时设置 targetAddress 属性以避免被此策略丢弃。