正在尝试获取活动用户的审核报告。我们有一个OU,我不想报告。
给我所有活动(已启用)的AD帐户。但在特定OU中除外。
Get-ADUser -Filter{enabled -eq $true} | Select-object Samaccountname,surname,givenname `
| Export-Csv -NoTypeInformation C:\scripts\ActiveUsers.csv如何过滤掉OU=Service Accounts
我还需要在csv输出的A列中有一个自定义列。示例:所有行的A列中的单词"ACME“。
非常感谢埃丝特
发布于 2015-08-04 00:35:46
对父容器进行筛选
OU是对象的DistinguishedName属性的一部分。
通过删除DistinguishedName的第一部分并将其余部分与OU的DistinguishedName进行比较,使用Where-Object筛选出驻留在某个OU中的对象:
$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时,上面的示例将在A列和B列中分别具有列标题"MyCustomColumn“和"Name”,A列始终保留值"ACME“,而B列将保留用户的各个名称。
发布于 2015-08-05 03:44:05
成功了-谢谢你们。
Get-ADUser -Filter {enabled -eq $true} | ? {$_.DistinguishedName -notlike "*,OU=Service Accounts,*"}和自定义列:
Select-Object -Property @{n="ColumnA"; e={"ACME"}}https://stackoverflow.com/questions/31790685
复制相似问题