Powershell Active Directory 用户更新

Powershell Active Directory 用户更新

我正在尝试更新 CSV 中所有用户的 -msDS-cloudExtensionAttribute。

CSV 示例

AD  CA11    CA10    CA9
User1   none    none    technician
User2   none    engineer    technician
User3   responsible engineer    technician
User4   none    none    none
User5   none    none    none
User6   responsible none    technician
User7   none    none    none
User8   none    engineer    none
User9   none    none    none
User10  none    none    technician

我正在使用 set-ADUSer,但它无法识别属性。

Import-CSV c:\temp\all.csv | Foreach { Set-ADUSer -Identity $_.AD -Add -msDS-cloudExtensionAttribute10 $_.CA10 -msDS-cloudExtensionAttribute11 $_.CA11 -msDS-cloudExtensionAttribute9 $_.CA9 }

错误:

A parameter cannot be found that matches parameter name 'msDS-cloudExtensionAttribute10'

我也尝试在命令中添加 -Add,但随后出现了不同的错误。

Missing an argument for parameter 'Add'. Specify a parameter of type 'System.Collections.Hashtable'

答案1

您的问题是,Set-ADUser没有为您可以设置的每个属性定义显式参数。相反,您有像-Add-Replace这样的参数,它们采用键/值对的哈希表。

就你的情况而言,我可能会使用-Replace类似这样的方法。

$csv = Import-CSV C:\temp\all.csv
$csv | foreach { 
    Set-ADUser $_.AD -Replace @{'msDS-cloudExtensionAttribute10'=$_.CA10; 'msDS-cloudExtensionAttribute11'=$_.CA11; 'msDS-cloudExtensionAttribute9'=$_.CA9}
}

相关内容