拉取特定用户组 - Powershell

拉取特定用户组 - Powershell

因此,我目前有一个脚本,它从 csv 导入 samaccountnames 并获取名称、samaccountname、用户组和组描述。将每个内容输出到单独的行中。脚本如下:

```
Import-Csv -Path .\users.csv | ForEach-Object{

$user = get-aduser -Identity $_.samaccountname -Properties name, 
samaccountname, memberof

$(
if ($user.memberof.count -gt 1) {
    foreach ($group in $user.MemberOf) {
        $user | select name, samaccountname, @{n='group';e={$group -replace '^CN=(?<Name>.*?),(?:OU|CN).*$', '${Name}' -join ', '}}, @{n='GroupDescription';e={(Get-ADGroup $group -Properties description).description}}
    }
} elseif ($user.MemberOf.Count -eq 1) {
    $user | select name, samaccountname, @{n='group';e={$_.memberof  | select 
-f 1}}, @{n='GroupDescription';e={(Get-ADGroup $group -Properties 
 description).description}}
} else {
    $user | select name, samaccountname, @{n='group';e={$_.memberof }}, 
@{n='GroupDescription';e={''}}
}
)
  }| Export-Csv -path '' -NoTypeInformation

我需要完成的一件事是检查每个用户是否属于特定组,以及是否将其提取到 CSV 中的单独列中。它可以是通配符,例如,如果组是“this-*”,它将被拆分到单独的列中。

有任何想法吗?

------------编辑------编辑------编辑-------------------

我已经添加了

@{n='CertifyingGroup';e={($_.memberof -like “*org-*”)}}

它输出到 CSV LDAP /组的专有名称,但是当我添加替换函数时,我已经在脚本中使用它来删除那些无意义的内容以使其可读,它只返回 true 或 false

答案1

如果我正确理解了您的要求,这应该可以满足您的需要。

$users = Import-Csv -Path .\users.csv
#CertifyingGroup Lookup
$certifyingGroupQuerty = "Domain*"
$groupReport = foreach ($user in $users) {
    $userAD = Get-ADUser -Identity $user.SamAccountName -Properties MemberOf
    foreach ($groupDN in $userAD.MemberOf) {
        $groupAD = Get-ADGroup -Identity $groupDN -Properties Description
        $certifyingGroup = if ($groupAD.Name -like $certifyingGroupQuerty) { $groupAD.Name }
        [PSCustomObject]@{
            "UserName"           = $userAD.Name
            "UserSamAccountName" = $userAD.SamAccountName
            "GroupName"          = $groupAD.Name
            "GroupDescription"   = $groupAD.Description
            "CertifyingGroup"    = $certifyingGroup
        }
    }
}
$groupReport | Export-Csv -Path C:\GroupReport.csv -NoTypeInformation

希望能帮助到你?

相关内容