在 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);