如何在远程机器上安装用C#编写的Windows服务(以标准方式),并提供运行该服务所需的用户名和密码?
我将在集成测试的一部分中从MSBuild中运行它。
编辑:我没有.msi文件,也不想创建一个。
如何在远程机器上安装用C#编写的Windows服务(以标准方式),并提供运行该服务所需的用户名和密码?
我将在集成测试的一部分中从MSBuild中运行它。
编辑:我没有.msi文件,也不想创建一个。
你可以使用SC命令。
sc.exe \\remotecomputer create newservice binpath= C:\Windows\System32\Newserv.exe start= auto obj= DOMAIN\username password= pwd
(请注意等号后面的空格很重要)
Creates a service entry in the registry and Service Database.
SYNTAX:
sc create [service name] [binPath= ] <option1> <option2>...
CREATE OPTIONS:
NOTE: The option name includes the equal sign.
type= <own|share|interact|kernel|filesys|rec>
(default = own)
start= <boot|system|auto|demand|disabled>
(default = demand)
error= <normal|severe|critical|ignore>
(default = normal)
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <Dependencies(separated by / (forward slash))>
obj= <AccountName|ObjectName>
(default = LocalSystem)
DisplayName= <display name>
password= <password>
使用WMI从Powershell调用Installutil是一种方法。
你可以考虑查看我编写的一个实用程序,它允许你在本地或远程计算机上安装/卸载/启动/停止Windows服务。如果你需要添加功能,请告诉我(评论/GitHub问题或私信),我会很乐意帮忙。
正如@Raj More所建议的那样,它使用从.NET调用的WMI。