【问题标题】:PowerShell start a process remotely doesn't workPowerShell 远程启动进程不起作用
【发布时间】:2018-06-22 22:39:27
【问题描述】:

我想以“测试”用户的身份在远程服务器上启动一个进程,但它不起作用,我不知道为什么。

$PW = convertto-securestring -AsPlainText -Force -String 'XXXX'
$CRED = new-object -typename System.Management.Automation.PSCredential -argumentlist "domain\test", $PW
$Server = new-pssession -computername ServerName -credential $CRED

Invoke-Command -session $Server -ScriptBlock {
    $APP = "C:\test\app.exe"
    if ((Get-Process -Name app -ErrorAction SilentlyContinue) -eq $null) {
        write-host "not running" 
        Start-Process -FilePath $APP
    }
    else {
        write-host "running"
    }
}

Remove-PSSession $Server

如果我 RDP 进入远程服务器并直接运行代码,它将启动应用程序,但如果我通过我的机器使用 Invoke-Command 运行代码,它不会启动任何东西。

我试图通过 RDP 查看远程服务器上发生的进程,但什么也没发生。此应用程序必须在我在脚本和 RDP 会话中使用的特定用户“测试”下运行。

远程服务器为Win2012R2,PS版本为4.0

我机器上的PS版本是5.1

【问题讨论】:

  • 不得不问,你有没有按照上面列出的说明:docs.microsoft.com/en-us/powershell/module/…
  • 是的,首先要做的是启用psremoting....大声笑
  • OK.. 在 Powershell 之外,如何使用 PStools 中的 PSRemote 在相关服务器/系统上运行您的应用程序? docs.microsoft.com/en-us/sysinternals/downloads/pstools
  • 也很累,失败了。我认为问题可能在于这个应用程序是否支持远程运行或仅在本地运行。
  • 您希望看到应用程序以交互方式运行(例如启动窗口)还是可以以非交互方式运行(例如在后台)?

标签: powershell


【解决方案1】:

您无法使用 psremoting 启动交互式应用程序。

【讨论】:

    【解决方案2】:

    经过各种测试,似乎无法通过 PSrmoting 启动此应用程序。

    我的解决方案是

    1) 重启后使用 PSTools 中的“Autologon.exe”以所需用户身份登录。

    2) 计划在用户登录 TaskScheduler 时运行此应用程序。

    效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多