Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell-更改AD属性时出错_Powershell_Active Directory - Fatal编程技术网

PowerShell-更改AD属性时出错

PowerShell-更改AD属性时出错,powershell,active-directory,Powershell,Active Directory,运行PowerShell脚本以更新用户属性。我正在使用一个测试用户开始,但一切似乎都符合要求。我尝试将列表文件作为Excel和CSV,但得到了相同的错误。为了简单起见,我尽可能地将数据与广告属性进行匹配。我错过了一些东西,但看不见它在哪里 Excel\CSV数据: PowerShell代码: $users2 = import-excel "c:\orgstafflist2.xlsx" foreach ($user in $users2) {get-aduser -filte

运行PowerShell脚本以更新用户属性。我正在使用一个测试用户开始,但一切似乎都符合要求。我尝试将列表文件作为Excel和CSV,但得到了相同的错误。为了简单起见,我尽可能地将数据与广告属性进行匹配。我错过了一些东西,但看不见它在哪里

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

第一个问题是您尝试引用的displayname列的名称有误。第二个问题是您需要为经理提供广告用户可分辨名称

$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
}

您不能将
manager
属性设置为任何任意字符串,如“Jane Doe”-它需要是对目录中现有对象的引用。谢谢!!!事实上,我发现我的问题后,张贴这一点,但你是正确的。