网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

PowerShell递归查询组成员

豆子今天遇见个小问题,发现某个Office365的邮件组的成员组里面居然没有配置邮件,这样导致个别用户没有收到邮件。为了避免这个情况再次发生,需要对所有的邮件组都做个检查。问题在于邮件组可能嵌套了多个组,如果人工去看实在太累,写了个小脚本扫一下。

创新互联是一家专业从事成都网站设计、网站制作的网络公司。作为专业网络公司,创新互联依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站及网站设计开发服务!

因为是嵌套的组,于是很自然的想到了递归。指定一个邮件组,去扫一下成员,看看该成员是否配置了邮箱地址,如果这个成员刚好又是一个组,那么调用自己,重复上述步骤

function get-member
{
    [CmdletBinding()]
    [Alias()]
    [OutputType([int])]
    Param
    (
        # Param1 help description
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   ValueFromPipeline=$true,
                   Position=0)]
        [string]
        $name
    )
    Begin
    {
    }
    Process
    {
        $a=Get-DistributionGroupMember $name -ErrorAction SilentlyContinue
        if($a -eq $null){
            return 
        }
        foreach($b in $a){
            if (($b.Recipienttype -eq'Usermailbox') -or ($b.Recipienttype -eq 'MailContact') -or ($b.Recipienttype -eq 'User')){
                write-host $b.name -ForegroundColor DarkYellow
            }
            else{
                if($b.primarysmtpaddress -eq ""){
                    write-host $b.name -ForegroundColor red
                   
                }
                else{
                    write-host $b.name -ForegroundColor Cyan
                    get-member $b.name
              
                }
            }
        
        }
    }
    End
    {
    }
}

简单测试一下我的函数,结果如下: 普通用户(×××),绑定了邮件的组(蓝色),没有绑定邮件的组(红色)

PowerShell 递归查询组成员

成功。


本文标题:PowerShell递归查询组成员
地址分享:http://bjjierui.cn/article/ggjhho.html

其他资讯