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

使用PowerShell跨域获取Active Directory用户属性问题求助

问题解决思路与方案

问题根源

跨域场景下,直接使用[ADSI] "LDAP://$UserDN"不会复用Get-ADUser时传入的凭据,而是默认使用本地进程的身份访问目标域,因权限不足导致返回空属性。


方案1:直接通过Get-ADUser获取属性(推荐)

无需额外调用ADSI,Get-ADUser本身就能直接返回所需属性,只需明确指定要获取的字段:

$Credential = Get-StoredCredential -Target targetdomaincredential
$userId = 'UserID'

# 用-Properties指定需要的属性,默认仅返回有限字段
Get-ADUser -Server ADDCX -Credential $Credential -Filter {SamAccountName -eq $userId} `
  -Properties givenName, sn, distinguishedName, path | Format-List

方案2:使用DirectoryEntry显式传入凭据(如需保留ADSI逻辑)

[ADSI]是DirectoryEntry的快捷方式,但不支持传入跨域凭据,需显式创建DirectoryEntry对象并指定授权信息:

$Credential = Get-StoredCredential -Target targetdomaincredential
$userId = 'UserID'

$UserDN = (Get-ADUser -Server ADDCX -Credential $Credential -Filter {SamAccountName -eq $userId}).DistinguishedName

# 显式创建DirectoryEntry并传入凭据
$adEntry = New-Object System.DirectoryServices.DirectoryEntry(
  "LDAP://$UserDN",
  $Credential.UserName,
  $Credential.GetNetworkCredential().Password
)

# 强制加载属性缓存
$adEntry.RefreshCache()
$adEntry | Select-Object * | Format-List

额外排查点

  • 确认存储的凭据账号在目标域拥有读取用户属性的权限(默认域用户通常具备此权限,特殊ACL配置需单独验证)
  • 若LDAP路径解析异常,可指定域控制器地址:"LDAP://ADDCX/$UserDN"

内容的提问来源于stack exchange,提问作者user3596261

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:12:02