Powershell AD Group成员查询

时间:2014-09-26 08:01:29

标签: powershell csv

PS的菜单位,我需要输出一个包含以下内容的CSV文件:

GroupName   Username      Email

我需要在AD中为2个特定组执行此操作并输出到1个CSV文件。 我的问题是我可以单独做,虽然我从来没有在我的输出中得到实际的组名(因此是2个单独的文件),对于2组,只是没有得到1个文件。

这就是我正在运行的:

import-module ActiveDirectory

## Variables

$Admin = Get-ADGroupMember -identity [grp_name] | Get-ADUser -properties Mail | Select sAMAccountName, Mail
$Contrib = Get-ADGroupMember -identity [grp_name] | Get-ADUser -properties Mail | Select sAMAccountName, Mail

## ======================================
## Output

$Contrib | Export-CSV C:\Temp\[grp_name].csv
$Admin | Export-CSV C:\Temp\[grp_name].csv

任何帮助都会受到大力赞赏。

1 个答案:

答案 0 :(得分:0)

我认为,在您想要使用管道的方式中,您无法在开头传递广告组中的名称。为了理解我拆分/重写了代码。

#Specifiy all ad groups you want in this arrays
[ARRAY]$arr_ADGroups = @("Group1","Group2","Group3")

#Set the output path for the csv
[STRING]$str_CSVPath = "C:\Temp\Testfile.csv"

#Import the modul
Import-Module -Name ActiveDirectory

#For each ad group
Foreach ($str_ADGroup in $arr_ADGroups) {

    #Foreach user in the ad group
    Foreach ($obj_ADUser in Get-ADGroupMember -Identity $str_ADGroup) {

        #Cretae an object with the propertys you need
        $obj_Propertys = "" | Select-Object -Property GroupName, Username, Email

        #Set the propertys
        $obj_Propertys.GroupName = $str_ADGroup
        $obj_Propertys.Username = $obj_ADUser.sAMAccountName
        $obj_Propertys.Email = $obj_ADUser.Mail

        #Export to csv --> -Append works only V3.0 or higher
        $obj_Propertys | Export-Csv -Path $str_CSVPath -Append
    }
}