在 Powershell 中截断 LDAP DN 的一部分?(或者从 LDAP DN 获取 OU。)

在 Powershell 中截断 LDAP DN 的一部分?(或者从 LDAP DN 获取 OU。)

在 PowerShell 中获取包含 LDAP 对象的 OU 的最简单方法是什么?

我正在编写一个脚本来管理一些我用脚本制作的“动态”组,我可以使用下面的方法获取完整的可分辨名称:

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName

它返回类似这样的内容:

CN=MyPseudoDynamicGroup,OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

我希望丢弃这个CN=MyPseudoDynamicGroup,位,所以最终得到:

OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

我如何才能尽可能轻松地做到这一点?我尝试使用拆分运算符,但这会返回一个数组,并去掉逗号,迫使我将它们重新添加回去。我怀疑有更好的方法。

答案1

到目前为止我发现的最简单的方法是使用.NET 框架 IndexOf 方法获取逗号字符的第一个实例的索引,并将其提供给.NET 框架子字符串方法。我使用了下面的代码,将所需的字符串放入名为的变量中PseudoDynamicGroupOU

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName;
$PseudoDynamicGroupDNPosition = $PseudoDynamicGroupDN.IndexOf(",");
$PseudoDynamicGroupOU = $PseudoDynamicGroupDN.Substring($PseudoDynamicGroupDNPosition+1);

相关内容