我正在尝试更新 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}
}