Windows

在 Powershell 中截斷部分 LDAP DN?(或從 LDAP DN 獲取 OU。)

  • July 18, 2017

在 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

我如何盡可能輕鬆地做到這一點?我嘗試使用Split 運算符,但這會返回一個數組,並去掉逗號,迫使我重新添加它們。我懷疑有更好的方法。

到目前為止,我發現的最簡單的方法是使用.NET 框架 IndexOf 方法來獲取逗號字元的第一個實例的索引,並將其提供給.NET 框架 Substring 方法。我使用了下面的程式碼,它將所需的字元串放入名為PseudoDynamicGroupOU.

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

引用自:https://serverfault.com/questions/862803