通过Active Directory组策略或WSUS部署.net 4

有没有办法使用Active Directory组策略WSUS自动部署.net 4?

我想把它推到很多机器上,而不必转到每个机器上。

背景:我有一个VSTO ClickOnce应用程序,我想部署到非pipe理员用户,但它使用.net 4,它不会安装没有pipe理员权限,所以ClickOnce失败的非pipe理员,除非.net 4已经安装。

我们通过Altiris Deployment使用脚本。 它应该作为计算机login脚本或通过远程cli。 您需要从Microsoft获取独立安装程序 。

START "" /WAIT dotNetFx40_Full_x86_x64.exe /q /norestart /log %TEMP%\dotNet4.log

编辑:

还想补充一点,根据客户计算机的速度,这个安装需要几分钟甚至更长的时间。 执行安装应该安排在维护期间,用户将不会重新启动他们的计算机“不响应”。 在安装后重启机器也可能是明智的。 我们不像我们之后立即执行Altiris软件清单。

对于版本2.0,3.0和3.5,直接从.msi数据库安装.NET Framework将失败,并显示有关需要启动setup.exe的消息, 除非ADDEPLOYVSEXTUI属性设置为1.我假设在使用Group Policy会自动将ADDEPLOY设置为1来执行每个安装,否则您需要明确地执行此操作。

对于.NET Framework 4.0的Client ProfileExtended版本,除了您可以设置的唯一属性称为EXTUI外,它的工作方式相同。 ADDEPLOY不会有预期的效果。 (如果查看.msi数据库的InstallExecuteSequence表中的CA_BlockDirectInstall操作,则会看到该特定操作的条件是“ NOT (EXTUI = 1 OR Installed) ”)。 将该属性设置为1后,我可以通过Novell ZENworksmsiexec.exe直接从.msi执行部署,而不会有任何问题。 有人会认为Active Directory应该一样简单,除了与ADDEPLOY不同,我猜你可能需要自己设置EXTUI属性,这可以通过转换来完成。

执行无人参与的安装,例如,64位.NET Framework 4.0 Client Profile的最小命令行将是…

msiexec.exe / i netfx_Core_x64.msi EXTUI = 1

…或者干脆…

netfx_Core_x64.msi EXTUI = 1

由于没有用户自定义的安装选项,因此(默认)完整界面模式已经实际上是一个无人值守的安装,因此您不需要添加/passive或任何/q开关以使其无人照pipe。

.NET Framework 4.0目前可通过WSUS使用,并且在工作站和服务器操作系统上似乎都能正常工作。 我们上周开始试用这个包,没有发生任何事情。