【发布时间】:2022-01-18 08:23:54
【问题描述】:
我正在尝试使用 powershell 从 CSV 文件更新 AD 用户属性:title、physicalDeliveryOfficeName 和部门。我是powershell的新手,所以我需要一些帮助。 (请,并提前感谢) 所以,想法是匹配的过滤器是 displayName 属性,我使用的脚本是:
Import-Module ActiveDirectory
$csv = Import-Csv C:\Temp\AD_import_test.csv
foreach ($line in $csv) {
$displayName = $line.displayName
Get-ADUser -Filter {displayName -eq $displayName} |
Set-ADUser -Title $($csv.title) -department $($csv.Department) -physicalDeliveryOfficeName $($csv.physicalDeliveryOfficeName) }
但脚本返回错误:
Set-ADUser : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Title'. Specified method is not supported.
At line:6 char:19
+ Set-ADUser -Title $($csv.title) -department $($csv.Department) -physi ...
+ ~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.SetADUser
Set-ADUser : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Title'. Specified method is not supported.
At line:6 char:19
+ Set-ADUser -Title $($csv.title) -department $($csv.Department) -physi ...
+ ~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.SetADUser
【问题讨论】:
-
顺便说一句,
-Filter真的应该是一个 字符串 而不是脚本块,所以使用-Filter "DisplayName -eq '$displayName'"
标签: powershell csv import active-directory