组策略是Windows Server的一项功能,管理员可以使用该功能在所有用户计算机上安装软件。无需人工干预即可远程完成。 GPO是组策略的缩写。由于组策略技术可以使部署变得清晰且容易,因此它在公司中如此受欢迎。 

1.使用组策略软件安装部署Windows MSI或MST程序包
YouTube GPO部署视频:

本地组策略对象无法使用GPSI功能(例如,通过启动gpedit.msc)。 Microsoft没有在本地GPO中实现此功能。因此,您需要安装Active Directory才能开始使用此功能。使用Microsoft组策略管理控制台(GPMC)或“ AD用户和计算机” MMC管理单元创建GPO后,请对该GPO进行编辑,以调出组策略编辑器MMC管理单元。

打开组策略管理控制台

 您可以将GPSI部署为按计算机或按用户部署的软件。可以在GP编辑器的“计算机配置\软件”下找到每计算机功能 设置\软件安装(请参见下面的图1),而每用户部署功能位于用户配置\软件设置\软件安装下。

1.1创建一个分发点
使用GPSI部署软件包的最佳方法是使用Windows Server内置的分布式文件系统(DFS)功能。此功能使您可以从文件的物理位置提取文件路径,这样,如果您需要将应用程序包从一台服务器移动到另一台服务器,则无需更改存储在GPO中的该文件包的文件路径。这一点特别重要,因为本地GPSI功能不支持更改现有软件包的软件包路径-您需要创建一个新软件包,这会对已经通过组策略安装了该软件包的客户端产生影响。

通过GPO部署MSI的第一步是在发布服务器上创建分发点。可以按照以下步骤完成:

  • 以管理员用户身份登录到服务器
  • 创建一个共享的网络文件夹(此文件夹将包含MSI程序包)
  • 在此文件夹上设置权限,以允许访问分发程序包
  • 将MSI复制到共享文件夹中

1.2创建组策略对象
通过GPO将MSI包作为组策略对象进行部署(分发)。为了为您的包创建一个对象,您可以按照以下步骤操作:

  • 单击“开始”按钮,转到“程序”,选择“管理工具”,然后选择“ Active Directory用户和计算机”
  • 在控制台树中右键单击您的域名,然后选择“属性”上下文菜单
  • 选择组策略选项卡,然后单击新建
  • 设置策略的名称(例如MyApplication)
  • 单击属性,然后选择安全性选项卡
  • 选中仅将策略应用到的组的“应用组策略”复选框
  • 点击确定按钮

1.3分配MSI程序包
包可以按用户或按机器分配。同样,如果分配了软件包,它将自动以静默方式安装。为了分配包,您可以按照以下步骤操作:

  • 单击“开始”按钮,转到“程序”,选择“管理工具”,然后选择“ Active Directory用户和计算机”
  • 在控制台树中右键单击您的域名,然后选择“属性”上下文菜单
  • 转到“组策略”选项卡,选择所需的对象,然后单击“编辑”。
  • 在“计算机配置”下展开“软件设置”
  • 右键单击“软件安装”,选择“新建”上下文菜单,然后单击“包”
  • 在“打开”对话框中,键入要分配的共享软件包的完整UNC路径。
  • 点击打开按钮
  • 单击“分配”,然后单击“确定”(程序包将添加到“组策略”窗口的右窗格中)
  • 关闭组策略管理单元,单击确定,然后退出“ Active Directory用户和计算机”管理单元
  • 客户端计算机启动时,分配的软件包将自动安装

1.4发布MSI程序包
使用组策略时,您可以发布一个程序包,以允许目标用户使用“添加”或“删除”程序来安装它。发布程序包的步骤是:

  • 单击“开始”按钮,转到“程序”,选择“管理工具”,然后选择“ Active Directory用户和计算机”
  • 在控制台树中右键单击您的域名,然后选择“属性”上下文菜单
  • 转到“组策略”选项卡,选择所需的对象,然后单击“编辑”。
  • 在用户配置下展开软件设置
  • 右键单击“软件安装”,选择“新建”上下文菜单,然后单击“包”
  • 在“打开”对话框中,键入要发布的共享包的完整UNC路径。
  • 点击打开按钮
  • 单击“发布”,然后单击“确定”(程序包将添加到“组策略”窗口的右窗格中)
  • 关闭组策略管理单元,单击确定,然后退出“ Active Directory用户和计算机”管理单元
  • 测试包装:
  • gpupdate / foce
    • 登录到目标计算机
    • 单击开始按钮,然后转到控制面板
    • 双击添加或删除程序小程序,然后选择添加新程序
    • 在“从网络添加程序”列表中,选择您发布的程序
    • 使用添加按钮安装软件包
    • 单击确定,然后关闭

1.5重新部署MSI程序包
有时您可能需要重新部署软件包(例如,进行升级时)。要重新部署软件包,您可以按照以下步骤操作:

  • 单击“开始”按钮,转到“程序”,选择“管理工具”,然后选择“ Active Directory用户和计算机”
  • 在控制台树中右键单击您的域名,然后选择“属性”上下文菜单
  • 转到“组策略”选项卡,选择用于部署程序包的对象,然后单击“编辑”。
  • 展开包含已部署程序包的“软件设置”元素(按用户或按计算机)
  • 展开包含已部署软件包的软件安装元素
  • 在“组策略”窗口的右窗格中右键单击该程序包
  • 选择“所有任务”菜单,然后单击“重新部署应用程序”
  • 单击是按钮以在安装位置重新安装该应用程序
  • 关闭组策略管理单元,单击确定,然后退出“ Active Directory用户和计算机”管理单元

1.6删除MSI程序包
组策略还允许您删除过去已部署的软件包。以下是删除程序包的步骤:

  • 单击“开始”按钮,转到“程序”,选择“管理工具”,然后选择“ Active Directory用户和计算机”
  • 在控制台树中右键单击您的域名,然后选择“属性”上下文菜单
  • 转到“组策略”选项卡,选择用于部署程序包的对象,然后单击“编辑”。
  • 展开包含已部署程序包的“软件设置”元素(按用户或按计算机)
  • 展开包含已部署软件包的软件安装元素
  • 在“组策略”窗口的右窗格中右键单击该程序包
  • 选择“所有任务”菜单,然后单击“删除”
  • 从以下选项中选择:
  • 立即从用户和计算机上卸载软件
  • 允许用户继续使用该软件,但禁止新安装
  • 单击确定按钮继续
  • 关闭组策略管理单元,单击确定,然后退出“ Active Directory用户和计算机”管理单元

2.通过GPO使用启动脚本部署软件
如果安装软件包是.exe而不是.msi,则无法通过常规的“计算机配置\策略\软件设置\软件安装”策略进行分发。

因此,使用“计算机配置\策略\ 视窗设置\脚本\启动”下的启动脚本是部署软件的另一种选择。但是,该软件应该只安装一次,而不是每次启动时都安装。流行的方法是将安装结果记录在一个文本文件中,然后在启动时读取该文件,如果该文件存在,则不进行安装。  Here are all steps:

YouTube GPO启动脚本部署示例:

2.1为每个脚本创建组织单位(OU)。

2.2 为新创建的OU创建一个组策略对象(GPO)。

2.3 添加每台计算机的启动脚本

  • 打开组策略管理控制台。
  • 选择计算机配置> Policies > 视窗 Settings >脚本(启动/关闭)。
  • 在组策略管理控制台的右侧窗格中,选择“启动”。
  • 在“属性”菜单中,单击“显示文件”,将适当的脚本复制到显示的文件夹中,然后关闭窗口。
  • 在“属性”菜单中,单击“添加”,然后使用“浏览”查找并添加新创建的脚本。

2.4 使用每台计算机的Windows启动脚本部署软件

  • 将指定用于接收此部署的用户设备移动到您创建的OU。
  • 重新引导用户设备并以任何用户身份登录。
  • 验证程序和功能(以前的OS版本中的“添加或删除程序”)是否包含新安装的软件包。

2.5删除Windows每计算机的软件

  • 将指定用于删除的用户设备移动到您创建的OU。
  • 重新引导用户设备并以任何用户身份登录。
  • 验证程序和功能(在先前的OS版本中为“添加或删除程序”)是否已删除先前安装的程序包。

脚本示例:

IF EXIST "c:\vcredist_2010_x86.txt" GOTO END
IF EXIST "c:\vcredist_2010_x64.txt" GOTO END

:32-bit
if exist %SystemRoot%\SysWOW64 goto 64-bit
\\servername\sharename\C++Redist\2010\vcredist_2010_x86.exe /passive /norestart
echo "Installed Microsoft Visual C++ 2010 Redistributable - x86" > "c:\vcredist_2010_x86.txt"
goto END

:64-bit
\\servername\sharename\C++Redist\2010\vcredist_2010_x64.exe /passive /norestart
echo "Installed Microsoft Visual C++ 2010 Redistributable - x64" > "c:\vcredist_2010_x64.txt"

:END
:32-bit
if exist %SystemRoot%\SysWOW64 goto 64-bit
find | reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86"
If not ERRORLEVEL 1 \\servername\sharename\C++Redist\2010\vcredist_2010_x86.exe /passive /norestart
goto END

:64-bit
find | reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x64"
If not ERRORLEVEL 1 \\servername\sharename\C++Redist\2010\vcredist_2010_x64.exe /passive /norestart

:END
if exist "c:\dlpagentinstalled.txt" then goto end
if not exist "c:\dlpagentinstalled.txt" goto install

:install

msiexec /i \\win2012dc\share\AgentInstall-x64_15_5.msi /q INSTALLDIR="%PROGRAMFILES%\Manufacturer\Endpoint Agent" ENDPOINTSERVER="10.94.200.36:10443" TOOLS_KEY="63F2FFF0B6BEE4" RANDOM_KEY="B105E5B47CB88272" UNINSTALLPASSWORDKEY="7213061A9CC9AD437CEED9785" SERVICENAME="EDPA" WATCHDOGNAME="WDP" ARPSYSTEMCOMPONENT="1" ENDPOINT_CERTIFICATE="\\win2012dc\share\endpoint_cert.pem" ENDPOINT_PRIVATEKEY="\\win2012dc\share\endpoint_priv.pem" ENDPOINT_PRIVATEKEY_PASSWORD="F4569BBD5AC9DF34D6AB0BFE86365E80F0FA471F932ADD4D78D51AA35CE26038CA73B34DAB4B989C7F652CE441A4F9BBFBDA8" ENDPOINT_TRUSTSTORE="\\win2012dc\share\endpoint_truststore.pem" LOGDETAILS="Yes" /L*v %SystemDrive%\installAgent.log

echo "Installed DLP Agent - x64" > "c:\dlpagentinstalled.txt"


:end 
exit

笔记:
如果您只想在选定的计算机上部署代理,请遵循以下步骤,  else 该代理将部署到您选择的域或组织单位中的所有计算机。

  • 在“安全过滤”选项卡中,单击“添加”。
  • 它会打开“选择用户,计算机或组”对话框。单击对象类型。
  • 检查计算机,然后单击确定。
  • 输入计算机名称的前几个字母,单击“检查名称”以添加计算机,然后单击“确定”。

参考文献:

通过 约翰

关于“使用组策略部署软件包(MSI,MST,EXE)”的一种想法
  1. […]使用组策略部署软件包(MSI,MST,EXE)– 3.8.2019 ·关闭“组策略”管理单元,单击“确定”,然后退出“ Active Directory用户和计算机”管理单元; 2.通过GPO使用启动脚本部署软件如果安装包是.exe而不是.msi,则您将无法通过常规的“计算机配置策略软件设置软件安装”策略进行分发。 […]

发表评论