2016-04-25 59 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已經在評論中給出了答案。我希望這個答案也能增加整體價值。