Windows Server 2008使用Powershell发送警报

我想发送一个警报与Powershell。 但我想知道是否有其他方式发送警报,除了电子邮件。

谢谢。

PS我不能发送电子邮件,因为我没有一个smtp服务器,并由于一些政策,我不能安装一个。 此外,服务器没有Internet连接。

如果你想通过你的本地networking发送警报 – 没有使用电子邮件服务器,我能想到的最好的事情就是networking信息 – 当然有一些限制,但是这应该能够满足你的要求,并且可以在任何NT客户端 – 尽pipe您必须拥有一个域控制器才能真正正常工作,因此不存在身份validation问题。

https://gallery.technet.microsoft.com/scriptcenter/Send-NetMessage-Net-Send-0459d235 – 这是一个比我更聪明的人写的脚本,它能够通过本地networking发送控制台消息,甚至没有任何类似于SMTP 。

如果您有任何警报系统要连接,有很多方法可以“发送警报”。

你可以:

  • 发送消息到事件日志中,如果它们被任何工具监视(使用New-EventLog )
  • 运行PSExec ,使另一台计算机上发生某些事情,比如播放声音文件或启动程序,也许在NirCMD的帮助下
  • 使用Invoke-RestMethod或Invoke-WebRequest,如果您有一个带有警报Web界面的Web服务器,您可以调用
  • 发送SNMP陷阱 ,如果您有SNMP陷阱侦听器
  • 使用任何.Net框架TCP / IP接口发送任意networking数据包,例如发送Syslog消息到系统日志服务器

使用类似于networking消息的警报系统的问题包括:自Windows XP时代以来它默认closures,它可能被Windows防火墙/第三方端点保护阻止,如果您错过了一条消息,则无法检查它说的是什么或让它再次提醒你。

如果监视很重要,那么build立一个合理的监视系统会更好,比如像PRTG这样的免费版本,最多可以有100个传感器。

您可以使用msg来发送消息。 以下内容将告知所有login到远程PC的用户:

 Invoke-Command -computername $computer -scriptblock { msg * "Enter message here" } 

如果你只是想警告他们你正在做维护或其他事情,很容易发送警报给用户的最简单的方法。