C# 使用给定用户名在远程计算机上安装windows服务
在远程计算机上安装以C#(标准方式)编写的windows服务的最佳方式是什么?在远程计算机上,我需要提供它应该运行的用户名和密码 作为集成测试的一部分,我将从MSBuild运行它C# 使用给定用户名在远程计算机上安装windows服务,c#,.net,msbuild,windows-services,C#,.net,Msbuild,Windows Services,在远程计算机上安装以C#(标准方式)编写的windows服务的最佳方式是什么?在远程计算机上,我需要提供它应该运行的用户名和密码 作为集成测试的一部分,我将从MSBuild运行它 编辑:我没有msi,也不想创建msi。从Powershell调用的WMI调用Installutil是一种方法。您可以使用该命令 sc.exe\\remotecomputer create newservice binpath=C:\Windows\System32\Newserv.exe start=auto obj=
编辑:我没有msi,也不想创建msi。从Powershell调用的WMI调用Installutil是一种方法。您可以使用该命令
sc.exe\\remotecomputer create newservice binpath=C:\Windows\System32\Newserv.exe start=auto obj=DOMAIN\username password=pwd
(注意等号后面的空格很重要)
在注册表和服务数据库中创建服务条目。
语法:
sc创建[service name][binPath=]。。。
创建选项:
注意:选项名称包括等号。
类型=
(默认值=自己的)
开始=
(默认值=需求)
错误=
(默认值=正常值)
binPath=
组=
标签=
依赖=
obj=
(默认值=本地系统)
显示名称=
密码=
我们过去常常在远程机器上做任何事情。
此时,我看到naother解决方案被调用,但我自己还没有尝试过。可能值得您查看我编写的一个实用程序,它允许您在本地或远程计算机上安装/卸载/启动/停止windows服务。如果您有需要添加的功能,请告诉我(评论/github问题或PM,我很乐意为您效劳)
正如@Raj More所建议的,它使用从.NET调用的WMI。看起来很有希望,但我必须为此付费吗?它包含在Windows中,可能在资源工具包中,启动命令提示符并键入sc以查看是否安装了它。请注意,如果从powershell运行它,则它是sc.exe而不是sc。sc是powershell中设置内容的别名。在传递带有特殊字符的复杂密码时要小心一点,因为即使在密码周围加上双引号也救不了你,出于好奇,它与SC有何不同?
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>