尝试批量编辑成本中心 (costCenter) 属性时出现 Windows PowerShell 错误

问题描述 投票:0回答:1

我正在尝试更改“costCenter”属性。 我注意到架构中的描述最初是“成本中心”。 我认为也许空间是一个问题,所以将其更改为“成本中心”。属性名称是“costCenter”。 我不知道我在这里缺少什么。 任何帮助表示赞赏。

以下是脚本:

导入模块 ActiveDirectory

$Attribcsv=导入-csv“C:\Temp\ADUsers_BulkEdit.csv” ForEach($Attribcsv 中的 $User)

{ 获取 ADUser -Identity $User.samAccountName |设置 ADUser -“成本中心”$($User.costCenter) }

不断吐出的错误如下:

Set-ADUser:找不到接受参数“MM”的位置参数。 行数:5 字符:45

  • ... $User.samAccountName |设置-ADUser -“成本中心”$($User.costCenter)
  •                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo:InvalidArgument:(:) [Set-ADUser],ParameterBindingException
    • FullyQualifiedErrorId:PositionalParameterNotFound、Microsoft.ActiveDirectory.Management.Commands.SetADUser


I've run the script with different attributes--for testing purposes--successfully:
1. Using the "description" attribute under the General tab in AD
2. Using the "comment" attribute under the Attribute Editor tab in AD

Both of those worked successfully
powershell active-directory attributes
1个回答
0
投票

要添加/删除/替换自定义属性或那些不作为该 cmdlet 的 Parameter 存在的属性,您必须使用

-Add
/
-Replace
/
-Replace

因此,假设您要更改属性,并且该属性名称是

Cost-Center
那么您可以使用
-Replace
:

$Attribcsv = Import-Csv 'C:\Temp\ADUsers_BulkEdit.csv'
foreach ($User in $Attribcsv) {
    Get-ADUser -Identity $User.samAccountName |
        Set-ADUser -Replace @{ 'Cost-Center' = $User.costCenter }
}
© www.soinside.com 2019 - 2024. All rights reserved.