Windows Server 2016のブートイベントデータの収集


Windows Server 2016には、「設定とブートイベントに関するデータ収集」と呼ばれるあまり知られていない機能があります。 これにより、システムブートプロセス中に発生したイベントに関する情報をリモートで収集できます。 この機能は、OSブート中に「フローティング」問題を検索する場合に特に役立ちます。


この記事では、この欠落情報を便利に収集する方法を説明します。


イベントの種類は次のとおりです。これらの情報は、「設定およびブートイベントに関するデータ収集」機能を使用して見つけることができます。


  1. カーネルモジュールとドライバーの読み込み。
  2. デバイスの列挙とドライバーの初期化。
  3. ファイルシステムの検証とインストール。
  4. 実行可能ファイルを実行します。
  5. システム更新の開始と完了。

コレクターサーバーでイベントに関するすべての必要なデータを収集した後、イベントビューアー、Wevutil、またはPowerShellを使用して、それらを分析できます。


次に、サーバーとリモートサイトを構成してデータを収集する方法を見ていきます。


対応OS


コレクターの役割は、Windows Server 2016のみで実行できます。デスクトップ機能を備えたサーバーまたはServer Coreのいずれかです。


以下は、ビルダーおよびターゲットコンピューターでサポートされる仮想化OSタイプを示すTechNetリソースの表です。


仮想化ノード仮想マシンコレクターターゲット仮想マシン
Windows 8.1はいはい
Windows 10はいはい
Windows Server 2016はいはい
Windows Server 2012 R2はいいや

データを収集するサーバーには、Windows Server 2016またはWindows 10のいずれかがインストールされている必要があり、Nano Serverを搭載したコンピューターはターゲットノードとして機能できます。 Windows Server 2012 R2を実行しているコンピューターで仮想マシンとして動作する場合でも、Windows Server 2016のウィンドウからデータを収集することもできます。


アセンブリノードの構成


ターゲットコンピューターからETLイベントを受信して​​表示するには、コレクターノードを構成する必要があります。 最初に、次のいずれかの方法を使用してイベント収集サービスを有効にする必要があります。


DISMの使用:


dism /online /enable-feature /featurename:SetupAndBootEventCollection 

PowerShellコマンド:


 Get-WindowFeature -Name *boot* Install-Windows -Name Setup-and-Boot-Event-Collection 

サーバーマネージャーGUIを使用してこのコンポーネントをインストールすることもできます。



サーバーマネージャーを使用してサービスをインストールします。


イベントコレクションサービスをインストールすると、ネットワークサービスアカウントで実行される新しいサービス-ブートイベントコレクターにアクセスできます。



ブートイベントコレクターのプロパティ。


いくつかの便利なオプションで実行できるbevtcol.exeコマンドラインツールもあります。 フルサービスをインストールする前に設定をテストするのに役立ちます。



bevtcol.exeのパラメーター。


たとえば、構成ファイルが正しいことを確認するためにのみ、 bevtcol.exe-config NewConfig.xml-checkOnlyを実行できます。 そして、プロセス自体を開始せずに終了します。


次に、コレクタノードでデフォルトの構成ファイルが作成されたかどうかを確認する必要があります。これは、最初のコレクタコンピュータ構成ファイルの作成に役立ちます。


C:\ ProgramData \ Microsoft \ BootEventCollector \ Configフォルダーには、サービスのインストール直後に作成された3つのXML構成ファイルがあります。



XML構成ファイル。


Active.xmには、同様のEmpty.xml構成が含まれています。 新しい構成はそれぞれ、このファイルに保存する必要があります。




*サンプルを含むXMLファイル* om設定。


C:\ ProgramData \ Microsoft \ BootEventCollectorフォルダーの構造を見ると、さまざまな目的でさまざまなフォルダーが作成されていることがわかります。




ETLおよびログファイルフォルダー。


これで、最初の構成ファイルを作成できます。 %SystemDrive%\ ProgramData \ Microsoft \ BootEventCollector \ Configディレクトリに新しいXMLファイルを作成し、以下の構成の内容を.xmlファイルにコピーします。


設定例。
 <collector configVersionMajor="1" statuslog="c:\ProgramData\Microsoft\BootEventCollector\Logs\statuslog.xml"> <common> <collectorport value="50000"/> <forwarder type="etl"> <set name="file" value="c:\ProgramData\Microsoft\BootEventCollector\Etl\{computer}\{computer}_{#3}.etl"/> <set name="size" value="10mb"/> <set name="nfiles" value="10"/> <set name="toxml" value="none"/> </forwarder> <target> <ipv4 value="192.168.1.171"/> <key value="6.7.8.9"/> <computer value="Server01"/> </target> <target> <mac value="00:15:5D:60:3D:04"/> <key value="1.2.3.4"/> <computer value="Server02"/> </target> </common> </collector> 

構成ファイルにはいくつかの重要なポイントがあります。


まず、 コレクター -このノードで、構成ファイルのバージョンとログファイルの名前を指定しました。

次に、 collectorport-着信イベントを収集するためのポート番号を示します。 また、ターゲットコンピューターで同じポート番号を構成する必要があります。

第三に、 フォワーダー -ここでは、ETLファイルの特性を示します。 これらの特性は次のとおりです。

1.ファイルは、ファイル名のパターンを定義します。 {#3}は、001、002など、アクセス時のファイルの3桁のインデックスです。 {Computer}は、コンピューターの名前を示すために使用されます。 したがって、この例では、ファイルはCOMPUTERNAME_00xという名前でEtl \ COMPUTERNAME \フォルダーに収集されます。

2.サイズは、ETLファイルの最大サイズを決定します。

3. Nfilesは、循環で作成されるETLファイルの数を決定します。 新しいファイルはそれぞれ、前のファイルのサイズがSizeパラメーターで定義された制限に達するとすぐに作成されます。

4. ToXMLは、ETWイベントが転送中にXMLに変換されるペイロードを定義するオプションのパラメーターです。 デフォルト値はありません。 受信したイベントは常にバイナリ形式で送信されます。 値を「ALL」に設定すると、ペイロードは常にXMLに変換されます。

ETWイベントは、それらが生成されたコンピューターによって解釈されるように設計されているため、このパラメーターは実際には一種の保護です。


ただし、イベントを別のコンピューターに移動するとすぐに、矛盾が発生する場合があります。 XMLに変換すると、イベントをより広い範囲のターゲットノードで利用できるようになります。 唯一の欠点は、XMLへの変換によってコレクタノードもロードされることです。


4番目に、 ターゲット -ここでは、ターゲットノードの設定を指定できます。 たとえば、接続を受け入れるようにコンピューターを構成するためのIPアドレス、MACアドレス、またはGUID。 anyAllowedを指定して、すべての接続を受け入れることもできます。

ターゲットノードを追加して、複数のターゲットコンピューターを指定できます。



構成ファイルの処理が完了したら、それを保存してターゲットノードを構成します。


ターゲットコンピューターのセットアップ


ETWイベントを送信するようにターゲットコンピューターを構成するには、イベント転送を有効にする必要があります。 bcdeditコマンドを使用してローカルでアクティブ化するか、 PowerShell RemoteおよびEnable-SbecBcdコマンドを使用してリモートでアクティブ化できます


ラボでは、ターゲットコンピューターにアクセスできるため、bcdeditを使用します。


 bcdedit /event yes bcdedit /eventsettings net hostip:192.168.1.172 port:50000 key:6.7.8.9 

どこで:




bcdeditコマンドを通過するイベントをアクティブにします。


暗号化キーを構成しました。 次のbcdeditコマンドを使用して、構成を確認できます。



BCDイベントの構成を確認します。


これで、サーバーに戻り、指定したキーを使用して、前に作成した新しい構成ファイルを適用できます。 Set-SbecActiveConfigコマンドレットはこれに役立ちます。


 $result = (Get-Content .\myconfig.xml | Set-SbecActiveConfig); $result 


ビルドコンピューター上の構成ファイルを使用します。


 (Get-SbecActiveConfig).content 


受け入れられた構成を取得します。


最後に、最後の手順は、ETWイベントを送信するようにターゲットコンピューターを構成することです。


サーバーで、次のコマンドを実行します。


 Enable-SbecAutoLogger -ComputerName <targetcomputer> -Credential (Get-Credential) 


ETWイベントを送信するようにターゲットコンピューターを構成します。


サーバーで、active.xml構成ファイルが私の設定で更新されました。



更新されたactive.xmlファイル。


新しいログステータスも作成されました。



更新されたログファイル。


さらに、ターゲットコンピューター(Server01)から設定およびブートイベントに関する情報を既に収集できる新しいETLファイルが作成されます。 サーバーの1つを再起動すると、情報が表示されます。



収集されたETLファイル。


これで、収集されたETLファイルをWindowsイベントビューアーで開くことができます。



ターゲットコンピューターの最初の再起動後に収集されたイベント。


ターゲットサーバーを再起動して設定を適用し、イベントの最初のセットを受け取ることを忘れないでください。

Source: https://habr.com/ru/post/J336604/


All Articles