我想将一个域中用户的管理员属性更新为另一个域中的“用户”。
为此,我首先从 excel 文件中获取名称。在名字的基础上,我搜索第一个域并获得用户。
同样,我根据第二个名称搜索第二个域并获取用户。从两个域获取用户后。我想在 AD 中将用户(来自第二个域)设置为用户(来自第一个域)的管理员,但我收到错误消息
“找不到具有身份的对象:‘第二用户’下:‘DC = bs,DC = cl,DC = com,DC = au’”。
以下是脚本:
Import-Module psexcel
$path = "C:\Users\muh\testFile2.xlsx"
Import-XLSX -Path $path | ForEach-Object {
$ADUser = (Get-ADUser -Filter "DisplayName -eq '$($_.Store)'" -Server server1.bs.cl.com.au).Name
$manager = (Get-ADUser -Filter "displayname -eq '$($_.Name)'" -Server server2.cl.com.au).Name
if ($ADUser -And $manager)
{
$ADUser | Set-ADUser -Identity $ADUser -Manager $manager -Server server1.bs.cl.com.au
}
}
我做错了什么?
正如评论中所解释的那样,问题是由于用户的
.Name
属性的扩展而引起的,Set-ADUser
知道如何按原样设置AD用户对象。
以下将解决问题:
$path = 'C:\Users\muh\testFile2.xlsx'
Import-XLSX -Path $path | ForEach-Object {
if($user = Get-ADUser -Filter "DisplayName -eq '$($_.Store)'" -Server server1.bs.cl.com.au) {
if($manager = Get-ADUser -Filter "displayname -eq '$($_.Name)'" -Server server2.cl.com.au) {
$user | Set-ADUser -Manager $manager -Server server1.bs.cl.com.au
}
}
}