Get-ADUser 错误:枚举上下文无效

2024-03-09

我前几天发布了这个问题从分组对象中提取电子邮件 https://stackoverflow.com/questions/30856287/extract-e-mail-from-grouped-objects/30856711?noredirect=1#comment49758538_30856711

$OuUser = @{}

$OuUser = Get-AdUser -Properties * -Filter * -SearchBase "domain"   

$Duplicates = $OuUser | Select samaccountname, mail,UserPrincipalName |
    Group-Object Mail | Where{$_.Count -gt 1}

$Duplicates | Select Name,Count,@{l='Accounts';e={($_.Group|Select -Expand samaccountname) -join ';'}} | 
    Export-CSV E:\Damo\Duplicates.csv -NoTypeInfo

该代码在一个域上运行良好,针对 OU 中的一小组用户进行测试。

在我想要测试的域上进行测试时,该域中有很多用户,此代码失败。 OU 中包含非电子邮件格式的电子邮件地址。它指向 Get-ADUser 的错误。

Get-ADUser : The server has returned the following error: invalid enumeration c
ontext.
At C:\scripts\CountEmailsDup.ps1:4 char:21
+ $OuUser = Get-AdUser <<<<  -Properties * -Filter * -SearchBase 'ou=external,o
u=user accounts,dc=bizdir,dc=nzpost,dc=co,dc=nz' -SearchScope OneLevel
    + CategoryInfo          : NotSpecified: (:) [Get-ADUser], ADException
    + FullyQualifiedErrorId : The server has returned the following error: inv
   alid enumeration context.,Microsoft.ActiveDirectory.Management.Commands.Ge
  tADUser

我不明白为什么我在一个域上遇到此错误,但在另一个域上却没有。


你在这里遇到的最大问题是你要求太多Get-ADUser。根据您的评论,您正在拉取超过 900,000 个帐户。最重要的是,您将提取这些用户的所有属性。那里有一丝疯狂。

虽然我不太清楚你的错误意味着什么,但我确实知道每个得到它的人都会返回很多用户,而你显然就是这样的用户。缓解这种情况的第一步是使用-ResultPageSize of Get-ADUser。您的里程可能会有所不同,但您需要尝试返回的记录数量。 500-1000 通常是一个好的开始。

我永远不会使用-Properties *除非我只为一位用户拉动并且想查看所有内容。我强烈怀疑您在函数中使用了所有这些属性。为了提高效率,限制自己只做你需要的事情。您显然需要指定Mail.

由于您正在处理基于mail属性另一件事是将您的结果限制为那些仅具有填充邮件属性的结果。您可以做一些过滤事情,例如“", "....“(来自 Vesper 的评论)或”@“根据您的评论

有一些电子邮件字段带有 123 和 .在它们中,所以我必须使用 length -gt 3 或其他东西来跳过它们。

对此不确定,我没有样本数据来测试理论,但使用管道也应该有助于事情进展,而不是保存结果只是为了在管道中使用它们。

Get-AdUser -Properties mail -Filter 'mail -like "*@*"' -SearchBase "domain" -ResultPageSize 1000 | 
    Group-Object Mail | 
    Where{$_.Count -gt 1} |
    Select Name,Count,@{l='Accounts';e={($_.Group|Select -Expand samaccountname) -join ';'}} | 
    Export-CSV E:\Damo\Duplicates.csv -NoTypeInfo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Get-ADUser 错误:枚举上下文无效 的相关文章

随机推荐

  • 打印替换表达式而不进行数值计算

    是否可以打印替代 SymPy 表达式而不进行计算 我想打印替换的表达和结果 e g x Symbol x expr x 2 pprint expr this prints expression result expr subs x 2 pr
  • HttpWebRequest 在 SQLCLR 中第一次运行缓慢

    在 CLR 存储过程中发出 HttpWebRequest 时 按照下面的代码 Sql Server 重新 启动后或在给定 但不确定 的时间段后的第一次调用会在 Sql Server 上等待相当长的时间 GetResponse 方法调用 有没
  • React Native - 在 AppNavigator 之外访问抽屉导航

    App js
  • Xcode 4 中身份检查器下的标签颜色

    在身份检查器下 我们都知道标签属性用于在界面生成器中更容易地识别对象 但是它底部的颜色是用来做什么的 我尝试选择一种颜色 但界面生成器中没有任何变化 编辑 截图 如果您还没有使用颜色标签来对文件和文件夹进行排序 那么您确实应该考虑它 使用颜
  • ProgressDialog 嵌套在另一个空白对话框中

    替代文本http img252 imageshack us img252 643 snakesonadialog png http img252 imageshack us img252 643 snakesonadialog png 嗨伙
  • 条件线程中断

    在我正在编写的一些代码中 有几个地方我做了这样的事情 public MyThread extends Thread boolean finished false BlockingQueue
  • 在多少种语言中,Null 不等于任何非 Null 的东西?

    在多少种语言中 Null 不等于任何非 Null 的东西 SQL 作为一种逻辑语言 就是这样 因为 null 意味着未知 未定义 然而 在编程语言 例如 C 或 C 中 空指针 引用是具有特定含义的特定值 什么都没有 两个无是等价的 但两个
  • 为什么 console.log 的行为是这样的?

    在 Node js 解释器上 console log A newline character is written like n output is A newline character is written like n 但是当你简单地
  • 如何在 Windows 上使用 ImageMagick 命令行?

    我的目标是确定我拥有的 jpeg 图像的压缩参数 据我了解这个答案 https stackoverflow com questions 2024947 is it possible to tell the quality level of
  • Xamarin.iOS 中带有填充的 UILabel?

    我正在尝试创建一个UILabel在我的 Xamarin iOS 应用程序中使用填充 原生 Objective C 应用程序中最流行的解决方案是重写drawTextInRect void drawTextInRect CGRect rect
  • Emacs:临时缓冲区的弹出底部窗口

    我想要一个用于临时缓冲区的弹出底部窗口 例如汇编 竣工数量等 即使根窗口水平分割 它也应该垂直分割整个框架 例如 M x 编译前 After 我绝对满意ecb 编译窗口 http ecb sourceforge net docs ecb c
  • while 和 for 哪个循环更快?

    您可以使用 for 和 while 循环获得相同的输出 While i 0 while i lt 10 print i n i For for i 0 i lt 10 i print i n 但哪一个更快呢 这显然取决于特定语言的解释器 编
  • IEnumerator 实现

    我有一个这个代码 public class SomeClass
  • 消除网格间隙

    我有一个 div 其元素对齐为一行 这是它的 css 类 myRow display grid grid template columns 0 1fr 0 1fr 2fr 3fr 2fr grid column gap 10px grid
  • 如何在 OpenSSL 中获取 SSL 证书

    因此 我一直在寻找如何在我正在开发的 C 应用程序中的 OpenSSL 中验证服务器的证书 我终于得到了提示 但是 我仍然缺少一些步骤 所以我发现OpenSSL有一个名为s client的ssl客户端应用程序 当我使用以下命令时 echo
  • 自定义qt项目时使用条件

    再会 我有一个 qt 项目 我想使用 pro 文件条件对其进行自定义 值得注意的是 我想使用一个 pro 文件来获取多个输出 如下所示 DEFINES APP1 0 APP2 1 DEFINES TYPE APP1 if TYPE APP1
  • AG-Grid 大数据集渲染时间(慢)

    我有一个网格 其中包含大量但合理的数据 大约 12 000 个单元格 340 列和 34 行 我知道这看起来像是一个横向表格 但对于我们的应用程序来说 它更可能有大量的列和更少的行 当数据约为 2300 个单元格 68 列和 34 行 时
  • 如何访问pgadmin数据库设计器?

    我正在运行 pgadmin 1 18 在选项窗格中 我可以设置数据库设计器的字体 但我发现绝对无法访问此数据库设计器窗口 没有图标或菜单或任何 这是 pgadmin 1 18 下的可用功能吗 应该启用它吗 图形查询生成器 Source ht
  • Accurev 中的 diff 与 basic 和 backing 之间有什么区别

    Accurev 中与基础的差异和与支持的差异有什么区别 我从您在本论坛中的其他帖子中假设 这里的上下文将是在您的工作区中根据 支持 或 基础 对文件进行比较 与基础进行比较将在进行更改之前将您工作区中当前拥有的文件与您开始使用的版本进行比较
  • Get-ADUser 错误:枚举上下文无效

    我前几天发布了这个问题从分组对象中提取电子邮件 https stackoverflow com questions 30856287 extract e mail from grouped objects 30856711 noredire