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