2
所以我對Powershell非常陌生,我幾乎可以確定我所做的並不是最有效的方法。但我真的很想明白爲什麼我在做什麼不起作用。Invoke-WmiMethod -ArgumentList不接受變量?
我試圖觸發使用PowerShell通過運行下面的代碼Configuration Manager客戶端操作:
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000042}"
}
這運行正常。但我希望能夠調用一個變量,或者所有這些長代碼都不需要在每次我想更改客戶端操作時都放入這些代碼。所以這裏是我開始玩的地方,無法獲得任何工作。
$ApplicationDeployment = '"{00000000-0000-0000-0000000000000042}"'
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $ApplicationDeployment
}
這給了我一個錯誤。我也試過如下:
$hash = @{"ApplicationDeployment" = "{00000000-0000-0000-0000-000000000042}"}
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $hash.'ApplicationDeployment'
}
最後
$Object = @{ApplicationDeployment = '{00000000-0000-0000-0000-000000000042}'}
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $Object.ApplicationDeployment
}
我也曾嘗試
$($ApplicationDeployment).ArgumentList
但這給出了同樣的錯誤一切。
我真的很感激一個解釋,爲什麼這不起作用......先謝謝了。
謝謝你的解釋。 – Ben