繁体   English   中英

在没有任何第三方软件的情况下在远程计算机上启动程序

[英]Start a program on remote computer without any third party software

我试图找到一种无需任何第三方软件(例如PSExec)即可在远程计算机(在域环境中,因此我知道所有凭据)上启动程序的方法。

现在的问题是,它应该以交互方式运行! (最好的情况下,它应该在当前登录的用户上下文中运行)我知道WMI,并且我知道您可以使用WMI启动一个过程,但它不是交互式的。 (您可以使用计划的任务启动交互式过程,但随后它会作为系统进程运行并具有系统特权(?))

现在,让我说我想为IT技术人员编写一个C#应用程序以监督系统,您是否知道可以使用哪种技术使IT技术人员无需安装软件即可远程启动程序?

或者换句话说,除了WMI计划的流程之外,还有其他东西吗?

如果这是您的解决方案,则您可以自己编写PSExec的功能。 如果我对PSExec的工作方式记忆犹新,则首先使用管理员共享(例如\\\\ PCNAME \\ ADMIN $ \\ TEMP)复制文件以在远程系统上运行,如果需要,您可以使用正确的权限连接到远程计算机WNetAddConnection2()函数使用凭据)。 如果您在远程计算机上复制的文件可以作为系统服务运行(如果您编写一个文件,则可能是这种情况),则可以使用OpenSCManager()CreateService()StartService()来启动它。 服务可以交互方式运行(请参阅SERVICE_INTERACTIVE_PROCESS标志,该标志要求该服务以系统帐户身份运行)。 然后,该服务可以通过使用ImpersonateLoggedOnUser()来模拟已登录的用户,使用从其正在运行的进程之一中获得的令牌OpenProcessToken()带有OpenProcessToken() ,但我从未尝试过看看是否可行。

暂无
暂无

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

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