小编Mas*_*one的帖子

PowerShell AD LDS 查询和过滤器使用通配符未按预期运行

我是一个学习管理系统网站的管理员,该网站将其页面结构存储在 AD LDS 中。我正在尝试运行查询以获取与distinguishedName 过滤器匹配的对象(站点上的页面)。我的过滤器没有按预期运行。

下面是三个查询,除了过滤器参数外,所有查询都相同。这并不完全是我想要做的,但出于演示目的,这将说明我的问题。

这有效(返回大量结果):

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' -Filter 'distinguishedName -like "*"'
Run Code Online (Sandbox Code Playgroud)

这也有效,(返回单个结果):

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' -Filter 'distinguishedName -like "CN=LEC,CN=Academics,CN=Portal,O=Jenzabar,C=US"'
Run Code Online (Sandbox Code Playgroud)

但是,这没有返回任何结果,我不明白为什么:

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' -Filter 'distinguishedName -like "C*"'
Run Code Online (Sandbox Code Playgroud)

据我所知,第三个查询应该返回第一个查询的所有结果,它至少应该返回第二个查询的单个结果。任何帮助,将不胜感激!

powershell ad-lds

3
推荐指数
1
解决办法
6223
查看次数

PowerShell Get-ADObject 和 Set-ADObject 的 Active Directory 模块不适用于自定义属性

我正在尝试使用适用于 PowerShell 的 Active Directory 模块在我未创建的 AD LDS 实例中使用自定义属性。不幸的是,cmdlet Get-ADObject 和 Set-ADObject 没有返回我预期的结果。事实上,任何使用 PowerShell 语言的参数都不适用于此属性。自定义属性的 LDAP 显示名称为“jenzabar-ICSNET-GenericFlags”。

如果我在 Where-Object 参数中使用自定义属性,则 Get-ADObject 不会返回任何结果,即使我知道有很多对象将此自定义属性设置为该值:

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' | Where-Object {$_.'jenzabar-ICSNET-GenericFlags' -eq '1'
Run Code Online (Sandbox Code Playgroud)

但是,如果我在过滤器参数中使用自定义属性,则会看到预期的结果列表:

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' -Filter 'jenzabar-ICSNET-GenericFlags -eq 1'
Run Code Online (Sandbox Code Playgroud)

此外,如果我使用该查询并从结果中选择 jenzabar-ICSNET-GenericFlags,那么即使我得到结果,显示自定义属性的列也是空的。该列甚至不显示方括号 {},就好像我选择了一个未知属性。列中根本没有任何内容。

最后,用于替换自定义属性值的 Set-ADObject 似乎无声无息地失败了。此查询不会产生错误或其他消息,但无法修改自定义属性:

Set-ADObject -Server 'localhost:389' -Identity 'CN=Overview,OU=Pages,CN=2014 JA-WTC  600-05,CN=WTC  600,CN=WTC,CN=Academics,CN=Portal,O=Jenzabar,C=US' -Replace @{'jenzabar-ICSNET-GenericFlags'='0'}
Run Code Online (Sandbox Code Playgroud)

我知道必须有一些关于我可以在哪些属性上使用 Get-ADObject 和 Set-ADObject cmdlet 的规则,但我不知道这些规则是什么。我不知道如何确定这个自定义属性是什么类型的属性。未安装 Active Directory 架构。

提前致谢。

powershell ad-lds

3
推荐指数
1
解决办法
1171
查看次数

标签 统计

ad-lds ×2

powershell ×2