2015-08-27 53 views
0

以下PowerShell脚本生成CSV有三列(组,用户SAM帐户名),其与相应的构件的规定分布组的每个实例相关联的文件:交换PowerShell脚本变形

$ DIST =的ForEach($组in(Get-DistributionGroup -Filter {name -like“*”})){Get-DistributionGroupMember $ group |选择@ {Label =“Group”; Expression = {$ Group.Name}},@ {Label =“User”; Expression = {$ _。Name}},SamAccountName} $ dist |排序组,用户| Export-CSV c:\ scripts \ file.csv -NoTypeInformation

它为用户提供了一种方便的方式来过滤组和显示组成员。我的问题:是否有一种快速修改此脚本的方法,以便添加显示组属性的第四列(特别是“HiddenFromAddressListsEnabled”属性)?

回答

0

只需将其添加到Select-对象部分

$dist = ForEach ($group in (Get-DistributionGroup -Filter {name -like "*"})) { Get-DistributionGroupMember $group | Select @{Label="Group";Expression={$Group.Name}},@{Label="User";Expression={$_.Name}},SamAccountName,HiddenFromAddressListsEnabled} $dist | Sort Group,User | Export-CSV c:\scripts\file.csv -NoTypeInformation 

看到它的SAM帐户

后获得HiddenFromAddressListsEnabled的群组:

$dist = ForEach ($group in (Get-DistributionGroup -Filter {name -like "*"})) { Get-DistributionGroupMember $group | Select @{Label="Group";Expression={$Group.Name}},@{Label="User";Expression={$_.Name}},SamAccountName,{$Group.HiddenFromAddressListsEnabled}} $dist | Sort Group,User #| Export-CSV c:\scripts\file.csv -NoTypeInformation 

然而,还有另一种方式来做到这一点,并更容易阅读和操作:

$Array = @() 
$Groups = Get-DistributionGroup 
Foreach ($Group in $Groups) 
{ 
$DGMembers = Get-DistributionGroupMember $Group 
Foreach ($Member in $DGMembers) 
    { 
    $Result = "" | Select GroupName,Member,SamAccountName,HiddenFromAddressListsEnabled 
    $Result.GroupName = $Group.Name 
    $Result.Member = $Member.Name 
    $Result.SamAccountName = $Member.SamAccountName 
    $Result.HiddenFromAddressListsEnabled = $Group.HiddenFromAddressListsEnabled 
    $Array += $Result 
    } 

} 

$Array | Export-CSV c:\scripts\file.csv -NoTypeInformation 
+0

谢谢你的回应。我在这里担心的是,“HiddenFromAddressListsEnabled”属性需要适用于组,而不是其中的用户。有没有办法在原始脚本中配置它,还是必须完全重新设计? – JFope

+0

我看到了修订版并测试了脚本。完美工作。非常感谢Avshalom! – JFope