You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Powershell获取域内各PC的用户权限列表?本地/AD方案咨询

解决方案:域内PC用户权限清单生成

一、单PC本地生成权限列表

1. 命令行工具

  • 基础组查询:在CMD或PowerShell里执行 net localgroup,直接列出所有本地组及对应成员。要导出到文件的话,用 net localgroup > C:\LocalGroups_$(hostname).txt,文件名自动带上当前PC名称。
  • 结构化输出:用PowerShell的Get-LocalGroupMember cmdlet生成更易整理的格式:
    Get-LocalGroup | ForEach-Object { 
        Get-LocalGroupMember $_.Name | Select-Object GroupName, Name, PrincipalSource 
    } | Export-Csv -Path C:\UserPermissions_$(hostname).csv -NoTypeInformation
    
    导出的CSV可以直接用Excel打开,方便筛选查看。

2. 图形化操作

右键「此电脑」→「管理」,展开「本地用户和组→组」,每个组右键「属性」就能看到成员,适合手动快速查看单台机器的权限配置。

二、AD服务器集中查询(理想方案)

1. 可复用PowerShell脚本(新手友好)

不需要复杂编码,用AD模块结合远程查询即可,步骤如下:

# 导入AD模块(需在AD服务器或安装了RSAT工具的机器上运行)
Import-Module ActiveDirectory

# 获取域内所有计算机(可加过滤条件,比如只查特定OU下的机器:-SearchBase "OU=Sales,DC=domain,DC=com")
$computers = Get-ADComputer -Filter * -Properties Name

# 循环查询每台机器的本地组和成员
$results = foreach ($computer in $computers) {
    try {
        # 远程查询需确保目标PC开启WinRM,且执行账号有目标PC的管理员权限
        Get-WmiObject -Class Win32_GroupUser -ComputerName $computer.Name -ErrorAction Stop | 
        ForEach-Object {
            [PSCustomObject]@{
                ComputerName = $computer.Name
                GroupName = $_.GroupComponent.Split('=')[1].Replace('"','')
                UserName = $_.PartComponent.Split('=')[1].Replace('"','')
            }
        }
    } catch {
        Write-Warning "无法连接到 $($computer.Name): $_"
    }
}

# 导出所有结果到CSV
$results | Export-Csv -Path C:\DomainUserPermissions.csv -NoTypeInformation

注意:提前用组策略批量开启域内PC的WinRM(或在单台机器上执行Enable-PSRemoting -Force),确保执行脚本的账号有域内所有PC的管理员权限。

2. 现成管理工具

  • AD内置工具:在「Active Directory Users and Computers」中,可结合组策略查看已部署的权限模板;用「ADAC(Active Directory Administrative Center)」的高级查询功能,筛选跨设备的用户权限关联。
  • 第三方审计工具:比如Lepide Auditor for Active Directory,这类工具能自动扫描域内所有PC的本地权限,生成可视化报表,完全不需要自己写代码,适合新手快速整理权限清单。

三、关于现成方案与编码难度

  • 现成方案:上述PowerShell脚本是可直接复用的现成方案,第三方AD审计工具也是成熟的商用/免费解决方案,无需从零开发。
  • 编码难度:用现成的PowerShell cmdlet实现需求,只需要修改少量参数(比如过滤特定计算机),完全在新手能力范围内——不需要专业编程知识,只要能复制脚本、理解基本参数含义即可。如果要自定义筛选逻辑(比如按用户统计跨设备权限),稍微学习下PowerShell的循环和过滤语法就能实现,门槛很低。

内容的提问来源于stack exchange,提问作者Pierre de la Verre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:22:35