使用PowerShell更新Active Directory时无法找到位置参数错误

时间:2012-10-01 22:31:31

标签: powershell csv active-directory

我正在尝试使用CSV更新Active Directory用户条目。当我运行它时,我得到以下错误,我无法理解为什么。包含帐户名称的列不为空。

    Set-ADUser : A positional parameter cannot be found that accepts argument '$null'.
At line:2 char:11
+ Set-ADUSer <<<<  -Identity $_.sAMAccountName`
    + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser

(repeat for each row in the CSV)

这是我现有的更新脚本:

Import-Module ActiveDirectory
$userList = Import-Csv '.\UpdatedUserInfo.csv'

$userList|Foreach{
Set-ADUSer -Identity $_.sAMAccountName`
-givenName = $user.givenName`
-initials = $user.initials`
-sn = $user.sn`
-cn = $user.name`
-displayName = $user.displayName`
-department = $user.department`
-telephoneNumber = $user.telephoneNumber`
-facsimileTelephoneNumber = $user.facsimileTelephoneNumber`
-mobile = $user.mobile`
-homePhone = $user.homePhone`
-company = $user.Company`
-physicalDeliveryOfficeName = $user.physicalDeliveryOfficeName`
-streetAddress = $user.streetAddress`
-l = $user.l`
-postOfficeBox = $user.postOfficeBox`
-state = $user.st`
-postalCode = $user.postalCode
}

1 个答案:

答案 0 :(得分:0)

从我可以看到的这个cmdlet上的文档来看,您指定的参数不应在参数名称和值之间使用=。尝试摆脱所有=字符。

如果您确实有一个确实采用哈希表的参数,那么应该像这样指定该参数:​​

Set-ADUser -Replace @{name=_value_; name=_value_}