如果我运行的PowerShell脚本将输入分割为句点"我希望能够自动生成输出。"并添加" DC ="在已拆分的每个项目/对象中。
$DomainFQDN = "prod.mydomain.com" # This varies depending on the input. It could be "prod.boston.us.mydomain.com" as the input.
$DistinguishedName = $DomainFQDN -split "\."
...
...
...I just don't know how to proceed
如何得到" DC = prod,DC = mydomain,DC = com"对于prod.mydomain.com作为输入或 DC = prod,DC = boston,DC = us,DC = mydomain,DC = com for prod.boston.us。 mydomain.com?
答案 0 :(得分:1)
好吧,你可以使用带有$ DistinguishedName的foreach构造并像这样使用-join(如果你想直接输出连接的字符串):
$AddDC = foreach ($e in $DistinguishedName) { "DC=$e" }
Write-Host $($AddDC -join ",")
-join的作用类似于-split,您只需指定需要加入的字符。 其他方法是存储$ AddDC
$AddDC = foreach ($e in $DistinguishedName) { "DC=$e" }
$new_string = $AddDC -join ","
Write-Host $new_string
有关详细信息,请参阅此page。
答案 1 :(得分:0)
$DomainFQDN = "prod.mydomain.com"
$DomainFQDN = $DomainFQDN.Split(".")
For ($i = 0; $i -lt $DomainFQDN.Count; $i++) {
$DomainFQDN[$i] = "DC=" + $DomainFQDN[$i]
}
$DomainFQDN = $DomainFQDN -join ","
Write-Host $DomainFQDN
输出:
DC=prod,DC=mydomain,DC=com
我不确定为什么我无法获得-Split"。"操作员工作。它应该与.Split("。")的功能相同,但由于某种原因,它会产生不同的结果。但无论如何,这对你有用。
我觉得我应该提到一个真正的FQDN在每一行都不会是DC =。它看起来更像是:
DC=Com,DC=MyDomain,OU=Prod
答案 2 :(得分:0)
我通常在expandable中执行单个替换操作,以便从FQDN转换为域根的可分辨名称:
$DistinguishedName = "DC=$($DomainFQDN.TrimEnd('.') -replace '\.',',DC=')"
TrimEnd('.')
调用从带有根的FQDN中删除任何点,并且替换操作会将每个剩余的点替换为,DC=
答案 3 :(得分:0)
如果我做对了,这就是需要的:
$fqdn='prod.boston.us.mydomain.com'
$dn="DC=$($fqdn.replace('.',',DC='))"
$dn