使用Visual Studio 2015,如何使用InstallShield配置安装包,以便Windows服务在"网络服务"帐户?我在Visual Studio 2013中使用了InstallShield项目,但我似乎无法在这个新版本中使用它。
如果我离开"用户名"和#34;密码"字段为空(在Installshield项目" 3 - 配置目标系统/服务"屏幕),已安装的服务配置为使用"本地系统"。
如果我输入"网络服务","网络服务"," NT_AUTHORITY \网络服务","。\网络服务"或"。\ NetworkService"作为用户名并保留密码为空,当我尝试安装服务时,出现以下错误:
Error 1923. Service [name] could not be
installed. Verify that you have sufficient
privileges to install system services."
在我打字时,我还没能在他们的Express Edition文档中找到与此相关的任何信息:
此博客文章讨论了此新版本中用于创建服务安装程序的更改:
我之前的安装程序必须使用"旧方法使用安装程序类",因为我的项目确实有一个安装程序类,它指定NetworksService作为要运行的用户。 (讨论这种一般不推荐的方法的文章的链接被打破了。)
据我所知,新的Express Edition似乎忽略了我的安装程序类,我还没有找到如何回到过去很脆弱的旧方法,而且通常不会。推荐"
答案 0 :(得分:1)
我知道如何使用InstallShield Premier执行此操作。
首先,在属性管理器中定义一个属性:
SGNETSER NT AUTHORITY\NETWORK SERVICE
然后,在“服务”中,创建一项新服务,并在“用户名”中输入以下内容:
[SGNETSER]
这对我有用!
答案 1 :(得分:0)
我还没有找到有关如何使用Visual Studio 2015中的InstallShield LE(Express Edition)实现此目的的任何信息。
由于我的服务仅部署到单个服务器,因此我的需求并不过分复杂。我已经在我的Windows服务项目中添加了一个项目安装程序类,如此处所述{&#34}在服务中添加安装程序"部分。这允许您选择"网络服务" user,作为ServiceProcessInstaller中的属性。
如"安装服务"部分,我用安装脚本编写:
%WINDIR%\Microsoft.NET\Framework64\[framework_version]\installutil.exe MyService.exe
卸载可以通过以下方式完成:
%WINDIR%\Microsoft.NET\Framework64\[framework_version]\installutil.exe /u MyService.exe
这些命令必须以管理员身份运行,否则您将收到错误。