使用函数时,我在AD中设置属性值时遇到问题。当我在相同的条件下使用Set-ADUser而不使用函数时我没有遇到问题,它的效果很好。在函数中使用Set-ADUser时,我得到一个无效的参数错误。我需要使用一个函数,因为我正在比较很多数据值。很多数据将与功能需求进行比较。我很难过。
function compareandset($value_ad, $value_csv, $userid, $propdata) {
$id = $userid.SamAccountName
IF($value_ad -eq $value_csv) {
Write-Host "The values were the same!"
}
ELSEIF($value_ad -ne $value_csv) {
Write-Host "AD value changed"
get-aduser -filter {SamAccountName -eq $userid} | Set-ADUser -$propdata $value_csv
}
}
$userid = "jsmith"
$value_ad = "A city"
$value_csv = "Not a city"
$propdata = "Office"
compareandset $Office $office_csv_value $userid $propdata
答案 0 :(得分:0)
完整的错误消息说什么?您可以尝试使用splatting和更改:
...
Write-Host "AD value changed"
get-aduser -filter {SamAccountName -eq $userid} | Set-ADUser -$propdata $value_csv
}
...
为:
...
Write-Host "AD value changed"
$params = @{$propdata=$value_csv}
get-aduser -filter {SamAccountName -eq $userid} | Set-ADUser @params
}
...
有关splatting的更多信息:http://technet.microsoft.com/en-us/library/jj672955.aspx