过滤父容器
OU 是对象DistinguishedName
属性的一部分。
用于通过删除 的第一部分并将其余部分与OU 的比较Where-Object
来过滤驻留在某个 OU 内的对象:DistinguishedName
DistinguishedName
$OUDN = "OU=Service Accounts,OU=Accounts,DC=domain,DC=tld"
Get-ADUser -Filter {Enabled -eq $true} | Where-Object { $_.DistinguishedName -notlike "*,$OUDN" }
如果您知道 OU 名称,但不知道完整名称,则DistinguishedName
可以通过将可分辨名称拆分为隔间并将第二个(直接父容器)与要排除的名称进行比较,从结果中删除 OU 的直接子对象:
$OUName = "Service Accounts"
Get-ADUser -Filter {Enabled -eq $true} | Where-Object {
$ObjectCN,$ParentCN,$null = $_.DistinguishedName -split "(?<=[^\\]),"
$ParentCN -ne "OU=$OUName"
}
或在其祖先路径中排除具有给定 OU 名称的任何对象:
$OUName = "Service Accounts"
Get-ADUser -Filter {Enabled -eq $true} | Where-Object {
$ObjectCN,$ParentCNs = $_.DistinguishedName -split "(?<=[^\\]),"
$ParentCNs -notcontains "OU=$OUName"
}
自定义属性值
Select-Object
支持计算属性。您可以提供带有静态表达式的计算属性作为要选择的第一个属性,如下所示:
Get-ADUser | Select-Object @{Name="MyCustomColumn";Expression={"ACME"}},Name
导出到 CSV,上面的示例将分别在 col A 和 B 中具有列标题“MyCustomColumn”和“Name”,col A 始终保存值“ACME”,而 col B 将保存用户的各个名称