在 SharePoint Server 中檢視診斷記錄

 

**適用版本:**SharePoint Server 2016

**上次修改主題的時間:**2017-08-08

**摘要:**學習使用 Windows PowerShell 檢視和篩選記錄事件,以及使用 Out-GridView Cmdlet 檢視和匯出診斷記錄。

您可以在 SharePoint Server 中,使用統一登入服務 (ULS) 記錄檔中的資料來針對伺服器陣列中的問題進行移難排解。依據記錄設定,ULS 記錄檔可以收集各種不同層級的資料。使用 PowerShell 篩選資料、以各種方式顯示資料,並可將資料輸出至資料格,然後用來將資料篩選、排序、分組以及匯出至 Excel 2016。

本文內容:

本文內容

  • 使用 Windows PowerShell 檢視和篩選記錄事件

  • 使用 Windows PowerShell Out-GridView Cmdlet 檢視和匯出診斷記錄

使用 Windows PowerShell 檢視及篩選記錄事件

您可以使用 PowerShell 檢視及篩選記錄事件,但不可使用 SharePoint 管理中心網站檢視或篩選記錄事件。

使用 Windows PowerShell 檢視及篩選記錄事件

  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 來授與權限。

    注意

    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  2. 移至 [SharePoint 管理命令介面]。

  3. 在 PowerShell 命令提示字元處,輸入下列命令:

    • 所有追蹤事件:

      Get-SPLogEvent
      
    • 依層級:

      Get-SPLogEvent | Where-Object {$_.Level -eq "Information" }
      
    • 依區域:

      Get-SPLogEvent | Where-Object {$_.Area -eq <Area>}
      

      其中,<區域>Area 屬性的值。

    • 依類別:

      Get-SPLogEvent | Where-Object {$_.Category -eq <Category>
      

      其中,<類別>Category 屬性的值。

    • 依事件識別碼:

      Get-SPLogEvent | Where-Object {$_.EventID -eq <EventID>}
      

      其中,<事件識別碼>EventID 屬性的值。

    • 依訊息文字:

      Get-SPLogEvent | Where-Object {$_.Message -like "<string>"}
      

      其中,<字串> 是在事件訊息中找到的字串。

    • 依程序:

      Get-SPLogEvent | Where-Object {$_.Process -like "<Process>"}
      

      其中,<程序>Process 屬性的值。

    根據預設,該命令會從預設 ULS 記錄資料夾中擷取資料。若要檢視及篩選網路上共用資料夾中的追蹤事件,請使用 Get-SPLogEvent Cmdlet 的 Directory 參數。

    若要檢視各追蹤事件的詳細資料,請在命令結尾使用 Format-List Cmdlet。例如,

    Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Format-List
    

如需詳細資訊,請參閱<Get-SPLogEvent>。

使用 Windows PowerShell Out-GridView Cmdlet 檢視及匯出診斷記錄

PowerShell 提供強大且便於使用的功能,在個別的視窗中以可篩選、可搜尋的資料格,顯示 Microsoft PowerShell 命令所產生的表格式資料。您可以使用此資料格檢視記錄事件,並可對資料執行下列作業:

  • 依任一欄排序資料。

  • 以群組檢視資料。

  • 依層級、區域、類別、訊息、事件識別碼或時間戳記篩選資料。

  • 搜尋資料中的任何字串。

  • 將列或經排序或篩選的資料匯出至試算表。

注意

Out-GridView Cmdlet 不能與使用 Format 動詞的 Cmdlet 搭配使用。Out-GridView Cmdlet 會接收物件,而使用 Format 動詞的 Cmdlet 只會傳回格式化的文字。
您可使用 Where-Object Cmdlet 檢視資料的子集,同時篩選結果並傳遞至 Out-GridView Cmdlet。例如,Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Out-GridView
如果資料格顯示數百列以上,可能會執行得很慢,尤其是在執行複雜的篩選作業時。若要加速效能,請將資料匯出至 Excel 2016。

使用 Windows PowerShell 檢視及篩選診斷記錄

  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 來授與權限。

    注意

    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  2. 移至 [SharePoint 管理命令介面]。

  3. 在 PowerShell 命令提示字元處,輸入下列命令:

    Get-SPLogEvent | Out-GridView
    
  4. 若要排序欄,請按一下欄標題。

  5. 若要搜尋特定字串,請在 [篩選] 方塊中輸入字串。將會對所有欄和列進行搜尋。若要清除搜尋,請按一下 [X]。

  6. 若只要依據一個準則篩選資料,請在 [搜尋] 方塊中輸入:<屬性名稱>:<值>。例如,若要搜尋 SharePoint Foundation 2013 引發的所有記錄項目,請輸入:Area:SharePoint Foundation。若要清除篩選,請按一下 [X]。

  7. 若要使用多個準則,或是使用具有「包含、開始於、結束於」或其他方法的準則篩選資料:

    1. 按一下 [新增準則] 按鈕。

    2. 按一下您要篩選之屬性的核取方塊,然後按一下 [新增]。

    3. 按一下 [包含] 變更為不同的篩選方法。可用的方法包括 [包含]、[不包含]、[開始於]、[等於]、[不等於]、[結束於]、[是空的] 及 [不是空的]。

    4. 在文字方塊中輸入值。

    5. 針對您在步驟 “b” 中選取的每個屬性,重複步驟 “c” 及 “d”。

    6. 指定所有篩選準則之後,隨即顯示符合準則的資料。

    7. 若要清除特定篩選,請按一下 [X] 按鈕。

    8. 若要清除所有篩選,請摺疊查詢檢視,然後按一下 [全部清除] 按鈕。

將資料格的資料匯出至試算表

  1. 選取您要匯出的列。若要選取多列,請按住 Shift 鍵再拖曳以選取一個區塊的列、按住 Ctrl 鍵再按一下滑鼠以選取特定列,或使用 Ctrl+A 以選取所有列。

    您也可以先篩選及排序結果,再將資料複製到試算表中。當您排序或篩選資料時,只會複製所產生之可檢視的資料。

  2. 使用 Ctrl+C 複製所選列。

  3. 開啟試算表活頁簿頁面,然後使用 Ctrl+V 貼入複製的列。

如需詳細資訊,請參閱<Out-GridView>(https://go.microsoft.com/fwlink/p/?LinkId=181248) 和<Out-GridView Revisited>(https://go.microsoft.com/fwlink/p/?LinkId=181249)。