1. 组策略软件安装概述
组策略软件安装(GPSI)可通过 GPO 自动在客户端安装 MSI 格式的软件包。
| 部署方式 | 说明 | 何时安装 |
|---|---|---|
| 分配(Assigned) | 强制安装,用户无法跳过 | 开机时(计算机策略)或登录时(用户策略)自动安装 |
| 发布(Published) | 可选安装,用户自行决定 | 用户在"程序和功能"或"获取程序"中手动安装 |
⚠️ GPSI 限制
- 仅支持 MSI 格式(EXE 需先打包为 MSI)
- 不支持复杂安装逻辑(如先装依赖再装主程序)
- 部署大量软件时管理复杂,建议 少量软件用 GPSI,大量软件用 MDT/SCCM
2. 创建软件分发点
1
在文件服务器上创建共享目录,存放 MSI 安装包
PowerShell - 创建软件分发点
# 创建软件分发目录
New-Item -Path "E:\SoftwareDist" -ItemType Directory -Force
# 创建子目录
New-Item -Path "E:\SoftwareDist\7-Zip" -ItemType Directory -Force
New-Item -Path "E:\SoftwareDist\VLC" -ItemType Directory -Force
New-Item -Path "E:\SoftwareDist\Notepad++" -ItemType Directory -Force
# 创建共享(Everyone 只读)
New-SmbShare -Name "SoftwareDist$" -Path "E:\SoftwareDist" `
-ReadAccess "IEHANG\Domain Users"
# 设置 NTFS 权限
icacls "E:\SoftwareDist" /grant "IEHANG\Domain Users:(OI)(CI)R"
3. 分配与发布软件
3.1 分配软件到计算机
1
GPO 编辑器 → 计算机配置 → 策略 → 软件设置 → 软件安装
2
右键 → 新建 → 程序包 → 浏览到 \\DC01\SoftwareDist$\7-Zip\7z2301-x64.msi
3
选择部署方式:已分配 → 确定
4
将 GPO 链接到目标 OU → 客户端下次开机自动安装
3.2 发布软件给用户
1
GPO 编辑器 → 用户配置 → 策略 → 软件设置 → 软件安装
2
右键 → 新建 → 程序包 → 选择 MSI 文件
3
选择部署方式:已发布 → 确定
3.3 高级部署选项
右键已添加的软件包 → 属性:
| 选项 | 说明 |
|---|---|
| 部署时不要显示此程序包 | 静默安装,不显示安装进度 |
| 在登录时安装此应用程序 | 用户策略中的分配软件,登录时安装 |
| 允许通过终端服务安装 | 允许 RDS 会话中安装 |
| 卸载时删除此软件 | GPO 删除时自动卸载软件 |
4. 软件升级与替换
1
将新版本的 MSI 放入同一分发目录
2
在软件安装中,右键新版本包 → 属性 → 升级 选项卡
3
勾选 "当前组策略对象中的程序包" → 选择旧版本 → 确定
4
可选:勾选 "卸载现有程序包,然后安装升级程序包"
5. 软件卸载与重新部署
PowerShell - 管理 GPO 软件部署
# 查看客户端安装的 GPO 软件
Get-WmiObject -Class Win32_Product -ComputerName Client01 |
Where-Object { $_.Name -like "*7-Zip*" }
# 重新部署软件(在 GPMC 中右键软件包 → 重新部署)
# 这会强制客户端重新安装
5.1 删除 GPO 时的卸载选项
| 选项 | 行为 |
|---|---|
| 立即卸载 | GPO 删除/取消链接时自动卸载软件 |
| 允许用户继续使用 | 软件保留在客户端,但不再管理 |
6. 常见问题
Q1:软件安装失败,客户端无提示
查看客户端日志:C:\Windows\Temp\msi*.log。常见原因:① MSI 文件路径不可达(共享权限)② MSI 文件损坏 ③ 已安装更高版本 ④ 需要管理员权限但当前用户权限不足
Q2:EXE 安装包能否用 GPSI 部署
不直接支持。需要先用工具将 EXE 打包为 MSI,如使用 Advanced Installer、WiX Toolset 或 EMCO MSI Package Builder。也可以用 GPO 开关机脚本替代 GPSI 来部署 EXE。
Q3:部署大量软件用什么方案更好
GPSI 适合 5 个以内 的软件部署。大量软件建议使用 MDT 任务序列(部署时批量安装)或 SCCM/MECM(企业级软件分发),更灵活且支持 EXE、脚本安装和依赖管理。