Powershell设置Mailnickname属性

时间:2015-10-12 16:49:56

标签: powershell active-directory quest

我有一些powershell代码,在创建用户之后,代码使用Quest / AD分配帐户的属性负载。除Mailnickname之外的所有属性都分配。是否有这样的原因/如何解决它。以下是我的代码:

>nm DeltaTimer.o
00000000000001a7 t _GLOBAL__I__ZN10DeltaTimerC2Ev
0000000000000145 T _Z3Barv
0000000000000167 t _Z41__static_initialization_and_destruction_0ii
00000000000000b0 T _ZN10DeltaTimer3FooEv
0000000000000000 T _ZN10DeltaTimerC1Ev
0000000000000000 T _ZN10DeltaTimerC2Ev
000000000000008a T _ZN10DeltaTimerD0Ev
0000000000000040 T _ZN10DeltaTimerD1Ev
0000000000000040 T _ZN10DeltaTimerD2Ev
                 U _ZNSolsEPFRSoS_E
                 U _ZNSolsEi
                 U _ZNSt8ios_base4InitC1Ev
                 U _ZNSt8ios_base4InitD1Ev
                 U _ZSt4cout
                 U _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
0000000000000000 b _ZStL8__ioinit
                 U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
0000000000000000 V _ZTI10DeltaTimer
0000000000000000 V _ZTS10DeltaTimer
0000000000000000 V _ZTV10DeltaTimer
                 U _ZTVN10__cxxabiv117__class_type_infoE
                 U _ZdlPv
00000000000000f1 T _ZlsRSoRK10DeltaTimer
                 U __cxa_atexit
                 U __dso_handle
                 U __gxx_personality_v0

>nm DeltaTimer.o | grep -i ostream
                 U _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
                 U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc

有人会对如何设置此内容有什么建议。

提前致谢。

史蒂夫

2 个答案:

答案 0 :(得分: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,脚本始终以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声明为运行脚本时用户输入的内容。

答案 1 :(得分:-1)

您之所以看到这种情况,可能是因为ARS'内置政策 - 默认电子邮件别名'政策。您可以通过检查您尝试创建/修改的用户对象的更改历史记录来验证是否是这种情况。

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

尝试同时设置targetAddress属性,以避免被此策略删除。