【发布时间】:2018-03-21 20:05:57
【问题描述】:
所以我对 Powershell 很陌生,我几乎可以肯定我所做的并不是最有效的方法。但我真的很想了解为什么我正在做的事情不起作用。
我正在尝试通过运行以下代码来使用 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
但这会产生与其他所有错误相同的错误。
我非常感谢您解释为什么这不起作用...在此先感谢您。
【问题讨论】:
标签: powershell scripting configurationmanager sccm