错误1920服务无法启动。 validation您是否有足够的权限来启动系统服务

我们创build了一个自定义的Windows服务。 部署包在InstallShield中完成,安装会提示input服务login帐户的用户名和密码。

我们在各种Windows 7(Professional)和Windows 8计算机上都没有安装任何问题,但是当试图部署到Windows 7旗舰机器时,我们得到了1920错误。 我们还没有确认问题是否与操作系统或我们正在尝试安装的特定机器相关。

安装程序始终通过右键单击和“以pipe理员身份运行”运行,并且用户(都是运行安装程序的用户和提供凭证的login用户)是机器上的pipe理员。 通常,login用户安装服务和运行服务的login用户是相同的。

这是我们试过的东西。

  1. validationlogin用户是pipe理员的成员。
  2. validation用户帐户设置与其工作的另一台机器完全相同。
  3. 从控制面板validation – pipe理工具 – 本地安全策略 – 本地策略 – 安全选项=这些再次匹配机器在哪里工作。
  4. 确保所有的Windows更新已经被应用。
  5. 确认Windows Management Instrumentation Service正在运行。 重新启动它。
  6. 重新启动机器,然后再试一次。
  7. 在服务configuration文件中添加了“generatePublisherEvidence”元素。 ( 服务未能启动错误1920 )

但以上都没有工作。

希望别人遇到类似的问题,并修复..

更新:

我也尝试了以下几点:

  • 打开SecPol.msc
  • 导航到本地策略/用户权利分配
  • find“作为服务login”策略并添加服务帐户

1920是一个通用的错误代码,这意味着服务没有启动。 我的直觉是这样的:

http://blog.iswix.com/2008/09/different-year-same-problem.html

要确认,安装程序在中止,重试,忽略,取消对话框…进入services.msc并手动设置用户名和密码。 如果您收到一条消息,说用户被授权登录为服务,请尝试在MSI对话框中重试,看看是否启动。

它也可能会丢失代码中的依赖或异常。

确保在开始安装/卸载之前,所有的服务窗口都已关闭

我也有同样的问题。 我通过安装.NET框架版本4.5来解决这个问题。

在我的情况下,服务启动失败,因为我没有在wix文件中设置Platform='x64'

我在事件查看器中看到这些错误:

服务无法启动。

System.BadImageFormatException:无法加载文件或程序集“SOME_LIBRARY_FILE,版本= 5.0.0.0,文化=中立,PublicKeyToken = 33345856ad364e35”或其依赖项之一。

我试着用CorFlags.exe检查所有服务相关文件的CorFlags.exe 。 当我将安装程序更改为64 bit ,一切正常。

解决方法:在Windows server 2012 R2中,这也是我们观察到的一个问题。 我还没有找到一个理由或解决方案。 这是我的工作。

在安装过程中,如果显示错误,请转到Services.msc。 找到引发错误的服务,然后在服务的登录信息中重新输入密码。 然后,在设置中点击“重试”。 有用。

错误不会再显示给同一个用户。 但会显示给不同的用户。

我在另一个网站上找到了这个答案,但它确实为我工作,所以我想我会分享它。

在Windows资源管理器中:右键单击C:\ Program Files \ Common Files \ Microsoft Shared中的OfficeSoftwareProtection Platform文件夹,然后从C:\ Program Files数据(这是一个隐藏文件夹)中点击Microsoft属性> Security> Edit> Add> Type Network Service>确定>检查完全控制框>应用并确定。

在注册表编辑器(regedit.exe)中:转到HKEY_CLASSES_ROOT \ AppID注册表>右键单击文件夹>权限>添加>类型=网络服务>确定>检查完全控制>应用>确定

我在这里发现这个响应::: https://social.technet.microsoft.com/Forums/windows/en-US/5dda9b0b-636f-4f2f-8e50-ad05e98ab22d/error-1920-service-office-software-protection-平台OSPPSVC失败的-开始-验证-也就是说,你呢?论坛= officesetupdeployprevious

这本来是詹妮弗·詹(Jennifer Zhan)发现的一种方法

我在测试软件时遇到了这个问题。 司机没有签字。

提示对我来说是:在命令行:(管理员)bcdedit /设置TESTSIGNING打开并重新启动机器(shutdown -r -t 5)

检查服务依赖关系是否被禁用

设置这些依赖关系为自动,启动他们,它应该工作。

在我的情况下,我不得不删除我的installshield项目中的服务,并从第一个开始。 我原来的服务组件是手动添加的,我不能让他们工作,我得到的唯一的错误是相同的“错误1920服务启动失败,请确认您有足够的权限启动系统服务。 你得到了。 删除我的组件后,我使用组件向导重新添加它们。
在这里输入图像说明

组件向导看起来像这样

我实际上不得不创造两个新的组件。 一个是“安装服务”类型。

服务组件类型如下所示

在这里输入图像说明

我不得不添加的其他组件是“控制服务”类型。

在这里输入图像说明

当我添加安装服务组件时,我必须选择我设置的服务。 在这里输入图像说明

之后,它的工作,即使没有什么不同的手动添加的组件。 当使用组件向导连接服务组件时,Installshield必须在幕后做些事情。

所有这一切都与安装盾2016。