PowerShell 递归查询组成员
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,豆子今天遇见个小问题,发现某个Office365的邮件组的成员组里面居然没有配置邮件,这样导致个别用户没有收到邮件。为了避免这个情况再次发生,需要对所有的邮件组都做个检查。问题在于邮件组可能嵌套了多个
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
雨人网络安全股份
永劫无间游戏服务器崩溃
网络安全 逆向
阿里用的网络安全芯片有哪些
智慧交通网络安全防火墙
服务器厂商
网络安全法 网络安全保险
山东超频服务器咨询报价
中智软件开发有限公司如何
200人游戏至少要多大的服务器
福建省网络安全领导
服务器地址可以虚拟吗
学生网络安全研究目的
杭州直播软件开发公司哪家比较好
斯维尔数据库
网络安全论文小结
高通发布首款服务器芯片
左创互联网络科技有限公司
计算机网络技术教程题库
义工旅行系统数据库
数据库建立方法
专利检索与分析数据库
临海花街网络技术员
服务器性能检测工具
高校网络安全管理规定
蛋白质药物数据库
钱家网络技术全是上海百首
网络安全设备用在哪里
数据库系统表关联吗
数据库的两级数据映射