求可批量获取域内所有计算机本地用户列表的PowerShell脚本
获取域内所有计算机的本地用户列表的PowerShell脚本
以下是适配需求的脚本,会自动拉取域内所有启用状态的计算机,再批量获取每台机器的本地用户:
基于WMI的版本(兼容旧系统)
# 获取域内所有启用的计算机名称 $domainComputers = Get-ADComputer -Filter {Enabled -eq $true} | Select-Object -ExpandProperty Name # 遍历计算机获取本地用户,跳过无法连接的机器 foreach ($computer in $domainComputers) { Get-WmiObject -ComputerName $computer -Class Win32_UserAccount -Filter "LocalAccount=True" -ErrorAction SilentlyContinue | Select-Object PSComputername, Name, Status, Disabled }
推荐的CIM版本(更高效、错误处理更优)
# 获取域内所有启用的计算机名称 $domainComputers = Get-ADComputer -Filter {Enabled -eq $true} | Select-Object -ExpandProperty Name # 批量查询本地用户,自动跳过无法连接的计算机 Get-CimInstance -ComputerName $domainComputers -ClassName Win32_UserAccount -Filter "LocalAccount=True" -ErrorAction SilentlyContinue | Select-Object PSComputerName, Name, Status, Disabled
关键说明:
Get-ADComputer -Filter {Enabled -eq $true}:仅拉取域内处于启用状态的计算机,若要包含所有计算机(包括禁用的),将Filter改为*即可。-ErrorAction SilentlyContinue:避免因单台计算机离线/权限不足导致脚本中断,会自动跳过这类机器。- 若需要将结果导出为CSV文件,在脚本末尾追加:
| Export-Csv -Path "域内本地用户列表.csv" -NoTypeInformation。 - 运行要求:需在安装了AD RSAT工具的机器上执行,且账号需具备读取AD计算机信息、远程访问目标机器WMI/CIM的权限。
内容的提问来源于stack exchange,提问作者Mark Powell
相关产品推荐
相关产品推荐

