0

我有一些 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}

有人会对如何/如何进行设置有任何建议吗?

提前致谢。

史蒂夫

4

2 回答 2

0

您必须使用 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吗?如果没有,您应该将其发布在行首。对于 Quest around here,脚本始终以 开头,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 声明为用户在运行脚本时输入的任何内容。

于 2015-10-13T14:39:37.203 回答
-1

您看到此问题的可能原因是 ARS 的“内置策略 - 默认电子邮件别名”策略。您可以通过检查您尝试创建/修改的用户对象的更改历史来验证是否属于这种情况。

您将看到属性“别名(mailNickName)”已从操作请求中删除,因为没有请求任何 Exchange 任务。

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

于 2016-02-03T14:52:36.987 回答