Function 在函数中使用Set ADUser

Function 在函数中使用Set ADUser,function,powershell,Function,Powershell,使用函数时,在AD中设置属性值时遇到问题。当我在相同条件下使用Set ADUser而不使用函数时,我不会遇到问题,它工作得很好。在函数中使用Set ADUser时,会出现无效参数错误。我需要使用一个函数来比较很多数据值。许多数据将被用来与函数的需要进行比较。我被难住了 函数比较数据集($value\u ad、$value\u csv、$userid、$propdata){ $id=$userid.SamAccountName IF($value\u ad-eq$value\u csv){ 写入主

使用函数时,在AD中设置属性值时遇到问题。当我在相同条件下使用Set ADUser而不使用函数时,我不会遇到问题,它工作得很好。在函数中使用Set ADUser时,会出现无效参数错误。我需要使用一个函数来比较很多数据值。许多数据将被用来与函数的需要进行比较。我被难住了

函数比较数据集($value\u ad、$value\u csv、$userid、$propdata){
$id=$userid.SamAccountName
IF($value\u ad-eq$value\u csv){
写入主机“值相同!”
}
ELSEIF($value\u ad-ne$value\u csv){
写入主机“AD值已更改”
获取aduser-filter{SamAccountName-eq$userid}|设置aduser-$propdata$value_csv
}
}
$userid=“jsmith”
$value\u ad=“一座城市”
$value\u csv=“非城市”
$propdata=“办公室”
比较数据集$Office$Office\u csv\u值$userid$propdata

完整的错误消息说明了什么?您可以尝试使用splatting和change:

。。。
写入主机“AD值已更改”
获取aduser-filter{SamAccountName-eq$userid}|设置aduser-$propdata$value_csv
}
...
致:

。。。
写入主机“AD值已更改”
$params=@{$propdata=$value\u csv}
获取aduser-filter{SamAccountName-eq$userid}设置aduser@params
}
...

更多关于泼洒的信息请点击此处:

谢谢!争吵解决了这个问题。我很好奇为什么这解决了这个问题。我已经阅读并实践了您提供的MS链接中的示例。为什么只有在函数中使用Set ADUser时,对值进行分组才能解决问题。如下面的完整错误消息所示,正在查找数据。jtest |属性:Office |操作:已更改| SAP:22 | AD:Test Office Set ADUser:找不到接受参数“22”的位置参数。在第11行char:69+get aduser-filter{SamAccountName-eq$id}设置aduser可能未正确设置
$propdata
?您可以通过在
Write host“AD value changed”
下添加
Write host“get aduser-filter{SamAccountName-eq$userid}| Set aduser-$propdata$value_csv”
进行验证,以查看该命令是否符合您的预期。