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
任何帮助都会受到大力赞赏。
答案 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
}
}