使用问号通配符过滤 Get-ADGroups 似乎不起作用

2023-12-01

我正在尝试获取名称以“Users-####-”开头的 AD 组列表(# 是数字 0-9)。

我尝试过使用Get-ADGroup -Filter {name -like "Users-[0-9][0-9][0-9][0-9]-*"} and Get-ADGroup -Filter {name -like "Users-????-*"},但没有结果。

我当然可以使用Get-ADGroup -Filter {name -like "Users-*"},但这也将包括所有在 Users- 之后具有四个字符以外的字符的组。

然后我决定尝试使用Where-Object,此代码返回了预期的组

Get-ADGroup -Filter * | Where-Object {$_.Name -like "Users-[0-9][0-9][0-9][0-9]-*"}

根据微软的文档通配符,我尝试过两种方法should有效,但实际上并没有。

有人知道我做错了什么,还是这只是 ADGroup 过滤工作方式中的一个错误?


根据微软有关通配符的文档,我尝试了两种方法应该管用,但他们实际上没有。

这是一个合理的假设,但是-Filter中的某些 cmdlet 公开的参数ActiveDirectory模块是一个欺骗性的构造- 它的设计目的是看起来像PowerShell 的本机运算符语法,但 cmdlet 在“幕后”将过滤器表达式转换为有效的 LDAP 查询过滤器:

name -like "Users-*"
# is translated to
(name=Users-*)

$_.Name -like "Users-[0-9][0-9][0-9][0-9]-*"
# is translated to
(Name=Users-[0-9][0-9][0-9][0-9]-*)

由于 LDAP 无法识别通配符范围结构[0-9],它最终会在目录存储中查询名称所在的对象字面上地以。。开始Users-[0-9][0-9][0-9][0-9]-- 同样适用于?.

Since *是 LDAP 接受的唯一通配符,您可以获得的最接近的是:

Get-ADGroup -Filter {name -like "Users-*-*"}

然后在客户端进一步过滤结果Where-Object(在这种情况下,我们返回 PowerShell 执行比较,并且可以再次使用所有通配符):

Get-ADGroup -Filter {name -like "Users-*-*"} | Where-Object Name -like 'Users-[0-9][0-9][0-9][0-9]-*'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用问号通配符过滤 Get-ADGroups 似乎不起作用 的相关文章

随机推荐

  • 连接到 Excel 时出现“无法识别 OLE 流”异常

    我试图将我的 Java 程序与 Excel 文件连接起来 我已经做到了这一点 但它抛出了这个异常 无法识别 OLE 流 请帮我完成这个工作 import jxl import java io public class excel publi
  • 是否有可能让 Java 忽略“信任存储”并只接受它获得的任何 SSL 证书?

    我正在尝试编写一个使用 javax mail API 发送邮件的 SSL 客户端 我遇到的问题是服务器请求我使用 SSL 但服务器还配置了非标准 SSL 证书 我发现的网页说我需要将证书安装到信任存储中 我不想这样做 我没有必要的权限 有没
  • 如何制作孤立的 dalvik

    我正在追踪 Dalvik 机器源代码 据此 我想让 Dalvik 可以运行 我似乎有 dvk 项目 但也存在很多问题导致故障 有没有什么方法可以只制作dalvik而无需所有android 因为制作android会花费太多时间 大约很多小时
  • 提高 git status 性能的方法

    我在一台位于 NFS 上的 Linux 机器上有一个 10 GB 的存储库 第一次git status需要 36 分钟及后续时间git status需要 8 分钟 看来 Git 依赖于操作系统来缓存文件 只有第一个git命令如commit
  • Java EE 和 JDK

    我想从 Java SE 迁移到 Java EE 我将使用 Java EE 附带的一些示例项目 我已经卸载了 JDK 但我认为这可能是一个错误 当我下载最新的 Java EE 6 时 安装时它会询问我 JDK 已卸载 的位置 我的印象是 JD
  • 双精度和浮点比较[重复]

    这个问题在这里已经有答案了 根据这个帖子 当比较 float 和 double 时 float 应被视为 double 下面的程序 似乎并不遵循这个说法 这种行为看起来相当不可预测 这是我的程序 void main void double
  • 检查 UIAlertView 是否显示

    我有一个方法可以发布 HTTP 数据并在出现错误时显示 UIAlertView 如果我有多个 HTTP post 我将为每个错误显示多个 UIAlertView 我只想在不显示其他 UIAlertView 时显示 UIAlertView 我
  • 更改模态文本后打开模态时,e.preventDefault 不起作用。模式正在打开而不更改内容

    我试图在单击模态触发按钮时更改模态正文文本 模式正在打开 但模式正文文本没有改变 这是模态的代码
  • Exchange Web 服务获取消息消息 ID

    我正在使用Java EWS 库尝试从 Exchange 邮箱同步邮件 我可以获得自上次同步日期以来创建的所有新消息的列表 但是 我真的很想找出消息ID从交换加载消息之前的消息属性 背景 我正在尝试将 EWS 同步集成到现有的邮件存储系统中
  • 当 html 和 body 高度设置为 100% 时背景被切断

    我将 html 和 body 设置为 100 高度 并在 body 上设置背景图像 向下滚动时会被截断 如下所示 然而 YouTube 在 html 和 body 上有 100 的高度 在 body 上有背景 并且它延伸到内容的整个高度 我
  • Mongoose - 增加对象数组内的值

    我很难弄清楚如何增加数组中对象的值 例如我有这个文件基于Poll schema id 584b2cc6817758118e9557d8 title Number of Skittles description Test1 date Dec
  • Heroku 推送被拒绝

    gt Ruby Rack app detected gt Using Ruby version ruby 1 9 3 gt Installing dependencies using Bundler version 1 3 0 pre 2
  • IReadOnlySessionState 背后的基本原理

    我刚刚实现了一个使用 IReadOnlySessionState 的处理程序 并且想知道为什么需要这个标记接口 我知道这是为了访问会话变量所必需的 我的问题是从框架设计者的角度来看为什么会这样 我的想法是这样处理程序可以尽可能精简 要求他们
  • NSNetService 通过 WiFi 而不是蓝牙

    我有 2 个 iOS 设备和一个启动或连接到 NSNetService 的应用程序 当两个设备都打开蓝牙时 数据流将自动通过蓝牙接口完成 我不希望这样 我希望两个设备都通过 WiFi 进行通信 有没有办法强制 NSNetService 通过
  • 无法在 Windows 中将 Tomcat 7 安装为服务

    我正在尝试将 tomcat 作为 Windows Server 2008 中的服务安装 我在 stackoverflow 中搜索 找不到这个问题的任何答案 我可以看到其他相关问题 但它们都不相同 与代码错误0有关 我的是代码错误1 或者没有
  • java中如何从数组中删除null

    我编写了一种方法来从程序中需要的数组中删除空值 然而 该方法似乎不起作用 空值不会消失 这是我到目前为止的代码 public void removeNull String a for int i 0 i
  • 如何在android中重新启动线程?

    在我的 Android 应用程序中 我有一个 ui update thread 可以使我的所有视图保持最新 protected Thread UIUpdateThread new Thread Override public void ru
  • 在 SQL Server 中取消数组的嵌套

    我使用的数据库是在 Azure 的 SMO DW 中从 PostgreSQL 数据库创建的 有些表中的列是数组 我想取消嵌套这些列以便能够使用它们 但似乎找不到方法来做到这一点 任何帮助都是理想的吗 这些看起来几乎像 JSON 数组唯一标识
  • VS Code 中的终端看起来不像以前那样,需要下拉菜单

    我不小心点击了 VS Code 终端下拉列表中的垃圾箱 它开始看起来像这样 但切换 Powershell cmd 和默认终端一对我来说已经变得很困难 我想恢复默认的下拉终端 如果有人能帮助我那就太好了 Terminal gt Integra
  • 使用问号通配符过滤 Get-ADGroups 似乎不起作用

    我正在尝试获取名称以 Users 开头的 AD 组列表 是数字 0 9 我尝试过使用Get ADGroup Filter name like Users 0 9 0 9 0 9 0 9 and Get ADGroup Filter name