用IOT的思维来管理我们的查看我们重要业务的服务器健康状态-Powershell脚本编写-发送脚本解析!
发布日期:2021-06-29 20:30:04
浏览次数:4
分类:技术文章
本文共 2950 字,大约阅读时间需要 9 分钟。
我们已经配置好云端IOT HUB,同时也配置好了Stream Analytics,也配置了PowerBI.
接下来我们就将当前我们的AD的健康状态和AD服务器的健康状态分别写成两个脚本,脚本内容如下,大家可以参考下:
ADhealth的脚本如下,我们主要统计我们AD用户状态、今天删除的用户数、今天增加的用户数、管理组成员数,脚本如下,我们分个进行语义解析:
import-module ac* <--导入AD模块-->
$deviceClient = Get-IoTDeviceClient -iotHubUri iotForAD.azure-devices.net -deviceId MyFirstDevice -deviceKey ZHemu8nhZ9YneXVU+3K4XfV8+e4+Tsr2IjzudB3aCcA= <--获取当前客户端的->
function sendsystemhealth <--写入函数--> { while($true)<--进入无限循环,每隔5秒钟发送一次状态--> {
$sendstr="" ; <--定义初始字符串常量-->
$currentgpoCount= (get-gpo -all |Measure).count <--统计GPO数量-->
$deletedobject=(Get-ADObject -Filter {(isdeleted -eq $true) -and (name -ne "Deleted Objects")} -includeDeletedObjects -Properties * |where {$_.whenchanged -gt (get-date).AddDays(-1)} |Measure-Object).count <--统计已经删除的用户数-->
$currentCtotalsize=$currenthd.size /1gb; <--统计C盘的总体大小-->
$currentCusedsize=($currenthd.size-$currenthd.freespace)/1gb; <--统计C盘的空余空间-->
$usercount=(get-aduser -filter * -searchbase "dc=frenqna,dc=com" |measure-object).count <--统计用户数-->
$todayusercount= Get-ADUser -Filter * -SearchBase "dc=frenqna,dc=com" -Properties * |where {$_.created -gt (get-date).adddays(-1)}|Measure-Object; <--统计统计--> $todaygroupcount= Get-ADgroup -Filter * -SearchBase "dc=frenqna,dc=com" -Properties * |where {$_.created -gt (get-date).adddays(-1)}|measure-object; <--获取当前用户组-->
$adminusercount=get-adgroup -identity administrators|measure-object <--获取管理员组的用户数量-->
$sendstr='{"'+'MachineName":'+'"ADSrv"'+',"ADactiveUser":'+ $usercount+ ',"TodayCreateUserCount":'+ $todayusercount.Count+ ',"CurrentGPOcount":'+ $currentgpoCount+ ',"admingroupmembercount":'+ $adminusercount.count+',"totalgroupCount":'+ $currentgpoCount+ ',"CurrentGroupCount":'+ $todaygroupcount.Count+',"TodayCreategroup":'+ $todaygroupcount.count+',"DaysDeleted":'+ $deletedobject+'}' <--最终将我们的数据-->
sleep(5); <--延迟三秒,发送xia-->
Send-IoTDeviceMessage -messageString $sendstr -deviceClient $deviceClient <--发送消息到我们的IOT HUB-->
} }
sendsystemhealth <--执行Function 功能-->
接下来我们来定义我们的发送的系统状态的值,就不一一解释了,大家可以仔细看看:
$deviceClient = Get-IoTDeviceClient -iotHubUri iotforADHealth.azure-devices.net -deviceId adserver1 -deviceKey ghw9MDIPXstUZNqK3ZpEJVj5onaCrT9T/AnMT1WdmF0=
function sendsystemhealth { while($true) {
$sendstr="" ; $currentram= Get-WmiObject -Class Win32_PerfRawData_PerfOS_Memory |select AvailableMBytes;
$currenthd=Get-WmiObject -Class Win32_LogicalDisk |where{$_.deviceid -eq "c:"}|select freespace,size; $currentdiskqueue=Get-WmiObject -Class Win32_PerfFormattedData_PerfDisk_PhysicalDisk |select name,AvgDiskQueueLength ;
$currentCtotalsize=$currenthd.size /1gb; <#求出当前C盘大小#> $currentCusedsize=($currenthd.size-$currenthd.freespace)/1gb; <#求出当前C盘易用空间#>
$sendstr='{"'+'MachineName":'+'"ADSrv"'+',"AvailableMBytes":'+ $currentram.AvailableMBytes+',"'+'usedsize":'+$currentCusedsize+',"TotalDiskC":'+ $currentCtotalsize+'}'
sleep(10);
Send-IoTDeviceMessage -messageString $sendstr -deviceClient $deviceClient
} }
sendsystemhealth
转载地址:https://databooming.blog.csdn.net/article/details/78810146 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月26日 04时10分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
图像检索中为什么仍用BOW和LSH
2019-04-30
图˙谱˙马尔可夫过程˙聚类结构----by林达华
2019-04-30
深度学习读书笔记之AE(自动编码AutoEncoder)
2019-04-30
深度学习读书笔记之RBM
2019-04-30
深度学习word2vec笔记之基础篇
2019-04-30
Asterisk manager API(AMI)文档(中文版)
2019-04-30
Asterisk Originate 内部执行流程
2019-04-30
从AMI管理接口发起呼叫,并转给队列空闲坐席接听
2019-04-30
asterisk 使用php脚本socket通过AMI端口实现自动打电话报警
2019-04-30
CentOS 5.3 PHP 5.2.x Oracle客户端扩展(OCI8)安装
2019-04-30
linux下 PHP脚本连接oracle数据库
2019-04-30
Oracle如何调整SGA的大小
2019-04-30
因spfile修改错误导致数据库无法启动的恢复方法
2019-04-30
AppSettings和ConnectionStrings的区别
2019-04-30
Forms 身份验证
2019-04-30
ASP.NET 网页设计如何设置全局背景图片
2019-04-30
C#编程实现计算器
2019-04-30
C# 利用Jmail接收邮件
2019-04-30