【发布时间】:2017-06-07 05:25:42
【问题描述】:
首先,我对 Power Shell(以及一般脚本)非常陌生。我试图编写一个简单的脚本,让所有用户都拥有一个特定的经理,然后将他们设置为一个新的经理,这让我感到很困惑。目前,我们在 AD 中手动执行此操作,这可能很耗时。
但是,使用下面的脚本,我不断收到以下错误:
Set-ADUser:对象引用未设置为对象的实例。 在行:6 字符:2 + Set-ADUser -Identity $users -Manager jane.manager
这是我的简短脚本:
$users=Get-ADUser -Identity john.manager -Properties directreports | Select directreports
ForEach ($user in $users) {
Set-ADUser -Identity $users -Manager jane.manager
}
【问题讨论】:
-
不应该是
$user而不是$users吗? -
根据@t0mm13b...您正在循环遍历每个
$users,调用您正在处理的当前项目$user,因此您要确保Set-ADUsercmdlet仅在每个(单个)$user上依次运行。 -
另外,如果您是这个游戏的新手(即以编程方式修改 Active Directory),请使用
-WhatIf和/或-Confirm打开Set-ADUser,直到您确定什么都没有疯狂的事情会发生。您不想将每个人的经理设置为 Jane 吗?她很快就会要求加薪。 -
感谢您发现单数/复数问题!还有,哈!我在测试环境中,但很高兴知道有一个 -WhatIf 命令!谢谢!
标签: powershell active-directory