我们正在尝试做一些非常简单的事情,即为多个用户更改
EmployeeID
,但遇到了一些问题。
我们有一个变量
$ke
,其中包含:
EmployeeID Employee
00000122 username1
00000100 username2
我们正在尝试将
EmployeeID
更新为:
$username = $ke.Employee
foreach($user in $username) {
Set-ADUser $user -EmployeeID "$ke.EmployeeID"
}
但它因以下错误而失败:
Set-ADUser:属性值不在可接受的值范围内
行:2 字符:4
设置-ADUser $user -EmployeeID '$ke.EmployeeID'+ CategoryInfo : NotSpecified: (username1:ADUser) [Set-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8322,Microsoft.ActiveDirectory.Management.Commands.SetADUser
我们还尝试使用:
$username = $ke.Employee
foreach($user in $username) {
Set-ADUser $user -EmployeeID $ke.EmployeeID
}
Set-ADUser:无法将“System.Object[]”转换为参数“EmployeeID”所需的类型“System.String”。指定的 不支持该方法。
行:2 字符:33
设置-ADUser $user -EmployeeID $ke.EmployeeID+ CategoryInfo : InvalidArgument: (:) [Set-ADUser], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.SetADUser
我们如何解决这个问题?
如果我做对了,这应该足够了:
foreach($user in $ke) {
Set-ADUser $user.Employee -EmployeeID $user.EmployeeID
}