PowerShell远程启动进程不起作用

时间:2018-06-18 16:26:11

标签: powershell

我想在远程服务器上启动一个进程作为“测试”用户,但它不起作用,我找不到原因。

$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会话中使用的特定用户“test”下运行。

远程服务器是Win2012R2,PSversion是4.0

我机器上的PSversion是5.1

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

我对此的解决方法是

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

2)安排用户在TaskScheduler中登录后运行该应用程序。

效果很好。