2016-04-25 58 views
4

我需要运行相同的命令Get-QadUserSet-QadUser到一个属性和他的值,但我的属性是一个变量。如何运行带参数名称的powershell命令是变量

我的代码(设置不起作用!):

$property = 'MobilePhone' # OK 
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK 
$user | Set-QadUser -$PropertyName $NewValue # NOK 
+3

'$ Splatting = @ {$ property = $ NewValue}; Set-QadUser @ Splatting' – PetSerAl

回答

2

您可以使用PowerShell功能,称为在这种情况下,泼洒由唐·琼斯本人在这里解释说:Windows PowerShell: Splatting

在此您可以定义参数,属性和值对的字典对象如下:

$parameters = @{$FirstPropertyName = $FirstValue, $SecondPropertyName = $SecondValue} 

然后,你可以通过这个用@操作你的小命令,如下图所示:

Set-QadUser @parameters 

你完成工作的脚本看起来如下:

$property = 'MobilePhone' # OK 
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK 

$parameters = @{$PropertyName = $NewValue} 
$user | Set-QadUser @parameters # OK 

编辑:我之前没有注意到PetSerAl已经在评论中给出了答案。我希望这个答案也能增加整体价值。