<p>直接用PowerShell调用ActiveDirectory模块可导出域内所有计算机清单,需满足权限、网络连通及模块安装前提;执行Get-ADComputer -Filter * -Properties Name,DNSHostName,OperatingSystem,LastLogonDate,Enabled | Select-Object Name,DNSHostName,OperatingSystem,LastLogonDate,Enabled | Export-Csv -Path "C:\AD_Computers_Report.csv" -NoTypeInformation -Encoding UTF8即可导出含关键属性的CSV文件。</p>

直接用 PowerShell 调用 Active Directory 模块就能导出域内所有计算机清单,关键是要有权限、环境连得上、属性选得准。
确认执行前提条件
脚本必须在能访问域控制器的机器上运行,且当前用户账号需具备域管理员或至少“读取计算机对象”权限。确保已安装 ActiveDirectory 模块(通常随 RSAT 工具包安装):
- 运行
Get-Module -ListAvailable ActiveDirectory确认模块存在 - 若未安装,需在 Windows 功能中启用“远程服务器管理工具 > 角色管理工具 > AD DS 和 AD LDS 工具”
- 首次使用前执行
Import-Module ActiveDirectory
基础导出命令(含常用字段)
以下命令导出所有加入域的计算机,包含名称、DNS主机名、操作系统、最后登录时间,并保存为 CSV 文件:
计算机网络安全服务公司网站模板是一款适合提供云安全、网络安全、服务器管理。数据安全服务公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
Get-ADComputer -Filter * -Properties Name, DNSHostName, OperatingSystem, LastLogonDate, Enabled | Select-Object Name, DNSHostName, OperatingSystem, LastLogonDate, Enabled | Export-Csv -Path "C:\AD_Computers_Report.csv" -NoTypeInformation -Encoding UTF8
-
-Filter *表示获取全部计算机对象 -
-Properties明确指定要拉取的扩展属性,避免默认只返回基本字段 -
Enabled字段可快速识别已禁用的计算机(如退役设备) -
-Encoding UTF8防止中文字段在 Excel 中乱码
按需筛选与优化输出
实际运维中常需聚焦特定范围,例如只导出 Windows 10/11 工作站、近30天活跃设备或排除服务器:
- 只导出 Windows 工作站:
Get-ADComputer -Filter {OperatingSystem -Like "*Windows*"} -Properties ... - 近30天内登录过的设备:
-Filter {LastLogonDate -ge (Get-Date).AddDays(-30)} - 排除服务器类系统:
-Filter {(OperatingSystem -NotLike "*Server*") -and (Enabled -eq $true)} - 导出纯主机名列表(供后续批量操作用):
Get-ADComputer -Filter * | Select-Object -ExpandProperty Name | Out-File "C:\ComputerNames.txt"
导出失败常见原因及应对
如果命令报错“无法联系域控制器”,不要直接重试,先排查底层连接问题:
- 运行
Test-Connection -ComputerName your-domain-controller -Count 1确认网络可达 - 检查 DNS 设置是否指向域内 DNS 服务器(
nslookup your.domain.com) - 确认当前会话以域用户身份运行(
$env:USERDOMAIN应显示域名) - 若提示模块找不到,需以管理员身份运行 PowerShell 并重新导入模块

















