远程启动服务

时间:2018-12-07 12:38:29

标签: powershell

我正在尝试在用户输入后远程启动服务。

function Start_Service {
    $ComputerName = $txb_hostname.Text

    [void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')

    $title = 'Start Service'
    $msg   = 'Enter Service Name (e.g. AppVClient):'

    $ServiceName = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title)

    try {
        (Get-WmiObject Win32_Service -ComputerName $ComputerName -filter "Name='$ServiceName'").StartService()
        LogWrite "$ServiceName started."
    } catch {
        LogWrite "Unable to stop $ServiceName"
    }
}

它只是返回

  

无法启动“服务”

几乎像

(Get-WmiObject Win32_Service -Filter -ComputerName $ComputerName "Name='$ServiceName'").StartService()

不起作用。

有什么想法为什么不起作用?


编辑:

来自catch块的实际错误消息:

  

缺少参数“过滤器”的参数。指定类型为'System.String'的参数,然后重试。

1 个答案:

答案 0 :(得分:0)

(Get-WmiObject Win32_Service -ComputerName $ComputerName -Filter "Name='$ServiceName'").StartService()

移动-Filter已解决了该问题。