所以我对Powershell非常陌生,我几乎可以肯定,我所做的并不是最有效的方式。但我真的想知道为什么我现在做的不管用。
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
但这会产生与其他错误相同的错误。