
Powershell でアラートを送信したいのですが、電子メール以外にアラートを送信する別の方法があるかどうかを知りたいです。
ありがとう。
PS SMTP サーバーがないのでメールを送信できません。また、ポリシーにより、サーバーをインストールすることもできません。さらに、サーバーにはインターネット接続がありません。
答え1
電子メール サーバーを使用せずにローカル ネットワーク経由でアラートを送信したい場合、私が考えられる最良の方法は Net Message です。もちろん制限はありますが、これで要件は満たされ、どの NT クライアントでも動作するはずです。ただし、認証の問題が発生しないように、これを正しく動作させるにはドメイン コントローラーが必要です。
https://gallery.technet.microsoft.com/scriptcenter/Send-NetMessage-Net-Send-0459d235- これは私よりも賢い人によって書かれたスクリプトで、SMTP に似たものさえ使わずに、ローカル ネットワーク経由でコンソール メッセージを送信できます。
答え2
接続するアラート システムがある場合、「アラートを送信する」方法はたくさんあります。
あなたは出来る:
- イベントログにメッセージを送信します(ツールによって監視されている場合)。新しいイベントログ)
- 走るPSExec別のコンピュータで何かを起こすこと、例えばサウンドファイルを再生したりプログラムを起動したりすること、おそらくニルCMD
- Invoke-RestMethodまたはInvoke-WebRequestを使用します。アラートWebインターフェースを備えたWebサーバーがある場合は、
- SNMPトラップを送信するSNMPトラップリスナーがある場合
- .NetフレームワークのTCP/IPインターフェースのいずれかを使用して、任意のネットワークパケットを送信します。例:Syslogメッセージを送信するsyslogサーバーへ
ネット メッセージなどを使用して警告システムを構築する場合の問題としては、Windows XP 時代からデフォルトでオフになっていること、Windows ファイアウォールやサード パーティのエンドポイント保護によってブロックされる可能性が高いこと、メッセージを見逃した場合にメッセージの内容を確認したり再度警告を発したりすることができないことなどが挙げられます。
監視が重要な場合は、次のような適切な監視システムを構築したほうがよいでしょう。広報最大 100 個のセンサーまでの無料エディションがあります。
答え3
ユーザーにメッセージを送信するために使用できますmsg
。次の例は、リモート PC にログインしているすべてのユーザーにメッセージを送信します。
Invoke-Command -computername $computer -scriptblock { msg * "Enter message here" }
メンテナンスなどを行っていることをユーザーに警告したい場合に、アラートを送信する最も簡単な方法です。