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)"
}}
我正在尝试导出 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)"
}}