Powershell脚本获取用户的详细信息以及他们所属的组

Powershell Script to get details of user along with group they are member of

我正在尝试导出 AD 用户列表以及他们所属的组,导出的 csv 格式应该类似于

A组User1_name
A组User2_name
B组User3_name
C组User4_name
C组User5_name

我试过了

$ErrorActionPreference = "SilentlyContinue"  
Get-Content R:\PHRBI-R\ADGroup_list.csv | Where{$_ -ne $null -and $_.trim() -ne ""} |   
    foreach{  
        $Group = $_   
        Write-Host "$Group"  
        Get-ADGroup -Identity $Group -Properties members |  
            Select-Object -ExpandProperty members |  
            Get-ADUser -Properties samaccountname, enabled |  
            Select samaccountname, name, Enabled  
    } 

但它没有提供我正在寻找的模板,而且新组不断添加,因此无法在任何文件中手动列出组并导出所需的详细信息。

下面应该可以让你继续,我试着让它合乎逻辑。当然,这可以进行清理和优化。

# Create csv
New-Item "Some\Path\To\CSV" -ItemType File -force

# Add header row
Add-Content -Path "Some\Path\To\CSV" -Value 'Group Name, NUID, Name, Enabled'

# Loop through each AD group
Get-ADGroup -Filter {Name -like 'ABC*'} | Foreach-Object {
    # Keep the group object so we can use it later
    $Group = $_
    
    # loop through each group  member
    $Group.members | Foreach-Object {
        $User = Get-ADUser -identity $_ -Properties samaccountname, name, enabled

        Add-Content -Path "Some\Path\To\CSV" -Value "$($Group.Name),$($User.samaccountname),$($User.name),$($User.Enabled)"
    }
}

请注意,如果存在嵌套组(即组中组),则 Get-AdUser cmdlet 将出错。

Import-Module ActiveDirectory

New-Item R:\PHRBI-R\Nishant\AD_List\user_list.csv -ItemType File -force

Add-Content -Path R:\PHRBI-R\Nishant\AD_List\user_list.csv -Value 'Group Name, NUID, Name,Enabled'

$Groups=Get-ADGroup -Filter {Name -like 'ABC*'}  

foreach($Group in $Groups)

{
$Details=Get-ADGroup  -Identity $Group.Name -Properties members |

Select-Object -ExpandProperty members |

Get-ADUser -Properties samaccountname, enabled, name  | Select samaccountname, name, Enabled

foreach($Detail in $Details)

{
Add-Content -Path R:\PHRBI-R\Nishant\AD_List\user_list.csv -Value "$($Group.Name),$($Detail.samaccountname),$($Detail.name),$($Detail.Enabled)"
 }}