创建一个新用户并使用该用户安装 windows 服务
Create a new user and install windows service using that user
我正在开发新的 Wix 安装程序。
- 我想做的是将 .exe 复制到一个目录。
- 创建一个新用户。
使用该新用户安装 windows 服务。
<!-- Create User -->
<util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="yes" Name="ServiceUser" PasswordNeverExpires="yes" Password="secret" />
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="Windows:service"
DisplayName="Windows service install"
Description="test"
Start="auto"
Account="ServiceUser"
Password="secret"
ErrorControl="ignore"
Interactive="no" />
<ServiceControl Id="StartService"
Start="install"
Stop="both"
Remove="uninstall"
Name="Windows:service"
Wait="yes" />
只要我使用当前的登录名和密码,就可以创建用户,安装服务也可以。但是,一旦我尝试使用新用户,我就会收到以下错误消息。
Verify that you have sufficient privileges to install system service
我已经尝试 运行以管理员身份连接 msi,但它没有改变,错误仍然出现。我猜这与我无权在其他用途下将服务安装到 运行 有关。但这是一个猜测。
您需要使用 LogonAsService 作为 Util::User 元素的属性授予用户 SeServiceLogonRight 权限。
FWIW,该错误消息非常普遍并且通常是错误的,因为 Windows 安装程序可能不知道您的服务为何无法正确响应(启动)。您可能有其他问题(例如您的服务写入您的帐户有权访问但服务帐户没有的目录)但至少您遇到了这个问题。
这里有一些乐趣。在该屏幕上,进入 Services.msc 并手动将服务切换到 SYSTEM 并返回到帐户。您应该会收到一条提示,说明该帐户已被授予权限。然后点击对话框中的重试。如果安装成功,那是你唯一的问题。
这个权限在组策略编辑器里可以看到。由于 Services.msc,权限已经在外部设置,从那时起安装似乎就可以正常工作了。恢复 VM 或使用组策略删除权限,问题将再次出现。修复安装程序,重建并重新测试,WiX 应该会在安装过程中自动应用权限。
除了LogonAsService,您需要指定它是一个本地机器帐户:
Account=".\ServiceUser"
我正在开发新的 Wix 安装程序。
- 我想做的是将 .exe 复制到一个目录。
- 创建一个新用户。
使用该新用户安装 windows 服务。
<!-- Create User --> <util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="yes" Name="ServiceUser" PasswordNeverExpires="yes" Password="secret" /> <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes" Name="Windows:service" DisplayName="Windows service install" Description="test" Start="auto" Account="ServiceUser" Password="secret" ErrorControl="ignore" Interactive="no" /> <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="Windows:service" Wait="yes" />
只要我使用当前的登录名和密码,就可以创建用户,安装服务也可以。但是,一旦我尝试使用新用户,我就会收到以下错误消息。
Verify that you have sufficient privileges to install system service
我已经尝试 运行以管理员身份连接 msi,但它没有改变,错误仍然出现。我猜这与我无权在其他用途下将服务安装到 运行 有关。但这是一个猜测。
您需要使用 LogonAsService 作为 Util::User 元素的属性授予用户 SeServiceLogonRight 权限。
FWIW,该错误消息非常普遍并且通常是错误的,因为 Windows 安装程序可能不知道您的服务为何无法正确响应(启动)。您可能有其他问题(例如您的服务写入您的帐户有权访问但服务帐户没有的目录)但至少您遇到了这个问题。
这里有一些乐趣。在该屏幕上,进入 Services.msc 并手动将服务切换到 SYSTEM 并返回到帐户。您应该会收到一条提示,说明该帐户已被授予权限。然后点击对话框中的重试。如果安装成功,那是你唯一的问题。
这个权限在组策略编辑器里可以看到。由于 Services.msc,权限已经在外部设置,从那时起安装似乎就可以正常工作了。恢复 VM 或使用组策略删除权限,问题将再次出现。修复安装程序,重建并重新测试,WiX 应该会在安装过程中自动应用权限。
除了LogonAsService,您需要指定它是一个本地机器帐户:
Account=".\ServiceUser"