Powershell 将 .csv 值传递给 set-ADuser cmdlet
Powershell Pass .csv values to set-ADuser cmdlet
我正在尝试根据包含 samAccoutName 和 ExtensionAttribute1 列的 .csv 文件为用户填充 extensionAttribute1。
下面是我为此使用的代码:
Import-Module ActiveDirectory
$Attribcsv=Import-csv “D:\Exports\sales.csv”
ForEach ($User in $Attribcsv)
{
Get-ADUser -Identity $User.samAccountName | set-ADUser -add @{extensionAttribute1=$User.extensionAttribute1}
}
在 运行 代码之后我收到此错误:
set-ADUser : Multiple values were specified for an attribute that can have only one value
.csv 文件示例:
csv
有人可以告诉我我缺少什么吗?
谢谢
您需要将 $User.extensionAttribute1
嵌入到子表达式 $()
中,以便扩展值。
我还建议添加一个测试,看看在尝试设置用户之前是否可以找到用户 属性:
Import-Module ActiveDirectory
$Attribcsv = Import-csv 'D:\Exports\sales.csv'
foreach ($User in $Attribcsv) {
$adUser = Get-ADUser -Identity $User.samAccountName -ErrorAction SilentlyContinue
if ($adUser) {
$adUser | Set-ADUser -Add @{extensionAttribute1 = $($User.extensionAttribute1)}
}
else {
Write-Warning "No user with SamAccountName '$($User.samAccountName)' found.."
}
}
我正在尝试根据包含 samAccoutName 和 ExtensionAttribute1 列的 .csv 文件为用户填充 extensionAttribute1。
下面是我为此使用的代码:
Import-Module ActiveDirectory
$Attribcsv=Import-csv “D:\Exports\sales.csv”
ForEach ($User in $Attribcsv)
{
Get-ADUser -Identity $User.samAccountName | set-ADUser -add @{extensionAttribute1=$User.extensionAttribute1}
}
在 运行 代码之后我收到此错误:
set-ADUser : Multiple values were specified for an attribute that can have only one value
.csv 文件示例:
csv
有人可以告诉我我缺少什么吗?
谢谢
您需要将 $User.extensionAttribute1
嵌入到子表达式 $()
中,以便扩展值。
我还建议添加一个测试,看看在尝试设置用户之前是否可以找到用户 属性:
Import-Module ActiveDirectory
$Attribcsv = Import-csv 'D:\Exports\sales.csv'
foreach ($User in $Attribcsv) {
$adUser = Get-ADUser -Identity $User.samAccountName -ErrorAction SilentlyContinue
if ($adUser) {
$adUser | Set-ADUser -Add @{extensionAttribute1 = $($User.extensionAttribute1)}
}
else {
Write-Warning "No user with SamAccountName '$($User.samAccountName)' found.."
}
}