2014-09-26 184 views
0

一个小白到PS的位,我需要输出包含CSV文件:Powershell的AD组成员查询

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 

任何帮助将大规模赞赏。

回答

0

我认为你想做的管道的方式你不能从开始的广告组中传递名称。为了理解我splittet /重写了代码。

#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 
    } 
} 
+0

谢谢,效果是有限的,但我没有电子邮件地址,这就是为什么我使用Get-ADUser便有-Properties邮件串。 – 2014-09-26 10:05:35

+0

解决方法,但我认为并不那么快;):$ obj_Propertys.Email =(Get-ADUser -Identity $ obj_ADUser.sAMAccountName).Email – Patrick 2014-09-26 10:43:22

+0

Erm。我现在得到了一个EMail的输出,但这是“Microsoft.ActiveDirectory.Management.ADPropertyValueCollection” – 2014-09-26 12:34:56