1. 开机/关机脚本
开机脚本在系统启动时以 SYSTEM 权限运行,关机脚本在系统关闭时运行。
路径:计算机配置 → 策略 → Windows 设置 → 脚本(启动/关机)
1.1 实战:开机脚本清理临时文件
# 开机脚本:清理 7 天前的临时文件
$days = 7
$paths = @("C:\Windows\Temp", "C:\Temp")
foreach ($path in $paths) {
if (Test-Path $path) {
Get-ChildItem $path -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } |
Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
}
}
GPO 编辑器 → 计算机配置 → 策略 → Windows 设置 → 脚本 → 启动 → 添加 → 浏览 → 上传 Cleanup-Temp.ps1
脚本参数:-ExecutionPolicy Bypass -NoProfile -File Cleanup-Temp.ps1
2. 登录/注销脚本
登录脚本在用户登录时以 当前用户 权限运行。
路径:用户配置 → 策略 → Windows 设置 → 脚本(登录/注销)
2.1 实战:登录脚本映射网络驱动器
# 登录脚本:映射网络驱动器
$drives = @{
"H" = "\\DC01\UserData$\$env:USERNAME"
"S" = "\\DC01\SoftwareDist$"
"P" = "\\DC01\Public"
}
foreach ($letter in $drives.Keys) {
if (!(Test-Path "$letter`:")) {
try {
New-SmbMapping -LocalPath "$letter`:" -RemotePath $drives[$letter] -Persistent $true
} catch {
Write-EventLog -LogName Application -Source WSH -EventId 1001 -Message "Failed to map $letter`: to $($drives[$letter])"
}
}
}
3. 首选项 — 驱动器映射
比登录脚本更优雅的方式,支持 项目级目标筛选。
路径:用户配置 → 首选项 → Windows 设置 → 驱动器映射
右键 驱动器映射 → 新建 → 映射驱动器
操作:创建 | 位置:\\DC01\UserData$\%username% | 驱动器号:H:
在 公共 选项卡:勾选 "在登录时重新连接"
在 目标 选项卡:可添加筛选条件,如"仅对安全组 GG-IT-Users 生效"
4. 首选项 — 注册表设置
路径:计算机配置 → 首选项 → Windows 设置 → 注册表
4.1 实战:禁用 USB 存储设备
右键 注册表 → 新建 → 注册表项
操作:更新
配置:
- 配置单元:
HKEY_LOCAL_MACHINE - 键路径:
SYSTEM\CurrentControlSet\Services\USBSTOR - 值名称:
Start - 值类型:
REG_DWORD - 值数据:
4(4 = 禁用,3 = 启用)
# 检查 USB 存储是否被禁用
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR" -Name Start
# Start = 4 表示已禁用
5. 首选项 — 服务管理
路径:计算机配置 → 首选项 → 控制面板设置 → 服务
5.1 实战:禁用 Print Spooler 服务(非打印服务器)
右键 服务 → 新建 → 服务
服务名称:Spooler | 启动模式:已禁用 | 服务操作:停止
6. 首选项 — 本地用户和组
路径:计算机配置 → 首选项 → 控制面板设置 → 本地用户和组
6.1 实战:将域管理员加入本地 Administrators 组
右键 本地用户和组 → 新建 → 本地组
组名:Administrators(内置组)
操作:更新 → 成员:添加 IEHANG\Domain Admins
6.2 实战:从本地 Administrators 组移除普通用户
同上创建本地组策略
在成员列表中添加要移除的账户,勾选 "从该组中删除"
7. 项目级目标筛选(ILT)
ILT 是首选项的强大功能,可精确控制首选项项的应用条件。
| 筛选条件 | 示例 |
|---|---|
| 安全组 | 仅 GG-IT-Users 组成员 |
| 操作系统 | 仅 Windows 11 |
| IP 地址范围 | 192.168.10.0/24 |
| 计算机名 | CLI-* |
| 注册表匹配 | 某注册表值存在 |
| 环境变量 | %COMPUTERNAME% 匹配模式 |
| 网络连接 | 特定网络适配器存在 |
| 时间范围 | 仅工作时间生效 |
8. 常见问题
首选项优先。首选项支持 ILT 精确筛选、日志记录和更简单的管理界面。脚本适合首选项无法实现的复杂逻辑。
① 检查首选项项的 操作类型(创建/替换/更新/删除)是否正确 ② 检查 ILT 条件是否匹配 ③ 查看 Event Viewer → Applications and Services Logs → Group Policy → Operational 中的首选项应用日志 ④ 确认客户端 F2A(首选项客户端扩展)已安装