繁体   English   中英

在上下文中启动远程进程

[英]start remote process within the context

我想知道如何在用户上下文中远程启动进程,就像他启动它一样。 让我解释。 我知道如何远程启动进程,所以例如我想启动记事本:

Invoke-WmiMethod win32_process -name create -ComputerName $remoteMachine -ArgumentList "notepad" -credential (Get-Credential)

问题是它“在后台”启动记事本(而不是在用户上下文中),所以在这种情况下,他不会看到打开的“记事本”对话框/进程(他只会在任务管理器的进程列表中看到记事本)。 我想让他看到记事本 window 对话框。

有人知道如何实现吗?

使用内置的 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"

笔记:

  • 我们使用 ONSTART 作为计划,但随后我们手动启动进程并在计划被触发之前将其删除。 这实际上意味着“现在就做”。 您还可以指定/SC ONCE /SD "01/01/1980" /ST "00:00:00"具有相同的效果。
  • 此示例作为系统运行。 以登录用户身份运行,前提是您知道是谁使用/RU "DOMAIN\USER" 如果用户登录,这将在没有密码( /RP选项)的情况下工作。
  • 您可以使用/Query /S COMPUTERNAME /TN "RemoteProcess" /V来查找当前状态,例如等待退出,然后读取退出代码。

您还可以使用任务计划程序脚本对象通过脚本执行上述所有操作:

您无法使用 WMI 或 PowerSHell 远程处理启动交互式进程。 这是一个安全限制/功能。 如果要启动远程交互进程,则需要使用 PSExec。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM