首页 / 知识

关于C#:远程安装Windows服务

2023-04-15 08:06:00

关于C#:远程安装Windows服务

Remote installing of windows service

我需要在多台计算机上远程安装Windows服务,因此我使用Winapi中的CreateService()和其他服务功能。我知道需要访问的计算机的管理员密码和用户名。为了获得对远程计算机的访问权限,我在LogonUser的帮助下模拟了调用过程,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//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调用中将计算机名称用作域名。


好,问题解决了(不是很好,但是还可以)。我使用WNetAddConnection()将ipc $放在远程计算机上。


为什么不只使用自己的滚动命令,为什么不使用SC内置命令?


服务安装计算用户名

最新内容

相关内容

猜你喜欢