通过GPO部署PowerShell脚本自动采集全网终端的计算机描述、主机名、IP及OU路径等信息并写入共享CSV文件,实现无人值守资产信息标准化收集与日常维护。
用gpo自动采集全网终端的计算机描述信息,核心思路是:通过组策略部署一个开机或登录时运行的脚本,让每台电脑把自身的描述(computer description)连同主机名、ip、ou路径等关键字段,统一写入指定位置(如共享文件夹或数据库接口)。整个过程无需人工干预,也不依赖第三方工具。
确认并规范计算机描述字段
Windows 中的“计算机描述”是 Active Directory 计算机对象的一个属性(description),默认为空。它和系统属性里的“计算机名”“工作组”无关,但可由管理员或脚本写入,且能被 PowerShell 或 WMI 读取。采集前建议先统一标准:
- 描述内容应简洁明确,例如:
财务部-戴尔OptiPlex 7080-2024Q2采购或研发测试机-Win11-已加入Azure AD - 避免含特殊字符(如
/ : * ? " |),否则可能影响脚本解析或日志写入 - 可通过 PowerShell 批量设置已有计算机描述:
Get-ADComputer -SearchBase "OU=Workstations,DC=corp,DC=local" -Filter * | Set-ADComputer -Description "标准办公机"
编写轻量采集脚本(推荐PowerShell)
比批处理更稳定、可读性更强,且原生支持 AD 属性读取和网络写入。保存为 Collect-PCDesc.ps1,放在域内可读共享(如 \DC01Scripts):
$Comp = Get-ADComputer $env:COMPUTERNAME -Properties Description, DistinguishedName $Desc = $Comp.Description -replace '[^ -~]', '' # 清理不可见字符 $Output = "$($env:COMPUTERNAME),$(Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Select-Object -First 1 -Expand IPAddress),$Desc,$($Comp.DistinguishedName)" $Output | Out-File "\DC01ReportsPCDesc_$(Get-Date -Format 'yyyyMMdd').csv" -Encoding UTF8 -Append
注意:需在域控上为该脚本启用执行策略(Set-ExecutionPolicy RemoteSigned -Scope LocalMachine),并确保目标计算机有读取 AD 和写入共享的权限。
计算机网络安全服务公司网站模板是一款适合提供云安全、网络安全、服务器管理。数据安全服务公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
通过GPO部署并触发采集
使用“计算机配置 → 首选项 → Windows 设置 → 计划任务”方式部署,比登录脚本更可靠(不依赖用户上下文,且支持系统级权限):
- 新建一个“仅运行一次”的计划任务,触发器设为“系统启动时”,延迟 2 分钟(确保网络就绪)
- 操作为启动程序:
powershell.exe,参数填:-ExecutionPolicy Bypass -File "\DC01ScriptsCollect-PCDesc.ps1" - 安全选项中勾选“不管用户是否登录都要运行”,并选择“最高权限”
- 将该 GPO 链接到存放终端计算机的 OU(如
OU=Workstations,DC=corp,DC=local),确保继承未被阻止
结果查看与日常维护
每日生成的 CSV 文件会自动追加到共享报告目录,可用 Excel 或 PowerShell 快速分析:
Import-Csv "\DC01ReportsPCDesc_$(Get-Date -Format 'yyyyMMdd').csv" -Header Hostname,IP,Description,OU | Where-Object {$_.Description -eq ''}
这条命令能快速找出尚未填写描述的机器。后续还可扩展:自动比对空描述项并邮件提醒责任人、对接 CMDB 接口更新资产字段、或结合 Get-CimInstance Win32_ComputerSystemProduct 补充 SN/厂商信息。

















