在 AD 中,主机名是在位置 OU 下创建的,位于计算机子 OU 下的位置 OU 内。我需要一个脚本来在 excel 中提取两个 OU。我能够通过以下脚本提取一个 OU 详细信息
Get-ADComputer -filter * -Properties ipv4Address, OperatingSystem,DistinguishedName |
select-object Name, ipv4Address, OperatingSystem,
@{label='OU';expression={$_.DistinguishedName.Split(',')[1].Split('=')[1]}}
我需要帮助来提取主要的 OU 详细信息,请帮忙
答案1
如果您想要路径中的所有 OU,则可以使用正则表达式模式来提取它们。
[regex]$pattern = '(?<=OU=)(.+?)(?=,\w{2}=)'
$searchbase = 'OU=Company,DC=Domain,DC=LOCAL'
$properties = 'Name',
'ipv4Address',
'OperatingSystem',
@{n='OU';e={$pattern.Matches($_.DistinguishedName).Value -join ', '}}
$adparams = @{
Filter = '*'
Searchbase = $searchbase
Properties = 'ipv4Address',
'OperatingSystem'
}
Get-ADComputer @adparams |
Select-Object $properties
如果您只关注计算机上方的 OU,那么类似的方法可能会有效。
[regex]$pattern = '(?<=OU=)(.+?)(?=,\w{2}=)'
$searchbase = 'OU=Company,DC=Domain,DC=LOCAL'
$properties = 'Name',
'ipv4Address',
'OperatingSystem',
@{n='OUs';e={$pattern.Matches($_.DistinguishedName)[1].Value}}
$adparams = @{
Filter = '*'
Searchbase = $searchbase
Properties = 'ipv4Address',
'OperatingSystem'
}
Get-ADComputer @adparams |
Select-Object $properties