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

如何在无本地管理员权限下为普通用户启用Get-ADUser模块?

无需本地管理员权限使用Get-ADUser模块的方法

以下是几种可行的方案,无需本地管理员权限即可实现AD用户数据检索:

1. 通过远程PowerShell会话连接域控制器

域控制器默认预装了Active Directory模块,你可以直接远程连接到域控制器执行Get-ADUser命令,无需在本地安装RSAT组件:

  • 建立远程会话并执行查询:
    # 替换为你的域控制器名称或FQDN
    $dcName = "DC01.yourdomain.com"
    # 输入你的域用户凭据(非管理员权限即可)
    $cred = Get-Credential
    $session = New-PSSession -ComputerName $dcName -Credential $cred
    # 直接在远程会话中执行Get-ADUser
    Invoke-Command -Session $session -ScriptBlock { Get-ADUser -Filter * -Properties DisplayName, EmailAddress }
    
  • 也可以将远程会话中的AD模块导入本地,之后直接在本地提示符使用Get-ADUser:
    Import-PSSession -Session $session -Module ActiveDirectory
    # 现在可以直接运行
    Get-ADUser -Identity "jdoe" -Properties *
    

注意:需要确保域控制器允许远程PowerShell连接(默认已启用),且你的域用户拥有AD数据的读取权限。

2. 使用ADSI接口直接查询AD

无需依赖任何PowerShell模块,通过.NET的ADSI接口直接查询Active Directory,完全不需要本地管理员权限:

# 获取当前域信息
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ldapPath = "LDAP://$($domain.Name)"

# 创建AD搜索器
$searcher = New-Object System.DirectoryServices.DirectorySearcher($ldapPath)
# 设置筛选条件为用户对象
$searcher.Filter = "(objectClass=user)"
# 指定需要加载的属性
$searcher.PropertiesToLoad.AddRange(@("samAccountName", "DisplayName", "mail"))

# 执行查询并格式化输出
$searcher.FindAll() | ForEach-Object {
    [PSCustomObject]@{
        Username = $_.Properties["samaccountname"][0]
        DisplayName = $_.Properties["displayname"][0]
        Email = $_.Properties["mail"][0]
    }
}

这种方法不需要安装任何额外组件,只要你的域用户拥有AD读取权限即可执行。

3. 请求域管理员预先安装RSAT-AD模块

如果有条件,可以联系域管理员,使用他们的本地管理员权限在你的机器上运行以下命令安装RSAT-AD模块:

Get-WindowsCapability -Name RSAT.ActiveDirectory* -Online | Add-WindowsCapability -Online

模块安装完成后,你作为普通域用户即可直接使用Get-ADUser命令(前提是你拥有AD数据的读取权限)。

内容的提问来源于stack exchange,提问作者Michael B. Ortiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:51:12