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

Get-ADUser在终端正常运行但PowerShell脚本中报错问题

问题解决:PowerShell脚本中获取AD用户组列表报错的替代方案

问题描述

在PowerShell 5.1终端直接执行以下命令时,可正常获取用户BlueF的AD组列表:

$members = @(((Get-ADUser -Identity BlueF -Properties MemberOf).MemberOf | Get-ADGroup).Name | Sort-Object)

但将该命令放入脚本执行时,触发错误:Cannot find an object with identity,提示无法找到指定身份的AD组。尝试过重启PowerShell、改用for循环遍历组对象等方式,均未解决问题。

解决方法

通过直接解析MemberOf属性的LDAP路径字符串,无需调用Get-ADGroup即可提取组名称,具体命令如下:

$members = @((((Get-ADUser -Identity $BlueF -Properties MemberOf).MemberOf) -replace '(.+?),.+','$1') -replace 'CN=','' | Sort-Object)

原理说明

MemberOf属性返回的是AD组的完整LDAP区分名(DN),格式类似CN=GroupName,OU=Groups,DC=domain,DC=com。通过两次正则替换:

  • 第一次-replace '(.+?),.+','$1'截取逗号前的部分,得到CN=GroupName
  • 第二次-replace 'CN=',''移除CN=前缀,最终得到纯组名称

这种方式绕过了Get-ADGroup调用时可能出现的身份解析问题,直接从原始属性值中提取所需信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:33:08