分享方式:


開始使用安裝與開機事件集合

適用於:Windows Server 2022、Windows Server 2019、Windows Server

概觀

「安裝與開機事件集合」是 Windows Server 2016 中可讓您指定收集器電腦的新功能,而此電腦可以收集其他電腦在開機或進行設定程序時所發生的各種重要事件。 您隨後可以使用事件檢視器、訊息分析器、Wevtutil 或 Windows PowerShell Cmdlet 來分析收集到的事件。

先前,已無法監視這些事件,因為除非已設定電腦,否則收集這些事件所需的基礎結構不存在。 您可以監視的安裝和開機事件種類包括:

  • 載入核心模組和驅動程式

  • 列舉裝置以及初始化其驅動程式 (包括 CPU 類型這類裝置)

  • 檔案系統的驗證和掛接

  • 可執行檔的啟動

  • 系統更新的啟動和完成

  • 系統可供登入、建立與網域控制站的連線、服務啟動完成,以及網路共用可用性的時間點

收集器電腦必須執行 Windows Server 2016 (其可以在 [具備桌面體驗的伺服器] 或 Server Core 模式中)。 目標電腦必須執行 Windows 10 或 Windows Server 2016。 如果虛擬機器裝載於「未」執行 Windows Server 2016 的電腦上,則您也可以在此虛擬機器上執行這個服務。 已知下列虛擬化收集器與目標電腦組合可以運作:

虛擬化主機 收集器虛擬機器 目標虛擬機器
Windows 8.1
Windows 10
Windows Server 2016
Windows Server 2012 R2

安裝收集器服務

從 Windows Server 2016 開始,事件收集器服務可作為選用功能。 在此版本中,您可以在提高權限的 Windows PowerShell 提示字元中搭配使用 DISM.exe 與此命令來進行安裝:

dism /online /enable-feature /featurename:SetupAndBootEventCollection

此命令會建立稱為 BootEventCollector 的服務,並使用空的設定檔予以啟動。

檢查 get-service -displayname *boot* 以確認安裝成功。 「開機事件收集器」應該正在執行。 其會以網路服務帳戶執行,並在 %SystemDrive%\ProgramData\Microsoft\BootEventCollector\Config 中建立空的設定檔 (Active.xml)。

您也可以使用 [伺服器管理員] 中的 [新增角色及功能精靈] 來安裝 [安裝與開機事件集合] 服務。

組態

您需要設定兩個項目來收集安裝和開機事件。

  • 在將傳送事件的目標電腦 (即您想要監視其安裝和開機的電腦) 上,啟用 KDNET/EVENT-NET 傳輸,並啟用事件的轉送。

  • 在收集器電腦上,指定要接受事件的來源電腦和其儲存位置。

注意

您無法將電腦設定為將啟動或開機事件傳送給它自己。 但是,如果您想要監視兩部電腦,則可以將它們設定為將事件傳送給彼此。

設定目標電腦

在每個目標電腦上,您先啟用 KDNET/EVENT-NET 傳輸,並透過傳輸來啟用 ETW 事件的傳送,然後重新啟動目標電腦。 EVENT-NET 是核心內傳輸通訊協定,而這類似於 KDNET (核心偵錯工具通訊協定)。 EVENT-NET 只會傳輸事件,而且不允許偵錯工具存取。 這兩個通訊協定互斥;您一次只能啟用其中一個。

您可以遠端或本機啟用事件傳輸 (使用 Windows PowerShell)。

遠端啟用事件傳輸
  1. 如果您已將 Windows PowerShell 遠端設定為目標電腦,則請跳至步驟 3。 否則,請在目標電腦上開啟命令提示字元,然後執行下列命令:

    winrm quickconfig

  2. 回應提示,然後重新啟動目標電腦。 如果目標電腦不在與收集器電腦相同的網域中,則您可能需要將其定義為受信任主機。 若要這樣做:

  3. 在收集器電腦上,執行下列其中一個命令:

    • 在 Windows PowerShell 提示字元中:Set-Item -Force WSMan:\localhost\Client\TrustedHosts <target1>,<target2>,...,後面接著 Set-Item -Force WSMan:\localhost\Client\AllowUnencrypted true,其中 <target1> 等是目標電腦的名稱或 IP 位址。

    • 或者,在命令提示字元中:winrm set winrm/config/client @{TrustedHosts=<target1>,<target2>,...;AllowUnencrypted=true}

      重要

      這會設定未加密的通訊,因此請不要在實驗室環境外部執行此動作。

  4. 移至收集器電腦,並執行下列其中一個 Windows PowerShell 命令,以測試遠端連線:

    如果目標電腦位於與收集器電腦相同的網域,則請執行 New-PSSession -Computer <target> | Remove-PSSession

    如果目標電腦不在相同的網域中,則請執行 New-PSSession -Computer <target> -Credential Administrator | Remove-PSSession,而這會提示您輸入認證。

    如果命令未傳回任何項目,則遠端處理已成功。

  5. 在目標電腦上,開啟提高權限的 Windows PowerShell 提示字元,然後執行此命令:

    Enable-SbecBcd -ComputerName <target_name> -CollectorIP <ip> -CollectorPort <port> -Key <a.b.c.d>

    在這裡,<target_name> 是目標電腦的名稱,而 <ip> 是收集器電腦的 IP 位址。 <port> 是收集器執行所在的連接埠號碼。 金鑰 <a.b.c.d> 是通訊的必要加密金鑰,包含四個以點區隔的英數字串。 在收集器電腦上,會使用這個相同的金鑰。 如果您未輸入金鑰,則系統會產生隨機金鑰;收集器電腦將需要此項目,因此請記下它。

  6. 如果您已經設定收集器電腦,則請使用新目標電腦的資訊來更新收集器電腦上的設定檔。 如需詳細資料,請參閱<設定收集器電腦>一節。

在目標電腦上本機啟用事件傳輸
  1. 啟動提高權限的命令提示字元,然後執行下列命令:

    bcdedit /event yes

    bcdedit /eventsettings net hostip:1.2.3.4 port:50000 key:a.b.c.d

    以下 1.2.3.4 是範例;請將此項目取代為收集器電腦的 IP 位址。 此外,將 50000 取代為收集器將執行所在的連接埠號碼,並將 a.b.c.d 取代為通訊所需的加密金鑰。 在收集器電腦上,會使用這個相同的金鑰。 如果您未輸入金鑰,則系統會產生隨機金鑰;收集器電腦將需要此項目,因此請記下它。

  2. 如果您已經設定收集器電腦,則請使用新目標電腦的資訊來更新收集器電腦上的設定檔。 如需詳細資料,請參閱<設定收集器電腦>一節。

既然已啟用事件傳輸本身,您必須讓系統透過該傳輸實際傳送 ETW 事件。

啟用透過傳輸遠端傳送 ETW 事件
  1. 在收集器電腦上,開啟提高權限的 Windows PowerShell 提示字元。

  2. 執行 Enable-SbecAutologger -ComputerName <target_name>,其中 <target_name> 是目標電腦的名稱。

如果您無法設定 Windows PowerShell 遠端,則一律可以直接在目標電腦上啟用事件傳送。

啟用透過傳輸本機傳送 ETW 事件
  1. 在目標電腦上,啟動 Regedit.exe,然後尋找此登錄機碼:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger. 各種記錄工作階段會列為此機碼下方的子機碼。 Setup PlatformNT Kernel LoggerMicrosoft-Windows-Setup 是與 [安裝與開機事件集合] 搭配使用的可能選項,但建議的選項是 EventLog-System。 這些金鑰詳述於設定和啟動自動記錄工具工作階段

  2. 在 EventLog-System 機碼中,將 LogFileMode 的值從 0x10000180 變更為 0x10080180。 如需這些設定詳細資料的詳細資訊,請參閱記錄模式常數

  3. 您也可以選擇性地啟用將錯誤檢查資料轉送至收集器電腦。 若要這樣做,請尋找登錄機碼 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,並建立值為 0x1 的機碼「偵錯列印篩選」

  4. 重新啟動目標電腦。

選擇網路介面卡

如果目標電腦有多張網路介面卡,則 KDNET 驅動程式將會選擇列出的第一張支援的網路介面卡。 您可以使用下列步驟來指定用於轉送安裝事件的特定網路介面卡:

指定網路介面卡
  1. 在目標電腦上,開啟 [裝置管理員],並展開 [網路介面卡],再尋找您想要使用的網路介面卡,然後在其上按一下滑鼠右鍵。

  2. 在開啟的功能表中,按一下 [內容],然後按一下 [詳細資料] 索引標籤。展開功能表,並在 [內容] 欄位中捲動以尋找 [位置資訊] (清單可能不是依字母順序排列),然後按一下它。 值將會是「PCI 匯流排 X, 裝置 Y, 函數 Z」格式的字串。記下 X.Y.Z;這些是下列命令所需的匯流排參數。

  3. 執行下列其中一個命令:

    從提高權限的 Windows PowerShell 提示字元中:Enable-SbecBcd -ComputerName <target_name> -CollectorIP <ip> -CollectorPort <port> -Key <a.b.c.d> -BusParams <X.Y.Z>

    從提高權限的命令提示字元中:bcdedit /eventsettings net hostip:aaa port:50000 key:bbb busparams:X.Y.Z

驗證目標電腦設定

若要檢查目標電腦上的設定,請開啟提高權限的命令提示字元,然後執行 bcdedit /enum。 此作業完成時,請執行 bcdedit /eventsettings。 您可以再次檢查下列值:

  • 機碼

  • Debugtype = NET

  • Hostip = <收集器的 IP 位址>

  • Port = <您已指定供收集器使用的連接埠號碼>

  • DHCP = yes

也請檢查您是否已啟用 bcdedit /event,因為 /debug/event 互斥。 您只能執行其中一個或另一個。 同樣地,您無法混合使用 /eventsettings 與 /debug 或 /dbgsettings 與 /event。

另請注意,如果您將事件收集設定為序列連接埠,則其會無法運作。

設定收集器電腦

收集器服務會接收事件,並將其儲存至 ETL 檔案。 接著可以使用其他工具 (例如 [事件檢視器]、[訊息分析器]、Wevtutil 或 Windows PowerShell Cmdlet) 來讀取這些 ETL 檔案。

因為 ETW 格式不允許您指定目標電腦名稱,所以每個目標電腦的事件都必須儲存至個別的檔案。 顯示工具可能會顯示電腦名稱,但這將會是工具執行所在的電腦名稱。

更確切地來說,每個目標電腦都會獲指派一個 ETL 檔案的通路。 每個檔案名稱都會包括從 000 到您所設定最大值的索引 (最多 999)。 檔案達到設定的大小上限時,會切換將事件寫入至下一個檔案。 在最高的可能檔案之後,會切換回檔案索引 000。 如此一來,會自動回收檔案,以限制磁碟空間的使用。 您也可以設定其他外部保留原則來進一步限制磁碟使用量;例如,您可以刪除比所設定天數還要舊的檔案。

收集的 ETL 檔案通常會保留在目錄 c:\ProgramData\Microsoft\BootEventCollector\Etl 中 (其可能有其他子目錄)。 您可以依上次修改時間來排序記錄檔,以找到最新的記錄檔。 也會有狀態記錄檔 (通常是在 c:\ProgramData\Microsoft\BootEventCollector\Logs 中),而只要收集器切換寫入至新檔案時就會進行記錄。

也會有收集器記錄檔,而這會記錄收集器本身的相關資訊。 您可以將此記錄檔保持為 ETW 格式 (其中會將事件回報給 Windows 記錄服務;這是預設值) 或保留在檔案 (通常是 c:\ProgramData\Microsoft\BootEventCollector\Logs 中)。 如果您想要啟用可產生大量資料的詳細資訊模式,則使用檔案可能十分有用。 您也可以從命令列執行收集器,以將記錄檔設定為寫入至標準輸出。

建立收集器設定檔

當您啟用服務時,會在 c:\ProgramData\Microsoft\BootEventCollector\Config 中建立和儲存三個 XML 設定檔:

  • Active.xml 此檔案包含收集器服務的目前使用中設定。 安裝之後,此檔案的內容就會立即與 Empty.xml 相同。 當您設定新的收集器設定時,請將其儲存至此檔案。

  • Empty.xml 此檔案包含其預設值集所需的最小設定元素。 其不會啟用任何集合,而只允許以閒置模式啟動收集器服務。

  • Example.xml 此檔案提供可能設定元素的範例和說明。

選擇檔案大小限制

您必須做出的其中一項決策是設定檔案大小限制。 最佳檔案大小限制取決於預期的事件量和可用的磁碟空間。 從清除舊資料的觀點來看,較小的檔案更為便利。 不過,每個檔案都會有 64KB 標頭的額外負荷,而讀取許多檔案來取得合併的歷程記錄可能會不太便利。 絕對最小檔案大小限制為 256 KB。 合理的實際檔案大小限制應該超過 1 MB,而 10 MB 可能是不錯的一般值。 如果您預期有許多事件,則較高的限制可能合理。

您需要記住設定檔的數個詳細資料:

  • 目標電腦位址。 您可以使用其 IPv4 位址、MAC 位址或 SMBIOS GUID。 選擇要使用的位址時,請記住下列因素:

    • IPv4 位址最適合 IP 位址的靜態指派。 不過,即使是靜態 IP 位址也必須透過 DHCP 提供。

    • MAC 位址或 SMBIOS GUID 在事先知道時十分便利,但會動態指派 IP 位址。

    • EVENT-NET 通訊協定不支援 IPv6 位址。

    • 您可以指定多種方式來識別電腦。 例如,如果即將取代實體硬體,則您可以同時輸入舊和新的 MAC 位址,而且將會接受其中一個位址。

  • 用於與收集器電腦通訊的加密金鑰

  • 目標電腦的名稱。 您可以使用 IP 位址、主機名稱或任何其他名稱作為電腦名稱。

  • 要使用的 ETL 檔案名稱和其通路大小設定

建立設定檔
  1. 開啟提高權限的 Windows PowerShell 提示字元,並將目錄變更為 %SystemDrive%\ProgramData\Microsoft\BootEventCollector\Config。

  2. 輸入 notepad .\newconfig.xml,然後按 ENTER。

  3. 將此範例設定複製至 [記事本] 視窗:

    <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.1/>
          <key value=a.b.c.d/>
          <computer value=computer1/>
        </target>
        <target>
          <ipv4 value=192.168.1.2/>
          <key value=d1.e2.f3.g4/>
          <computer value=computer2/>
        </target>
      </common>
    </collector>
    

    注意

    根節點是 <collector>。 其屬性會指定設定檔語法的版本和狀態記錄檔的名稱。

    <common> 元素會將指定其常用設定元素的多個目標群組在一起,非常類似使用者群組可以用來指定多個使用者的常用權限。

    <collectorport> 元素會定義收集器將接聽傳入資料的 UDP 連接埠號碼。 這與 Bcdedit 的目標設定步驟中所指定的連接埠相同。 收集器只支援一個連接埠,而且所有目標都必須連線至相同的連接埠。

    <forwarder> 元素指定將如何轉送接收自目標電腦的 ETW 事件。 只有一種類型的轉寄站可將其寫入至 ETL 檔案。 參數會指定檔案名稱模式、通路中每個檔案的大小限制,以及每部電腦的通路大小。 設定 toxml 指定 ETW 事件會在收到時以二進位格式寫入,而不會轉換成 XML。 如需決定是否將事件授與 XML 的相關資訊,請參閱 XML 事件轉換小節。 檔案名稱模式包含下列替代項目:{computer} 代表電腦名稱,而 {#3} 代表通路中檔案的索引。

    在此範例檔案中,使用 <target> 元素定義兩部目標電腦。 每個定義都會使用 <ipv4> 來指定 IP 位址,但您也可以使用 MAC 位址 (例如,<mac value=11:22:33:44:55:66/><mac value=11-22-33-44-55-66/>) 或 SMBIOS GUID (例如,<guid value={269076F9-4B77-46E1-B03B-CA5003775B88}/>) 來識別目標電腦。 也請注意加密金鑰 (與目標電腦上使用 Bcdedit 所指定或產生的加密金鑰相同) 和電腦名稱。

  4. 將每個目標電腦的詳細資料輸入為設定檔中的個別 <target> 元素,並儲存 Newconfig.xml,然後關閉 [記事本]。

  5. 使用 $result = (Get-Content .\newconfig.xml | Set-SbecActiveConfig); $result 來套用新設定。 輸出應該會傳回 [成功] 欄位為 true。 如果您收到另一個結果,則請參閱本主題的<疑難排解>一節。

您一律可以使用 (Get-SbecActiveConfig).text 來檢查目前的使用中設定。

您可以使用 $result = (Get-Content .\newconfig.xml | Check-SbecConfig); $result 以對設定檔執行驗證檢查。

雖然套用新設定的 Windows PowerShell 命令會自動更新服務,而不需要將其重新啟動,但您一律可以使用下列其中一個命令來自行重新啟動服務:

  • 使用 Windows PowerShell:Restart-Service BootEventCollector

  • 在一般命令提示字元中:sc stop BootEventCollector; sc start BootEventCollector

將 Nano 伺服器設定為目標電腦

Nano 伺服器所提供的最小介面有時很難診斷其問題。 您可以將 Nano 伺服器映像設定為自動參與「安裝與開機事件集合」,以將診斷資料傳送至收集器電腦,而不需要您進一步介入。 若要這麼做,請執行下列步驟:

將 Nano 伺服器設定為目標電腦

  1. 建立基本 Nano 伺服器映像。 如需詳細資料,請參閱開始使用 Nano 伺服器

  2. 如本主題的<設定收集器電腦>小節中所述,設定收集器電腦。

  3. 新增自動記錄工具登錄機碼,以啟用診斷訊息的傳送。 若要這樣做,您可以掛接步驟 1 中所建立的 Nano 伺服器 VHD,並載入登錄區,然後新增特定登錄機碼。 在此範例中,Nano 伺服器映像位於 C:\NanoServer 中;您的路徑可能會不同,因此請據此調整步驟。

    1. 在收集器電腦上,複製 ..\Windows\System32\WindowsPowerShell\v1.0\Modules\BootEventCollector 資料夾,並將它貼入電腦上您要用來修改 Nano 伺服器 VHD 的 ..\Windows\System32\WindowsPowerShell\v1.0\Modules 目錄。

    2. 使用提高的權限來啟動 Windows PowerShell 主控台,並執行 Import-Module BootEventCollector

    3. 更新 Nano 伺服器 VHD 登錄以啟用自動記錄工具。 若要這麼做,請執行 Enable-SbecAutoLogger -Path C:\NanoServer\Workloads\IncludingWorkloads.vhd。 這會新增基本的最典型安裝和開機事件清單;您可以在控制事件追蹤工作階段研究其他項目。

  4. 更新 Nano 伺服器映像中的 BCD 設定以啟用 [事件] 旗標,並設定收集器電腦,以確保診斷事件會傳送至正確的伺服器。 請記下收集器電腦的 IPv4 位址、TCP 連接埠,以及您在收集器 Active.XML 檔案中所設定的加密金鑰 (如本主題中的其他地方所述)。 使用提高的權限以在 Windows PowerShell 主控台中使用此命令:Enable-SbecBcd -Path C:\NanoServer\Workloads\IncludingWorkloads.vhd -CollectorIp 192.168.100.1 -CollectorPort 50000 -Key a.b.c.d

  5. 將 IPv4 位址範圍、特定 IPv4 位址或 Nano 伺服器的 MAC 位址新增至收集器電腦上的 Active.XML 檔案,以更新收集器電腦來接收 Nano 伺服器電腦所傳送的事件 (請參閱本主題的<設定收集器電腦>一節)。

啟動事件收集器服務

將有效的設定檔儲存至收集器電腦並設定目標電腦之後,只要重新啟動目標電腦,就會建立與收集器的連線,並收集事件。

您可以在 Microsoft-Windows-BootEvent-Collector/Admin 下方找到收集器服務本身的記錄檔 (這與服務所收集的安裝和開機資料不同)。 針對事件的圖形化介面,使用 [事件檢視器]。 建立新的檢視;展開 [應用程式及服務記錄檔],並展開 [Microsoft],然後展開 [Windows]。 尋找 BootEvent-Collector,並將其展開,然後尋找 Admin

  • 使用 Windows PowerShell:Get-WinEvent -LogName Microsoft-Windows-BootEvent-Collector/Admin

  • 在一般命令提示字元中:wevtutil qe Microsoft-Windows-BootEvent-Collector/Admin

疑難排解

疑難排解功能的安裝

錯誤 錯誤描述 徵兆 潛在問題
Dism.exe 87 在此內容中,無法辨識 feature-name 選項 如果您拼錯功能名稱,則可能會發生這種情況。 確認您的拼法正確,然後再試一次。 確認您要使用的作業系統版本上提供此功能。 在 Windows PowerShell 中,執行 dism /online /get-features &#124; ?{$_ -match boot}。 如果未傳回相符項目,則您可能正在執行不支援此功能的版本。
Dism.exe 0x800f080c 功能 <name> 未知。 同上

疑難排解收集器

記錄:收集器會將自己的事件記錄為 ETW 提供者 Microsoft-Windows-BootEvent-Collector。 這是您應該尋找收集器問題疑難排解的第一個位置。 您可以在 [應用程式與服務記錄檔] > Microsoft > Windows > BootEvent-Collector > Admin 的 [事件檢視器] 中找到它們,或者您可以使用下列其中一個命令以在命令視窗中讀取它們:

在一般命令提示字元中:wevtutil qe Microsoft-Windows-BootEvent-Collector/Admin

在 Windows PowerShell 提示字元中:Get-WinEvent -LogName Microsoft-Windows-BootEvent-Collector/Admin (您可以附加 -Oldest,以依先列出最舊事件的時間順序來傳回清單)

您可以透過警告、資訊 (預設值)、詳細資訊和偵錯,以從錯誤調整記錄檔中的詳細資料層級。 比資訊更為詳細的層級有助於診斷目標電腦未連線問題,但可能會產生大量資料,因此請小心使用。

您可以在設定檔的 <collector> 元素中設定最小記錄層級。 例如:<collector configVersionMajor=1 minlog=verbose>。

詳細資訊層級會記錄在處理時每個所收到封包的記錄。 偵錯層級也會新增更多處理詳細資料,並傾印所有已接收 ETW 封包的內容。

在偵錯層級,將記錄寫入至檔案可能十分有用,而不是嘗試在一般記錄系統中進行檢視。 若要這麼做,請在設定檔的 <collector> 元素中新增其他元素:

<collector configVersionMajor=1 minlog=debug log=c:\ProgramData\Microsoft\BootEventCollector\Logs\log.txt>

建議的收集器疑難排解方式:

  1. 首先,請確認收集器已收到來自目標的連線 (其只有在目標開始傳送訊息時才會建立檔案)

    Get-SbecForwarding
    

    如果傳回具有與此目標的連線,則問題可能位於自動記錄器設定中。 如果未傳回任何項目,則問題在於要開始使用的 KDNET 連線。 若要診斷 KDNET 連線問題,請嘗試檢查來自兩端 (即來自收集器和來自目標) 的連線。

  2. 若要查看來自收集器的延伸診斷,請將此項目新增至設定檔的 <collector> 元素:<collector ... minlog=verbose> 這將會啟用每個已收到封包的相關訊息。

  3. 檢查是否已收到任何封包。 您可能想要選擇性地以詳細資訊模式將記錄檔直接寫入至檔案,而不是透過 ETW。 若要這麼做,請將此項目新增至設定檔的 <collector> 元素:<collector ... minlog=verbose log=c:\ProgramData\Microsoft\BootEventCollector\Logs\log.txt>

  4. 檢查事件記錄檔中是否有任何有關已收到封包的訊息。 檢查是否已收到任何封包。 如果封包已收到但不正確,則請檢查事件訊息以取得詳細資料。

  5. 從目標端,KDNET 會將一些診斷資訊寫入至登錄。 查看 HKLM\SYSTEM\CurrentControlSet\Services\kdnet 以取得訊息。 KdInitStatus (DWORD) 在成功時將會 = 0,並在錯誤時顯示錯誤碼 KdInitErrorString = 錯誤的說明 (如果未發生錯誤,則也會包含參考訊息)

  6. 在目標上執行 Ipconfig.exe,並檢查其回報的裝置名稱。 如果已正確載入 KDNET,則裝置名稱應該類似 kdnic,而不是原始廠商的卡片名稱。

  7. 檢查是否已設定目標的 DHCP。 KDNET 絕對需要 DHCP。

  8. 確認收集器位於與目標相同的網路上。 如果沒有,則請檢查是否正確設定路由,特別是 DHCP 的預設閘道設定。

連線狀態

您可以檢查目前已建立的連線清單,以及使用 Get-SbecForwarding 來轉送資料的位置資訊。

您也可以使用 Get-SbecHistory 來取得連線中狀態變更的最新歷程記錄。

疑難排解設定新設定

如果您已使用 Windows PowerShell 命令 $result = (Get-Content .\newconfig.xml | Set-SbecActiveConfig); $result 來套用設定,則變數 $result 將會包含部署的相關資訊。 您可以查詢此變數,以從中取得不同的資訊:

使用 $result.ErrorString 來取得錯誤的相關資訊。 如果此處回報任何錯誤,則尚未套用新的設定,而且舊設定未變更。

使用 $result.WarningString 來取得警告。

使用 $result.InfoString 來取得設定詳細資料的相關資訊。

您可以使用 $result | fl * 來取得完整的結果。 或者,如果您不想要將結果儲存至變數,則可以使用 Get-Content .\newconfig.xml | Set-SbecActiveConfig | fl *

疑難排解目標電腦

錯誤 錯誤描述 潛在問題
目標電腦 目標未連線至收集器 目標電腦在設定之後未曾重新啟動。 重新啟動目標電腦。 目標電腦的 BCD 設定不正確。 檢查 [驗證目標電腦設定] 區段中的設定。 視需要更正,然後重新啟動目標電腦。

KDNET/EVENT-NET 驅動程式無法連線至網路介面卡或已連線至錯誤的網路介面卡。 在 Windows PowerShell 中,執行 gwmi Win32_NetworkAdapter,並使用 ServiceName kdnic 來檢查其輸出。 如果選取錯誤的網路介面卡,則請重新執行「指定網路介面卡」中的步驟。 如果網路介面卡根本未出現,則可能是驅動程式不支援您的任何網路介面卡。

另請參閱:上面的建議收集器疑難排解方式,特別是步驟 5 到 8。

收集器 移轉收集器裝載所在的 VM 之後,我再也看不到事件。 請確認收集器電腦的 IP 位址未變更。 若是,則請檢閱「啟用透過傳輸遠端傳送 ETW 事件」。
收集器 不會建立 ETL 檔案。 Get-SbecForwarding 顯示目標已連線且未發生錯誤,但未建立 ETL 檔案。

目標電腦可能尚未傳送任何資料;只有在收到資料時,才會建立 ETL 檔案。

收集器 ETL 檔案中未顯示事件。 目標電腦已傳送事件,但使用 [事件檢視器] 或 [訊息分析器] 來讀取 ETL 檔案時,事件不存在。 事件仍然可以位於緩衝區中。 除非收集到完整 64 KB 緩衝區,或逾時約 10-15 秒且未發生任何新事件,否則不會將事件寫入至 ETL 檔案。 請等候逾時過期,或使用 Save-SbecInstance 來排清緩衝區。

在收集器電腦或是 [事件檢視器] 或 [訊息分析器] 執行所在的電腦上,無法使用事件資訊清單。 在此情況下,收集器可能無法處理事件 (檢查收集器記錄檔),或檢視器可能無法顯示事件。 最好在收集器電腦上安裝所有資訊清單,並先在收集器電腦上安裝更新,再將其安裝在目標電腦上。