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 属性以避免被此策略丢弃。
我有一些 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 属性以避免被此策略丢弃。