检查列表中的每个o365组是否对GAL隐藏

时间:2017-12-18 11:47:33

标签: powershell office365

我有一个办公室365组的列表。我想检查它们是否隐藏在全局地址列表中。出于某种原因,当我运行foreach循环时根本没有输出。请问,请指出我做错了什么。

以下是我与Exchange的关联方式:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
    Import-PSSession $Session

这是我试过的:

#get list of o365 groups
$teams  = Get-UnifiedGroup |Where-Object {$_.WelcomeMessageEnabled -like "False"}|select -ExpandProperty Alias

#check $teams type just to be on the safe side
$teams.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

#check content of $teams variable

$teams
AllEMEA
AmericasApps
AmericasAR
AmericasConnectivity
AnalystTeam
APACExtendedServices
APACGatewayMigration
APACMarketGateways
APACProfessionalServices
APACSales

当我逐个手动检查组时,它可以正常工作。

Get-UnifiedGroup -Filter {Alias -eq "AllEMEA"} | select DisplayName,hiddenfromaddresslistsenabled

DisplayName HiddenFromAddressListsEnabled
----------- -----------------------------
All EMEA                            False

但是,当我将$ team管道到foreach循环时,它会像处理数组一样挂起,但之后根本就没有输出。

>$teams | %{Get-UnifiedGroup -Filter {Alias -eq $_}} | select DisplayName,hiddenfromaddresslistsenabled
>

#I've tried this approach (which is as far as i know the same), but result is the same
>foreach ($team in $teams) {Get-UnifiedGroup -Filter {Alias -eq "$team"}} | select DisplayName,hiddenfromaddresslistsenabled
>

我希望看到一个群组列表及其 hiddenfromaddresslistsenabled 属性。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

您可以检查以下代码吗?

$teams = Get-UnifiedGroup | Where {($_.HiddenFromAddressListsEnabled -eq $True) -and ($_.WelcomeMessageEnabled -like $false)} | ft Name, Alias, HiddenFromAddressListsEnabled, WelcomeMessageEnabled
$teams.gettype() <# if you need to check the type #>
$teams

答案 1 :(得分:0)

这里的问题是-Filter参数不接受管道输入。

    Filter <string>
    Required?                    true
    Position?                    Named
    Accept pipeline input?       false
    Parameter set name           Filter
    Aliases                      None
    Dynamic?                     true

例如,我看到与Get-aduser -Filter相同的行为,因此此处的解决方法是不使用-Filter,而是使用-Identity参数,该参数接受管道输入。 @Nevenka的答案也可以使用,但是如果有人会遇到相同的问题,我想发布此问题的根本原因。