有没有一种方法可以使用Active Directory组策略或WSUS自动部署.net 4?
我想将它推出到很多机器上,而不必遍历每台机器。
背景:我有一个要部署给非管理员用户的VSTO ClickOnce应用程序,但是它使用.net 4,没有管理员权限就无法安装。因此,除非已经安装.net 4,否则非管理员的ClickOnce将会失败。
有没有一种方法可以使用Active Directory组策略或WSUS自动部署.net 4?
我想将它推出到很多机器上,而不必遍历每台机器。
背景:我有一个要部署给非管理员用户的VSTO ClickOnce应用程序,但是它使用.net 4,没有管理员权限就无法安装。因此,除非已经安装.net 4,否则非管理员的ClickOnce将会失败。
Answers:
我们通过Altiris Deployment使用了脚本。它应作为计算机登录脚本或通过远程CLI起作用。您需要从Microsoft获得独立安装程序。
START "" /WAIT dotNetFx40_Full_x86_x64.exe /q /norestart /log %TEMP%\dotNet4.log
编辑:
还想补充一点,此安装将花费几分钟或更长时间,具体取决于客户端计算机的速度。应该在维护时段内安排执行安装的时间,在该时段内用户将不会因“无响应”而重启计算机。在安装后重新启动计算机也是明智的。我们不这样做,因为之后我们会立即执行Altiris软件清单。
对于2.0、3.0和3.5版本,除非将或属性设置为1,否则.NET Framework直接从.msi数据库安装将失败,并显示一条消息,要求启动。我假设在每次安装时使用它自动将其设置为1。 ,但否则,您需要明确地执行此操作。setup.exe ADDEPLOYVSEXTUIGroup PolicyADDEPLOY
对于这两种Client Profile和Extended的版本.NET Framework4.0,它的工作原理,除了独一无二的,你可以设置被称为属性以同样的方式EXTUI; ADDEPLOY不会达到预期的效果。(如果你看看CA_BlockDirectInstall在行动InstallExecuteSequence中的表.msi的数据库,你会看到,该特殊操作的条件是“ NOT (EXTUI = 1 OR Installed)“)。该属性设置为1后,我已经能够直接从执行的部署.msi通过Novell ZENworks或msiexec.exe没有任何问题。有人会认为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开关即可使其在无人值守的情况下执行。
.msi.NET Framework 的直接下载,因此您需要从.exe安装程序中提取它。这就是.msi我在回答中引用的相同。但是,您选择解压缩.msi(7-Zip或Microsoft自解压安装程序通常具有/extract命令行参数或类似参数),但问题仍然是,.msi如果未设置必要的属性,则直接从安装将被阻止。