使用.NET,我需要在我的域中的远程PC上执行进程(控制台应用程序)。该过程需要以交互方式打开(可以从远程桌面查看)并作为指定的域帐户执行。
我的.NET应用程序作为Windows服务运行,其执行帐户在两个框上都有admin。我需要打开进程的用户帐户是与服务不同的帐户,但在远程客户端(不幸的是,Windows Server 2000)上也有管理员。
答案 0 :(得分:1)
请参阅:How to execute program on remote computer?
它使用Win32_ScheduledJob
WMI类来执行可在远程计算机的交互式桌面上看到的进程。
答案 1 :(得分:0)
没有支持的方式来创建将作为特定用户运行并在特定桌面上显示的令牌。
如果您不需要访问任何网络资源,NtCreateToken可以构造任意令牌。要查找需要与登录SID组合的随机数SID,请窃取该会话的winlogon令牌。
如果您可以作为SYSTEM使用,请窃取winlogon令牌并直接使用它。
编辑:因为这是一个控制台应用程序,你可以安排做一些像打开类似telnet的进程(窃取winlogon令牌)并通过套接字或命名管道连接到你的工作人员(没有窗口)。答案 2 :(得分:0)
我将继续前进并尽可能地关闭它;我将尝试更改我的需求,以便我的服务将作为执行流程所需的同一用户运行或在本地运行服务/脚本。
感谢您的回复, 扎克斯金纳