windows AD域控密码过期企业微信推送告警

news/2025/2/5 12:44:12/文章来源:https://www.cnblogs.com/amsilence/p/18586947

在写了windows AD域控密码过期邮件推送告警后,有网友问我能不能写一篇关于企业微信推送的文章
如果需要看邮件推送或者需要自定义脚本,可以参考我的文章 windows AD域控密码过期邮件通知迭代版本

1.企业微信告警要求

1.1.企业微信推送需要具备的条件

  • 需要在企业微信中创建企业微信应用,企业微信的应用创建可以参考:zabbix第三篇-zabbix配置企业微信告警
  • 需要在AD域内找一个参数写上企业微信userid,以便将信息发送至对应的人员

1.2.AD域控内添加企业微信userid值

  • 我再这里使用web page属性配置为企业微信userid值

  • 用户的userid值,可以通过企业微信的通讯录导出

2.powersshell通过企业微信发送的脚本

# 引入Activedirectory模块
Import-Module ActiveDirectory# 强制使用 TLS 1.2,企业微信接口只支持TLS1.2及以上版本
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12# 企业微信的CorpID
$corpID = "corpID"
# 企业微信应用的应用的Secret
$corpSecret = "corpSecret"
# 企业微信应用的ID
$agentID = "agentID"# 获取访问令牌
$authUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpID&corpsecret=$corpSecret"
$authResponse = Invoke-RestMethod -Uri $authUrl -Method Get
$accessToken = $authResponse.access_token# 筛选合规用户
$alladuser = Get-ADUser -SearchBase "DC=SEC,DC=lab" -Filter {Enabled -eq $true  -and PasswordNeverExpires -eq $false} | %{$_.SamAccountName}#################################################
# 检测AD密码过期时间并通过企业微信通知相应账户和管理员
#################################################
foreach ($user in $alladuser) {$userpassinfo = Get-ADUser $user -Properties msDS-UserPasswordExpiryTimeComputed$pwdExpiryTimeFileTime = $userpassinfo.'msDS-UserPasswordExpiryTimeComputed'$userweixin = Get-ADUser $user -Properties * | %{$_.wWWHomePage}$userdisName = Get-ADUser $user -Properties * | %{$_.DisplayName}$pwdExpiryTime = [datetime]::FromFileTime([int64]$pwdExpiryTimeFileTime)$now = Get-Date$expire_days = ($pwdExpiryTime - $now).Daysif ($expire_days -eq 15 -and $userweixin) {$chineseusername = Get-ADUser $user -Properties * | %{$_.DisplayName}# 企业微信消息正文$weixinMessageBody ="亲爱的 $chineseusername 同学:`r`n`r`n" +"您的域账户密码即将在 $expire_days 天后过期,$pwdExpiryTime 之后密码过期未修改会导致您无法连接使用域账号登陆各种系统请您尽快更改。`r`n`r`n" +"重置密码过程请遵循以下原则:`r`n" +"○ 密码长度最少 8 位;`r`n" +"○ 密码可使用最长时间 90天,过期需要更改密码;`r`n" +"○ 密码不得重新设置为初始密码;`r`n" +"○ 强制密码历史 2个(不能使用之前最近使用的 2 个密码);`r`n`r`n" +"○ 密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)`r`n" +"密码修改系统如下:`r`n" +"○ 修改密码连接:密码修改的URL `r`n" +"○ 重置密码链接:密码重置系统的URL `r`n" +"谢谢,祝您生活愉快!" # 构建企业微信消息体$weixinMessage = @{"touser"   = $userweixin"msgtype" = "text""agentid" = $agentID"text"    = @{"content" = $weixinMessageBody}"safe"    = 0} | ConvertTo-Json -Depth 10# 使用 UTF-8 编码发送请求$bytes = [System.Text.Encoding]::UTF8.GetBytes($weixinMessage)# 发送企业微信消息$weixinUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$accessToken"Invoke-RestMethod -Uri $weixinUrl -Method Post -Body $bytes -ContentType "application/json"}elseif ($expire_days -le 2 -and $userweixin) {$chineseusername = Get-ADUser $user -Properties * | %{$_.DisplayName}# 企业微信消息正文$weixinMessageBody ="亲爱的 $chineseusername 同学:`r`n`r`n" +"您的域账户密码即将在 $expire_days 天后过期,$pwdExpiryTime 之后密码过期未修改会导致您无法连接使用域账号登陆各种系统请您尽快更改。`r`n`r`n" +"重置密码过程请遵循以下原则:`r`n" +"○ 密码长度最少 8 位;`r`n" +"○ 密码可使用最长时间 90天,过期需要更改密码;`r`n" +"○ 密码不得重新设置为初始密码;`r`n" +"○ 强制密码历史 2个(不能使用之前最近使用的 2 个密码);`r`n`r`n" +"○ 密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)`r`n" +"密码修改系统如下:`r`n" +"○ 修改密码连接:密码修改的URL `r`n" +"○ 重置密码链接:密码重置系统的URL `r`n" +"谢谢,祝您生活愉快!" # 构建企业微信消息体$weixinMessage = @{"touser"   = $userweixin"msgtype" = "text""agentid" = $agentID"text"    = @{"content" = $weixinMessageBody}"safe"    = 0} | ConvertTo-Json -Depth 10# 使用 UTF-8 编码发送请求$bytes = [System.Text.Encoding]::UTF8.GetBytes($weixinMessage)# 发送企业微信消息$weixinUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$accessToken"Invoke-RestMethod -Uri $weixinUrl -Method Post -Body $bytes -ContentType "application/json"}
}

3.企业微信告警的验证

  • 在ad域机器上运行该脚本后,就可以推送相关消息

4.定时运行脚本

  • 在定时任务中新建定时任务,定时运行powershell脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846773.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5-27 浮动

1、浮动的定义fo属性定义元素在哪个方向浮动,任何元素都可以浮动。值 描述left 元素向左浮动right 元素向右浮动 2、浮动的原理:①浮动以后使元素脱离了文档流②浮动只有左右浮动,没有上下浮动 3、元素向左浮动脱离文档流之后,元素相当于在页面上面增加一个浮层来放置内容。…

工业凹槽洗底问题 | 探索研讨

关于抛物线和圆的位置关系的问题探索和引申前情概要 在和同事研讨下述题目的解答时,碰到了一些困难,思路不太好把握,探索一番,做个记录。 案例分析 【2024高二周末训练题】一个工业凹槽的截面是一条抛物线的一部分,它的方程是 \(x^2=4y\),\(y\in[0,10]\),在凹槽内放入一…

大学微积分 AB (第一单元)极限和连续性

极限介绍 平方的表示方式 极限不存在的情况 根据图表估算极限值 无限制 图中的单侧极限

算法网关视频分析网关消防车通道占用识别助力消防通道畅通守护生命线

随着城市化进程的加快,消防安全成为城市管理中的重要一环。消防车通道作为火灾发生时救援车辆的主要通道,其畅通无阻至关重要。然而,在实际生活中,消防车通道被占用或堵塞的现象屡见不鲜,给火灾救援工作带来了极大的阻碍。一、消防车通道占用识别算法的重要性 消防车通道占…

11Labs 推出 Conversational AI,可定制交互式语音智能体;Recall.ai:视频会议智能体通用 API

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

Hive 数据倾斜问题定位排查及解决

多数介绍数据倾斜的文章都是以大篇幅的理论为主,并没有给出具体的数据倾斜案例。当工作中遇到了倾斜问题,这些理论很难直接应用,导致我们面对倾斜时还是不知所措。 今天我们不扯大篇理论,直接以例子来实践,排查是否出现了数据倾斜,具体是哪段代码导致的倾斜,怎么解决这段…

LeetCode 509[斐波那契数]

LeetCode 509[斐波那契数]题目 链接 LeetCode 509[斐波那契数] 详情实例提示题解 思路 递归求值,但是吧,如果是用递归的话有可能会造成内存超出限制的错误,当然我不能确定会不会报此错误,因为我没有试过 此处我是用循环代替递归的 n为0时,fn为0 n为1时,fn为1 n为2时,fn为…

从零开始利用coze智能体API提取抖音视频文本内容

作用:可以将抖音视频说话的内容转成文本。 本文从零开始搭建coze智能体到添加解析插件、到开通API、再创建请求密钥全流程讲解。 完全从零开始一步步操作,直至达到最终目的。 扣子的API能力个人免费使用【注上免费请求说明】 免费版和专业版的对比: 文档链接:https://www.c…

H5-26 文档流

1、文档流是文档中可显示对象在排列时所占用的位置/空间例如:块元素自上而下摆放,内联元素,从左到右摆放标准六里面的限制非常多,导致很多页面效果无法实现①高矮不齐,底边对齐②空白折叠现象(1)无论多少个空格、换行、tab,都会折叠为一个空格(2)如果我们想让img标签…

HTML打包EXE2.0.0版本新增免费内核介绍 - 永久使用不过期, 无广告

近期我们接到一些用户反馈, 希望可以给学生用户, 公益教育事业的用户提供免费的内核, 方便他们打包一些简易的网页程序. 针对上述的用户反馈, 我们技术人员经过调研, 决定单独开发一个独立的免费内核供所有用户使用, 后续免费内核也会随着软件的更新一起更新维护.HTML打包EXE包…

智慧楼盘新突破:数字孪生如何改变传统房地产?

随着智慧城市的不断发展,数字孪生技术逐渐成为实现智慧楼盘管理和运营的核心技术之一。通过创建与现实楼盘一一对应的虚拟模型,数字孪生不仅能够提供更加全面、动态的楼盘信息展示,还能为楼盘的建设、管理和用户体验优化提供精准的数据支持和智能化解决方案。 一、全周期楼盘…

北斗系统:构建天地一体化的高精度定位服务

随着北斗卫星导航系统的全面建成,中国在全球卫星导航领域迈出了坚实的一步。北斗系统不仅提供了全天候、全天时的全球覆盖服务能力,更通过天地一体化的高精度增强服务系统技术,将民用定位精度提升到了新的高度。 北斗系统的高精度服务北斗系统的高精度服务能力,是通过其空间…