【问题标题】:Invoke-WmiMethod -ArgumentList not accepting variables?Invoke-WmiMethod -ArgumentList 不接受变量?
【发布时间】: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


    【解决方案1】:

    您的问题是远程机器没有在本地初始化您的变量。执行脚本时需要将其传递给远程机器。 为此,请将 $Object.ApplicationDeployment 替换为 $Using:Object.ApplicationDeployment,如下面的代码所示:

    $Object = @{ApplicationDeployment = '{00000000-0000-0000-0000-000000000042}'}
    
    Invoke-Command -ComputerName $ComputerName -ScriptBlock {
        Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name TriggerSchedule -ArgumentList $Using:Object.ApplicationDeployment
    } 
    

    【讨论】:

    • 感谢您的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多