[英]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.