为什么这会阻止我安装MSI:系统pipe理员已设置策略来阻止此安装

我试图在我的实验室域的一部分的Windows Server 2012机器上安装MSI。 我是本地和域pipe理员,但我似乎被阻止安装此MSI。

澄清一下,当试图安装作为pipe理员组成员的域用户login的visual studio(位于这里 )的git扩展时,出现以下错误

在这里输入图像描述

报告错误的机器是Windows Server 2012。

我几乎可以肯定,这肯定是某种集体政策限制? 没有设置,除非它是默认的安全级别?

澄清,我想知道是什么阻止这个MSI由域pipe理员安装?

花了一些时间看看集体政策,据我所知,没有什么是相关的。 然后我遇到这个post ,build议我尝试启动一个命令Promt作为pipe理员和运行

msiexec /a install.msi 

这似乎工作,但跑得很快 – 事实上并没有 。 一时兴起,我在pipe理命令提示符下试了这个。

  msiexec /i install.msi 

哪一个工作一个治疗。

我遇到了这种行为,MSI安装被阻止在“系统pipe理员已设置策略来阻止此安装”之前。 我相信这是由于默认的Windows软件限制策略,我已经在Windows Server 2008 R2和Windows Server 2012上看到它。

有可能有一个更好的基于GUI的方式来改变政策,但在机器上设置以下registry项作为pipe理员有诀窍:

 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] "DisableMSI"=dword:00000000 

当使用IsCmdBld.exe构buildMSI时,我们遇到了同样的问题,但是从InstallShield软件用户界面构build时没有这个问题。

运行安装程序时,我们会看到OP提到的错误,安装日志将显示: MSI_LUA: Invalid Descriptor Format.

问题的原因是我们将ProductCode Guid值传递给IsCmdBld.exe命令行,如下所示: -z "ProductCode"="f176c219-dec0-4fa9-a373-94a711f28a3d"

你可以看到这里提供的Guid没有被{}包围。

我们通过将guid与括号括在一起来修复它: -z "ProductCode"="{f176c219-dec0-4fa9-a373-94a711f28a3d}" ,它按预期工作,不再显示错误。

这通常是由于组策略或本地策略禁用Windows安装程序。

查看您的域控制器,如果您有GPO禁用“Windows安装程序”:计算机configuration>pipe理模板> Windows组件> Windows安装程序>“closuresWindows安装程序”。

validation它是否设置为“未configuration”或“已禁用”。

如果在GPO中找不到它,请使用gpedit.msc查看计算机的本地策略。

注意:您是域名pipe理员的事实并不重要。 这一切都取决于GPO的范围。

右键单击 – >以pipe理员身份运行

msiexec和registry修复程序都没有为我工作(即使在重新启动后),但禁用用户帐户控制(如在这个线程 Ha Lybuild议),并重新启动了伎俩。

您可以通过在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system中将DWORD EnableLUA1更改为0来通过registryclosuresUAC。 你会得到一个通知,需要重新启动。 重新启动后,UAC被禁用。