Powershell管理系列(十三)用 PowerShell收集服务器日检报告,并发邮件给管理员

Powershell管理系列(十三)用 PowerShell收集服务器日检报告,并发邮件给管理员,第1张

Powershell管理系列(十三)用PowerShell收集服务器日检报告,并发邮件给管理员

-提供AD\Exchange\Lync\SharePoint\CRM\SC\O365等微软产品的实施和外包,QQ:185426445。电话:1866943750

Powershell博客程序及部分描述转载自大象博客。原始地址见以下网址。

用PowerShell收集服务器的日常检查报告,并发送给管理员。

http://hubuxcg.blog.51cto.com/2559426/1604582

作为服务器管理员,日常工作包括检查硬盘使用情况、内存、CPU、服务、事件日志等。每台服务器的。

如果没有SCOM/zabbix/HostMonitor上的服务或工具的帮助,每天手动检查一台服务器也是一件费时又麻烦的事情。

使用PowerShell收集某个服务器的状态信息,生成一个。html文件,并通过电子邮件发送给指定的人。原文件如下,有兴趣的可以直接去原文件定制。

https://gallery.TechNet.Microsoft.com/scriptcenter/Get-generalsystemreports1-4d9b5817

https://www.simple-talk.com/sysadmin/powershell/building-a-daily-systems-report-email-with-powershell/

现在经过小修改,生成的报告内容翻译成中文,修改为批量采集多份服务器检查报告。

用法:

1.下载附件脚本,并修改脚本中的以下内容:

1)如果只需要生产,可以跳过这一步。html报告,不需要接收电子邮件。如果您需要接收电子邮件,请修改SMTP服务器地址、发件人邮箱、收件人邮箱和副本收件人邮箱,并启用发送电子邮件。

[String]$emailrelay="relay.rightdo.net",

[String]$emailsender='[email protected]',

[String]$emailrecipient='[email protected]',

[Bool]$SendMail=$True,

False表示不发送邮件,True表示发送邮件。

[email protected]

【注意:发送到外域邮箱时我们需要开启exchange服务器的匿名中继权限。我们将首先实现发送到内部邮箱。文末说的是如何开启Exchange的匿名中继]

如有必要,请去掉前面的“#”,改为您需要的电子邮件地址。

2)修改需要查询的事件日志和占用内存最多的进程信息。这是最近3个系统和应用程序日志中显示为警告或错误的默认日志信息,以及占用内存最多的前10个进程信息。可以根据自己的需求进行调整。

##特定于环境-更改这些##

$EventNum=3#要为系统报告提取的事件数

$ProccessNumToFetch=10#要为系统报告提取的进程数

3)在存储这个PS文件的同一个目录下,创建一个Serverlist.txt文件,填写要收集的服务器的名称,每行一个服务器的主机名,比如:

vmshdc01.rightdo.net

exshsv01.rightdo.net

lyncshsv01.rightdo.net

2.在PowerShell中测试。如果脚本无法执行,请修改脚本执行策略。

3.创建一个计划任务,让脚本在指定的时间自动运行!

1.控制面板-所有控制面板项目-管理工具-任务计划程序

第二步。创建一个基本任务…

3.填写名称-Powershell收集服务器日志。然后

第四步。选择每天,然后继续。

第五步。定义每天执行任务的时间,继续下一步。

第六步。启动程序,并继续下一步。

第七步:进入程序或脚本。

powershell-file"C:\Get-GeneralSystemReport_Network_51cto.PS1"

第八步。选择是,然后继续。

第九步:完成

第10步:选择无论用户登录与否都运行。

生成的。执行后的html报告如下:

如果启用了邮件功能,收到的邮件内容如下:

注意:该方法用于领域环境。作为域管理员或具有所有服务器管理员权限的帐户登录到服务器,以执行该脚本。如果执行脚本时登录的帐户没有相应服务器的管理员权限,则不会执行该脚本。如果各个服务器的权限比较分散,没有管理员权限,建议把脚本分析放在各个服务器上,然后在各个服务器上执行脚本或者设置调度任务。

先说一下如何设置匿名中继。

因为我们的Powershell脚本是匿名调用SMTP的,包括内部和外部发送邮件,如果不采用匿名发送,可能无法对外发送邮件。我们最好不要在默认的接受连接器中设置匿名访问,所以需要设置一个新的接受连接器,接受匿名访问。所以我们按照相应的步骤设置,我们的新药建立了一个接收连接器,

1.首先登录EX服务器,打开EAC管理网页,导航到邮件流接收连接器:

2.创建一个名称为中继、角色为前端传输、类型为内部的新接收连接器。

第三步:编辑远程网络设置,将IP段设置为内部网段10.10.10.1-10.10.10.254。

第四步,

身份验证选择基本身份验证和集成windows身份验证。

为组权限选择Exchange服务器、旧Exchange服务器、Exchange用户和匿名用户。

5.relay.rightdo.net:FQDN,创造了新的relay.rightdo.net纪录。

第六步。我们需要将当前接收连接器设置为匿名中继,并且需要使用Powershell脚本。Powellshell脚本如下所示:

[PS]C:\Windows\system32>;get-receiveconnector"relay"|Add-adpermission-User"NTAUTHORITY\ANONYMOUSLOGON"-extendedrights"Ms-Exch-SMTP-Accept-Any-Recipient"

第七步。至此,我们的匿名接力已经建立。如果有多台服务器需要使用SMTP中继,每台服务器都需要设置相同的:

接下来,让我们进行一个测试,测试匿名中继到外部机器发送邮件。经过测试,我们发现我们可以完全中继任何域名的邮件:

8.设置了匿名中继后,经过测试,发现我们的外部QQ邮箱也收到了服务器报告。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/783812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存