Linux上.NET 8.0无法获取超1500成员的AD组完整成员列表
跨平台.NET 8下获取AD大组完整成员的方法求助
环境与限制
- 无法使用
System.DirectoryServices.AccountManagement库,该库仅适配微软服务器/工作站环境,不符合跨平台需求 - 使用
System.DirectoryServices.Protocols库访问AD组时,仅能获取前1500个成员,无法拿到完整成员列表
遇到的异常情况
根据网上通用逻辑:AD组成员数少于1500时,member属性会直接填充所有成员;成员数超过1500时,member属性为空,同时生成member;range=0-1499及后续分段属性。但我司的大组仅存在member和member;range=0-1499属性,无法找到其余成员的存储位置。
可行的PowerShell参考方案
PowerShell可通过以下代码轻松获取完整成员列表:
Get-ADGroup -Identity "group-name" -Properties Members | Select-Object -ExpandProperty Members | ForEach-Object { Write-Output $_ } > c:\output.txt
但PowerShell中自动整合分段成员的Members虚拟属性,无法在C# .NET 8的System.DirectoryServices.Protocols中直接访问。
求助需求
求适用于跨平台C# .NET 8的库或实现方法,能够获取AD大组的完整成员列表。
内容的提问来源于stack exchange,提问作者Rich Bayless
相关产品推荐
相关产品推荐

