PowerShell小技巧:通过Powershell 发送消息给企业微信机器人

Posted 微风ATBJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell小技巧:通过Powershell 发送消息给企业微信机器人相关的知识,希望对你有一定的参考价值。

背景

在工作中经常会使用计划任务执行 Powershell 脚本,同时又需要基于执行的脚本及时反馈结果给相关人员。过去是通过 Powershell 发送邮件通知,但很多时候这类消息容易被忽略,没有及时沟通类的消息软件高效。

本篇以企业微信机器人为例,简单记录使用 Powershell 发送消息给企业微信机器人,便于后期集成在其他脚本中,以实现及时反馈运行结果的需求。如何创建机器人不在本文范围,请自行搜寻。

本文为==微风==原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.


实现方式

$Webhook = "https://qyapi.weixin.qq.com/xxx" # 这里填写机器人的Webhook 地址即可
Invoke-WebRequest $Webhook -Method POST -ContentType "application/json;charset=utf-8" -Body "msgtype": "text","text": "content": "【测试企业微信机器人消息】"

效果预览

实战

脚本如下:

# Send message
$webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*********"
$PClist = Get-ADComputer -SearchBase "CN=Computers,DC=ITPro,DC=cc"  -Filter Enabled -eq "True" | Select-Object Name
$PCNames = $PClist.Name
$PCNumb = ($PClist.Name).count
$content = Write-Output "一共有"$PCNumb"台计算机加入域请尽快移动至相关OU,清单如下:`n "$PCNames""

$body = "
    `"msgtype`":`"text`",
    `"text`":
    `"content`":`"$content`",
    `"mentioned_list`":[`"jason`"]
    
"
$chinese = [System.Text.Encoding]::UTF8.GetBytes($body) #这里是解决中文编码问题的即发送中文消息时候使用。
if ($PCNumb -gt 0) 
    Invoke-RestMethod $webhook -ContentType "application/json" -Method Post  -Body $chinese

else 
    exit

执行结果:


机器人消息也支持MarkDown格式,让输出的消息更加美观

下一章,我将介绍通过 PowerShell 自动将刚加域的客户端按固定计算机命名规则来移动至对应 OU,效果如下图所示:

详细说明请见官方文档

更多文章,欢迎订阅或访问我的个人博客: Blog.ITPro.cc

以上是关于PowerShell小技巧:通过Powershell 发送消息给企业微信机器人的主要内容,如果未能解决你的问题,请参考以下文章

如何在不卸载powershell的情况下,有效禁用/启用powershel

PowerShell小技巧:通过 PowerShell实现日志关键字分析

PowerShell小技巧:通过Powershell 发送消息给企业微信机器人

内网渗透之Windows反弹shell

PowerShell小技巧:通过Powershell定期自动将加域的客户端从 Computers 按规则移动至相应 OU并发送通知至机器人

Win10小技巧:如何将在此处打开命令改为CMD或Powershell?