$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName
输出是这样的:
CN=Hans Peter,OU=NRH,OU=Stuttgart,OU=XXXX,OU=XXXX,OU=XXXX,DC=DE,DC=Richard-Mayer,DC=org
如何切割第一个DC字符串“ DC = DE” 之前和之后的所有内容,以便仅获得第一个DC=DE
条目?
我尝试了split()
,但没有成功。我必须使用可以使用split方法的ToString()
将输出转换为字符串吗?
对于任何帮助,我将非常感谢。
答案 0 :(得分:3)
您需要为,
方法指定定界符split()
:
$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName
$arr = $test.Split(',')
然后过滤并选择第一个:
$result = $arr | Where-Object {$_ -like "DC=*"} | Select-Object -First 1
您还可以使用以下方法明确转换为String
:
[string]$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName
DistinguishedName
可以这样访问:
[string]$test = (Get-ADUser -Server dc1 hpeter -Properties DistinguishedName).DistinguishedName
答案 1 :(得分:1)
有几种选择。这是一个:
$string = 'CN=Hans Peter,OU=NRH,OU=Stuttgart,OU=XXXX,OU=XXXX,OU=XXXX,DC=DE,DC=Richard-Mayer,DC=org'
$dc = $string.Split(',')[6]
答案 2 :(得分:0)
类似于其他人所说的,您可以使用类似于以下方式的split方法:
$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty @{name="DC";expression={($_.DistinguishedName -split ",OU=")[6]}}