0

我有一个 Windows 服务,我需要将其安装在用户定义的目录而不是 C: 驱动器中并为其设置登录凭据。我正在使用下面的代码来安装服务,但它将服务安装在 C 驱动器而不是 E 驱动器中。

E:
cd \MyService
msiexec /i MyServiceInstall.msi /L E:\MyService\MyServiceInstallLog.txt /qn

sc config MyServiceInstall obj= uid password= pwd start= auto
rem net start MyService

我想在安装文件 MyService.msi 所在的位置安装服务。

我该如何解决这个问题?

4

1 回答 1

1

你不会“绕过”任何东西。您创建一个正确的 MSI,它使用ServiceInstall 表来创建服务。ServiceInstall 表有一个 UserName 和 Password 列,其类型为Formatted,这意味着它可以使用 [USERNAME] 和 [PASSWORD] 等属性。然后你可以简单地说:

msiexec /i MyServiceInstall.msi INSTALLDIR=C:\INSTALLHERE USERNAME=bob PASSWORD=dontyouwhich

唯一棘手的部分是 MSI 不授予用户帐户 SeLogonAsService 权限,因此在启动服务之前需要自定义操作来授予此权限。

于 2013-09-25T21:19:29.317 回答