PowerShell 递归查询组成员
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,豆子今天遇见个小问题,发现某个Office365的邮件组的成员组里面居然没有配置邮件,这样导致个别用户没有收到邮件。为了避免这个情况再次发生,需要对所有的邮件组都做个检查。问题在于邮件组可能嵌套了多个
千家信息网最后更新 2025年12月04日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 { }}简单测试一下我的函数,结果如下: 普通用户(×××),绑定了邮件的组(蓝色),没有绑定邮件的组(红色)
成功。
邮件
成员
用户
问题
配置
递归
普通
成功
人工
再次
函数
又是
地址
多个
情况
步骤
红色
结果
脚本
自然
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器不用阵列卡
我的世界服务器刷op
计算机网络技术费钱吗
服务器怎么进raid
服务器操作系统技术常用语
面向对象软件开发优点
网络安全小组岗位职责
服务器在线分区软件
一虚多服务器配置
网络安全法内容 PDF
关于网络安全周2020年
工业互联网与科技金融
谈你对网络安全的认识吧
梦幻西游安卓版服务器
全球数据库企业
教师校园网络安全责任书
西藏科技产业互联网发展
sql创建数据库自增
汉得软件开发工程师
数据库技术在企业中的应用
云服务器输入法用不了怎么办
上海个人软件开发管理制度
黑客技术服务器内存全套教程
上海宏图空间网络技术
pha的服务器
威海软件开发好吗
备份数据库时怎么不备份日志
专业软件开发设施检测中心
互联网科技的三大特点
广东路客互联网科技有限公司