[英]How to run powershell command with parameter name is variable
我需要將相同的命令Get-QadUser
和Set-QadUser
到一個屬性和他的值,但我的屬性是一個變量。
我的代碼(設置不起作用!):
$property = 'MobilePhone' # OK
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK
$user | Set-QadUser -$PropertyName $NewValue # NOK
在這種情況下,您可以使用名為Splatting的 PowerShell功能,如Don Jones本人所解釋的: Windows PowerShell:Splatting 。
在此,您可以將參數定義為Property和Value對的字典對象,如下所示:
$parameters = @{$FirstPropertyName = $FirstValue; $SecondPropertyName = $SecondValue; $ThirdPropertyName = $ThirdValue}
然后,您可以使用@
運算符將其傳遞給cmdlet,如下所示:
Set-QadUser @parameters
您的完整工作腳本如下所示:
$property = 'MobilePhone' # OK
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK
$parameters = @{$PropertyName = $NewValue}
$user | Set-QadUser @parameters # OK
編輯:我之前沒有注意到PetSerAl已在評論中給出答案。 我希望這個答案也能增加整體價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.