我想知道如何在用户上下文中远程启动进程,就像他启动它一样。让我解释。我知道如何远程启动进程,所以例如我想启动记事本:
Invoke-WmiMethod win32_process -name create -ComputerName $remoteMachine -ArgumentList "notepad" -credential (Get-Credential)
问题是它开始记事本“在后台”(不在用户上下文中),所以在这种情况下他不会看到打开的“记事本”对话框/进程(他会在进程列表中看到记事本在任务经理)。我希望他看到记事本窗口对话框。
有人知道如何实现这个目标吗?
答案 0 :(得分:10)
使用内置的SchTasks.exe以支持的方式在远程系统上创建进程。它与内置的任务计划程序服务连接,不需要PsExec.exe。
在远程计算机上创建任务(在此示例中以SYSTEM身份运行):
schtasks.exe /create /F /S COMPUTERNAME /RU "NT AUTHORITY\SYSTEM" /RL HIGHEST /SC ONSTART /TN "RemoteProcess" /TR "program.exe \"argument 1\" \"argument 2\""
schtasks.exe /Run /S COMPUTERNAME /I /TN "RemoteProcess"
schtasks.exe /Delete /S COMPUTERNAME /TN "RemoteProcess"
注意:
/SC ONCE /SD "01/01/1980" /ST "00:00:00"
。/RU "DOMAIN\USER"
的用户。如果用户已登录,则无需密码(/RP
选项)即可使用
/Query /S COMPUTERNAME /TN "RemoteProcess" /V
查找当前状态,例如等待退出,然后阅读退出代码。您还可以使用任务计划程序脚本对象执行以上所有操作:
答案 1 :(得分:8)
您无法使用WMI或PowerSHell远程处理启动交互式进程。这是安全限制/功能。如果要启动远程交互式进程,则需要使用PSExec。