powershell - 从分发列表中获取多个详细信息
问题描述
我对 PowerShell 相当陌生,但我想导出一些交换组详细信息并将这些详细信息导出到 csv 文件中。
以下是我要导出的详细信息:
- 组名
- 组的显示名称
- 组的 PrimarySmtpAddress
- 组的收件人类型
- 组的成员数
- 组的所有者(ManagedBy) - 有些有多个所有者
对于组的每个所有者,我还需要: - 所有者名称 - 所有者显示名称 - 所有者电子邮件地址
我已经将以下脚本放在一起,但 Csv 完全空白,并且不完全确定问题出在哪里。
$GroupsCollection=@()
$groups = Get-Group -ResultSize Unlimited
foreach ($group in $Groups) {
{
$GroupInformation = New-Object -typename PSObject
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLName -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLDisplayName -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLEmailAddress -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLRecipientType -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLMemberCount -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLOwners -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLOwnerName -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLOwnerDisplayName -Value ""
Add-Member -InputObject $DLInformation -MemberType NoteProperty -Name DLOwnerEmailAddress -Value ""
$DLInformation.DLName = $group.Name
$DLInformation.DLDisplayName = $group.DisplayName
$DLInformation.DLEmailAddress =$group.PrimarySmtpAddress
$DLInformation.DLRecipientType = $group.RecipientType
$DLInformation.DLMemberCount = ($group.Members | measure).count
$GroupInformationOwners = ($group.DisplayName | select -ExpandProperty ManagedBy)
$DLInformation.DLOwners = $GroupInformationOwners |Out-String
$DLInformation.DLOwnerName = $GroupInformationOwners.name |out-string
$DLInformation.DLOwnerDisplayName = $GroupInformationOwners.displayname |out-string
$DLInformation.DLOwnerEmailAddress = $GroupInformationOwners.PrimarySmtpAddress |out-string
$GroupsCollection += $GroupInformation
}
}
$GroupsCollection |ConvertTo-Csv -NoTypeInformation
$GroupsCollection |Export-Csv -Path "file" -NoTypeInformation
解决方案
你可以试试下面的代码。
Get-DistributionGroup -ResultSize Unlimited | Foreach{
$DisplayName=$_.DisplayName
$Alias=$_.Alias
$EmailAddress=$_.PrimarySmtpAddress
$GroupType=$_.GroupType
$ManagedBy=$_.ManagedBy
$Members=Get-DistributionGroupMember -ResultSize Unlimited -Identity $DisplayName
$MembersCount=($Members.name).Count
$Result=@{'DisplayName'=$DisplayName;'PrimarySmtpAddress'=$EmailAddress;'Alias'=$Alias;'GroupType'=$GroupType;'Manager'=$ManagedBy;$Members;'GroupMembersCount'=$MembersCount}
$Results= New-Object PSObject -Property $Result
$Results | Select-Object DisplayName,PrimarySmtpAddress,Alias,GroupType,Manager,Members,GroupMembersCount| Export-Csv -Path $ExportSummaryCSV -Notype -Append
}
更详细的信息,你可以参考这个博客
推荐阅读
- sql - SQL Server:使用函数计算新列
- c# - 更改绑定列表中的值?
- python - TypeError:gettext()缺少1个必需的位置参数:'self'-python
- tensorflow - 将tensorflow填充值转换为caffe填充值的公式?
- python-2.7 - 具有 3 个类的图像分割,但其中之一很容易找到,我如何编写网络而不在简单的类上进行训练?
- c# - 如何在 C# 中记录低级 OS 文件事务?
- arrays - 如何删除对象数组中的重复项
- docker - Kubernetes Helm pod 无限重启
- rest - 为 Weblogic 12.2.1.1 构建 EAR 的 Gradle 脚本
- python - seaborn 中的一半(不分裂!)小提琴情节