远程安装Windows服务
时间:2020-03-05 18:53:21 来源:igfitidea点击:
我需要在多台计算机上远程安装Windows服务,因此我使用Winapi中的CreateService()和其他服务功能。我知道需要访问的计算机的管理员密码和用户名。为了获得对远程计算机的访问权限,我在LogonUser的帮助下模拟了调用过程,如下所示:
//all variables are initialized correctly int status = 0; status = LogonUser(lpwUsername, lpwDomain, lpwPassword, LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, &hToken); if (status == 0) { //here comes a error } status = ImpersonateLoggedOnUser(hToken); if (status == 0) { //once again a error } //ok, now we are impersonated, do all service work there
因此,我可以访问域中的计算机,但是有些计算机不在域中。在域外的计算机上,此代码不起作用。有什么方法可以访问域外机器上的服务管理器?
解决方案
回答
我们可以执行此操作,该帐户必须存在于远程计算机上,并且需要在LogonUser调用中将计算机名用作域名。
回答
为何不自己滚动,为什么不只使用SC内置命令?
回答
OK,问题解决了(不是很好,但是还可以)。我在远程计算机上使用WNetAddConnection()来ipc $。