Get-ADComputer 是什么
域里的每台已加域计算机都有一个计算机账号对象,Get-ADComputer 就是查询它们的命令:按名称通配过滤、限定到某个 OU、读取操作系统与上次登录时间等属性。它在两件事上最有价值——资产盘点(我们到底有多少台域内机器)与陈旧对象清理(哪些机器已经长期不在线)。后者的判断要谨慎,删错了重新加域的成本远高于留着不管。
基本信息
| 适用平台 | Windows Server 域环境;需 RSAT 的 ActiveDirectory 模块 |
|---|---|
| 基本语法 | Get-ADComputer -Filter <条件> -Properties <属性列表> |
| 常用属性 | OperatingSystem、LastLogonDate、Created、Description、Enabled |
| 筛选技巧 | Filter 内用变量需双引号包住整段并可被展开 |
| 分页 | 结果多时用 -ResultSetSize 或 -ResultPageSize 控制 |
| 相关命令 | Search-ADAccount -AccountInactive -ComputersOnly |
典型使用场景
- 按命名规则盘点某类服务器,确认资产数量
- 找出 90 天以上未登录的计算机对象,评估是否清理
- 统计操作系统分布,为升级计划做依据
- 交付或退役流程中核对目标机器是否已完成加域或下域
- 配合导出 CSV 形成资产台账
常用示例
常用示例
Get-ADComputer -Filter 'Name -like "APP-*"' -Properties OperatingSystem, LastLogonDate, Description | Select-Object Name, OperatingSystem, LastLogonDate # 按前缀盘点
$cut = (Get-Date).AddDays(-90)
Get-ADComputer -Filter 'LastLogonDate -lt $cut' -Properties LastLogonDate | Select-Object Name, LastLogonDate # 长期未登录
Get-ADComputer -Filter * -SearchBase 'OU=Servers,DC=corp,DC=local' -Properties OperatingSystem | Group-Object OperatingSystem | Select-Object Count, Name # 系统分布
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan (New-TimeSpan -Days 90) | Select-Object Name # 另一条路径
Get-ADComputer -Filter * -Properties LastLogonDate | Export-Csv D:\ad\computers.csv -NoTypeInformation -Encoding UTF8 # 导出台账属性读法
| 属性 | 含义 | 判读要点 |
|---|---|---|
| Name | 计算机名 | 通常与命名规范对应 |
| OperatingSystem | 操作系统版本 | 升级规划的依据 |
| LastLogonDate | 最近登录时间 | 非精确值,来自复制同步 |
| Created | 对象创建时间 | 近期批量新增要追问来源 |
| Enabled | 是否启用 | 禁用对象可先观察再清 |
| Description | 备注 | 默认空,补上便于资产确认 |
LastLogonDate 是各域控复制汇总后的近似值,用来做批量筛选可以,用来做单台机器的精确判断不够;关键决策前交叉核对多个时间源。
清理计算机对象前确认设备确实已退役:删除后重新加域需要重新配置并可能影响已授权的资源访问,尤其不要把“LastLogonDate 为空”直接理解为“从未使用”。