保留专有名称的 DC 部分
Keep DC part of distinguished name
我有如下输入专有名称:
CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain
CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain
我只需要打印 DC 部分,得到如下输出:
my.domain
my.first.domain
看起来拆分或替换应该可行,但我在理解语法时遇到了问题。
这是完成它的一种快速而肮脏的方法。
("CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain " -split "," |
Where-Object { $_.StartsWith("DC=") } |
ForEach-Object { $_.Replace("DC=","")}) -join "."
生产
my.domain
您可以将 Get-ADPathname.ps1 与 -Split
参数一起使用,Select-String
与正则表达式以及 -join
运算符一起使用:
(
Get-ADPathname 'CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain' -Split | Select-String '^DC=(.+)' | ForEach-Object {
$_.Matches[0].Groups[1].Value
}
) -join '.'
输出:
my.first.domain
我会简单地删除第一个 ,DC=
之前的所有内容,然后用点替换剩余的 ,DC=
。
$dn = 'CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain',
'CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain'
$dn -replace '^.*?,dc=' -replace ',dc=', '.'
我有如下输入专有名称:
CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain
我只需要打印 DC 部分,得到如下输出:
my.domain my.first.domain
看起来拆分或替换应该可行,但我在理解语法时遇到了问题。
这是完成它的一种快速而肮脏的方法。
("CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain " -split "," |
Where-Object { $_.StartsWith("DC=") } |
ForEach-Object { $_.Replace("DC=","")}) -join "."
生产 my.domain
您可以将 Get-ADPathname.ps1 与 -Split
参数一起使用,Select-String
与正则表达式以及 -join
运算符一起使用:
(
Get-ADPathname 'CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain' -Split | Select-String '^DC=(.+)' | ForEach-Object {
$_.Matches[0].Groups[1].Value
}
) -join '.'
输出:
my.first.domain
我会简单地删除第一个 ,DC=
之前的所有内容,然后用点替换剩余的 ,DC=
。
$dn = 'CN=A00.user,OU=MyOU,OU=A00,OU=MyOU3,DC=my,DC=domain',
'CN=A01.user1,OU=MyOU1,OU-MyOU2,OU=A00,OU=MyOU3,DC=my,DC=first,DC=domain'
$dn -replace '^.*?,dc=' -replace ',dc=', '.'