【问题标题】:How to start remotely process in PowerShell如何在 PowerShell 中启动远程进程
【发布时间】:2013-08-12 08:39:14
【问题描述】:

我有一个问题,我有一个脚本

  • 与 PSSession 连接(我使用 PSSession 和管理员帐户)
  • 停止 2 进程
  • 对他们的文件进行更改
  • 启动 2 进程(这里有问题)

我想在服务器上启动进程,所以我用 PSSession 连接(没问题)

我会调用命令:

# $pathProg path to my program
Invoke-Command -session $mySession -command {Start-Process $($args[0])} -ArgumentList $pathProg

但它什么也没做(我用 VNC 验证)

我也会调用命令:

# $pathProg path to my program
Invoke-Command -session $mySession -command {&$($args[0])} -ArgumentList $pathProg

它启动程序(好)但我的脚本等待结束程序(不好)

有人有想法吗?

谢谢

【问题讨论】:

    标签: powershell remoting invoke-command start-process


    【解决方案1】:

    您可以尝试使用 WMI:

    $command = "notepad.exe"
    $process = [WMICLASS]"\\$CompName\ROOT\CIMV2:win32_process"
    $result = $process.Create($command) 
    

    如果您需要传递凭据:

    $cred = get-credential
    $process = get-wmiobject -query "SELECT * FROM Meta_Class WHERE __Class = 'Win32_Process'" -namespace "root\cimv2" -computername $CompName -credential $cred
    $results = $process.Create( "notepad.exe" )
    

    【讨论】:

    • 谢谢!!! +1 :D 我认为这是“版本 bourrin”(法语 ^^),但它有效!
    • Le cheval ou la femme facile? ;) C'est un plaisir aider!
    • 但是没有图形界面,图形界面如何显示?
    【解决方案2】:

    $pathProg 可能在最终运行的脚本块中不可用。您可能希望将其作为参数传递给脚本块

    Invoke-Command -session $mySession -command { param($progPath) ... } -argumentlist $progPath
    

    不是说外部-argumentlist,将参数传递给脚本块。

    【讨论】:

      【解决方案3】:

      您是否尝试过在本地将命令构建为字符串,然后将其作为 ScriptBlock 传递给 Invoke-Command 脚本?

      $remoteSession = New-PSSession -ComputerName 'MyServer'
      $processName = 'MyProcess'
      
      $command = 'Start-Service ' + $processName + ';'
      
      Invoke-Command -Session      $remoteSession `
                     -ScriptBlock  ([ScriptBlock]::create($command))
      
      Remove-PSSession $remoteSession
      

      如果您想从远程服务器获得反馈,则可以通过 Write-Output 获取输出,如下所示:

      $command = 'Start-Service ' + $processName + ' | Write-Output ;'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-27
        • 2014-08-21
        • 1970-01-01
        • 1970-01-01
        • 2014-12-04
        • 1970-01-01
        相关资源
        最近更新 更多