PowerShell递归查询组成员-创新互联
豆子今天遇见个小问题,发现某个Office365的邮件组的成员组里面居然没有配置邮件,这样导致个别用户没有收到邮件。为了避免这个情况再次发生,需要对所有的邮件组都做个检查。问题在于邮件组可能嵌套了多个组,如果人工去看实在太累,写了个小脚本扫一下。
创新互联建站主要从事网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务银海,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220因为是嵌套的组,于是很自然的想到了递归。指定一个邮件组,去扫一下成员,看看该成员是否配置了邮箱地址,如果这个成员刚好又是一个组,那么调用自己,重复上述步骤
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 { } }
简单测试一下我的函数,结果如下: 普通用户(×××),绑定了邮件的组(蓝色),没有绑定邮件的组(红色)
成功。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:PowerShell递归查询组成员-创新互联
浏览路径:http://scyanting.com/article/pooog.html