さて、Windows Server 2008 から新たな機能としてイベントサブスクリプションが追加されました。どのような機能かというと、イベントログを集中管理するものになります。この機能に関しては以前より求められていたもので、やっと搭載されたという感じでした。
この機能はWS-Managementを利用しています。これはコンピュータや通信機器をリモート管理するための標準規格になります。
このWS-Managementを使用するための準備を行います。
コレクタ側では
wecutil qc
を実行します。このコマンドによって、イベントログの転送や購読の管理が可能になります。
ソース側では次のコマンドを使用します。
winrm quickconfig
になります。このコマンドでは「リスナ」の作成およびFWの設定を行っています。
ただし、コレクタ側の設定([帯域幅の最小化] または [潜在期間の最小化] (プッシュ モード) の配信最適化を使用するサブスクリプション)によっては、「winrm quickconfig」のコマンドも必要になります。よってコレクタ側での設定において、「winrm quickconfig」も実行しておきます。
今回の構成としてコレクタを Windows Server 2008 R2 とします。
そしてソースを
- Windows Server 2008 R2
- Windows Server 2008
- Windows Server 2003
で構成してみます。
コレクタ側では、「wecutil qc」および、「winrm quickconfig」は実行済み。
ソース側のコンピューターでは、「winrm quickconfig」は実行済み。
コレクタ側のイベントビューアーのサブスクリプションより設定を行います。
イベントの選択でどのようなイベントを転送させるかの設定を行います。
詳細設定で次を選択します。
ユーザーアカウントに関しては、今回は特定のユーザーとし、ドメインの管理者である「administrator」を選びます。
また、なるべく早くイベントが届いてほしいので「潜在期間の最小化」にチェックします。
Windows Server 2008 R2の場合
「コンピューターの選択」でソースのコンピューターを選択します。
ここでテストをクリックします。
問題がなければOKをクリックします。
Windows Server 2008 の場合
ここでテストをクリックすると
このようにエラーが出ます。
これは、Windows Server 2008 R2 / Windows 7 より、WinRM のバージョンが2.0となり、リスナポートが80から5985に変更されたことに起因します。
(ちなみに Windows Server 2008 / Vista は WinRM のバージョンは1.1でリスナポートは80)
ソース側で「winrm enumerate winrm/config/listener」コマンドを実行します。
ですので、一旦設定したコマンドを解除します。
「Winrm quickconfig」は、以下の2つを実行するのと同様の動作をします。
・すべてのアドレスからの要求を80番ポートでListenする「リスナ」を作成
Winrm create winrm/config/listener?Address=*+Transport=HTTP
・Firewall の受信ルールにある「Windows リモート管理(HTTP受信)」が有効化
netsh advfirewall firewall set rule name=”Windows リモート管理 (HTTP 受信)” new enable=yes
これらを無効にするには次のコマンドを実行します。
Winrm delete winrm/config/listener?Address=*+Transport=HTTP
netsh advfirewall firewall set rule name=”Windows リモート管理 (HTTP 受信)” new enable=no
次に、Window Server 2008 用の WinRM2.0 をダウンロードし、インストールします。
Windows 管理フレームワーク (Windows PowerShell 2. 0、WinRM 2. 0、および BITS 4. 0)
http://support.microsoft.com/kb/968929/ja
「Winrm quickconfig」を実行すると
このように、リスナーのポートが5985に変わり、FWも設定してくれます。
Windows Server 2003 の場合
そもそも、最初からWinRMは入っていませんので、Window Server 2003 用の WinRM2.0 をダウンロードし、インストールします。
「Winrm quickconfig」を実行します。
以上の設定を行うと、コレクタ側にイベントが集まります。
ただし、セキュリティログだけ届きません。
セキュリティログをコレクタ側に転送するにはOSによって設定が異なります。
XPの場合
Windows Remote Management サービスを「Local System アカウント」で実行する
Windows Server 2003の場合
HKLM/SYSTEM/CurrentControlSet/Services/EventLog/Security
のCustomerSDキーの値を「O:BAG:SYD:(A;;CC;;;NS)」にする
Windows Server 2008 以降の場合
Event Log Readers ローカルグループのメンバーにそのコンピューターの「NETWORK SERVICE」グループを追加する
参考情報
Forwarding Security Events from Windows XP, Server 2003, and Vista/Server 2008
http://blogs.technet.com/b/otto/archive/2009/06/22/forwarding-security-events-from-windows-xp-server-2003-and-vista-server-2008.aspx
以上の設定が必要になります。これらの設定後に再起動を忘れずに行いましょう!
コメント
naonao71さん、Good jobです。WinRMを普通にWindows Server 2003で使うと認証で失敗するので、ここに書いてある情報は貴重だと思います。ありがとうございます。
Windows Server 2008 のイベントサブスクリプションは WinRM1.1 が原因なのかわかりませんが、かなり不安定でしたね。設定してもなかなかイベントが飛んでこない。しかし、R2でテストしてみてわかったことは、以前より安定して動いています。
そもそも、Windows Server 2003 からイベントが取れることを知らなかったので今回テストしてみました。
[…] [WinRM/WinRS] 簡単リモート管理!WMI の代わりに使ってみませんか? イベントサブスクリプションに関して # イベントサブスクリプションも WinRM […]