powershell - PowerShell - 更改 AD 属性时出错
问题描述
运行 PowerShell 脚本以更新用户属性。我正在使用测试用户开始,但一切似乎都符合要求。我尝试将列表文件同时作为 Excel 和 CSV 并得到相同的错误。为简单起见,我尽可能地将数据与 AD 属性匹配。我错过了一些东西,但看不到它在哪里。
Excel\CSV 数据:
PowerShell代码:
$users2 = import-excel "c:\orgstafflist2.xlsx"
foreach ($user in $users2) {get-aduser -filter "SamAccountName -eq '$($user.samaccountname)'" | set-aduser -displayname $($user.name) -surname $($user.last) -givenname $($user.first) -replace @{manager=$($user.manager)} -description $($user.description)}
错误信息:
set-aduser : The name reference is invalid
At line:1 char:97
+ ... ntname)'" | set-aduser -displayname $($user.displayname) -surname $($user.la ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=John Doe,OU=...riese,DC=office:ADUser) [Set-ADUser], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8373,Microsoft.ActiveDirectory.Management.Commands.SetADUser
解决方案
第一个问题是您尝试使用错误名称引用的显示名称列。第二个问题是您需要为经理提供一个 AD 用户专有名称。
$users2 = import-excel "c:\orgstafflist2.xlsx"
foreach ($user in $users2)
{
get-aduser -filter "SamAccountName -eq '$($user.samaccountname)'" |
set-aduser -displayname $($user.displayname) -surname $($user.last) -givenname $($user.first) -replace @{manager = $(get-aduser $user.Manager).distinguishedname} -description $($user.description)
}
您还应该考虑喷溅以提高可读性。
$users2 = import-excel "c:\orgstafflist2.xlsx"
foreach ($user in $users2)
{
$UserParam = @{
displayname = $user.displayname
surname = $user.last
givenname = $user.first
replace = @{manager = (get-aduser $user.Manager).distinguishedname}
description = $user.description
}
get-aduser -filter "SamAccountName -eq '$($user.samaccountname)'" | set-aduser @UserParam
}
推荐阅读
- pandas - Python:转换包含列表和字典的 Pandas 数据框
- ios - IOS 应用程序中未收到 Firebase 推送通知徽章计数
- java - 计时器无法按预期工作,因为它会立即结束程序
- multithreading - Goroutine-停止运行进程
- cuda - 当 cudaDeviceSynchronize() 出现错误 30?
- html - 导航栏不会一直走到边缘
- solr - Solr 8.6.3 无法索引 html 文件
- rest - 在具有应该唯一的指定属性的记录已经存在的情况下,是否可以使用 409 HTTP 代码?
- c++ - “错误 LNK2019:在函数 _main 中引用的未解析的外部符号 _long_add@12”在 C++ 中使用汇编函数时
- python - 在 3 维列表上使用 python pop() 时,它会从其他索引中删除元素