SharePoint Server で診断ログを表示する
適用対象:2016 2019 Subscription Edition SharePoint in Microsoft 365
ファームの問題のトラブルシューティングを行うには、SharePoint Server の統合ログ サービス (ULS) ログのデータを使用します。 ULS ログは、ログ設定に応じてさまざまなレベルでデータを収集できます。 PowerShell を使用してデータをフィルター処理し、さまざまな方法で表示し、データを Excel 2016 にフィルター処理、並べ替え、グループ化、エクスポートできるデータ グリッドにデータを出力します。
PowerShell を使用してログ イベントを表示およびフィルター処理する
PowerShell を使用すると、ログ イベントの表示とフィルター処理を行えます。 SharePoint サーバーの全体管理 Web サイトでは、ログ イベントの表示やフィルター処理は行えません。
PowerShell を使用してログ イベントを表示およびフィルター処理するには
- 次のメンバーシップがあることを確認します。
SQL Server インスタンスにおける securityadmin 固定サーバー ロール。
更新するすべてのデータベースに対する db_owner 固定データベース ロール。
PowerShell コマンドレットを実行するサーバーでの Administrators グループ。
管理者は Add-SPShellAdmin コマンドレットを使用して、権限を付与できます。
注:
アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。
SharePoint 管理シェルに移動します。
PowerShell コマンド プロンプトで、次のコマンドを入力します。
- すべてのトレース イベント:
Get-SPLogEvent
- レベル別:
Get-SPLogEvent | Where-Object {$_.Level -eq "Information" }
- エリア別:
Get-SPLogEvent | Where-Object {$_.Area -eq <Area>}
ここで、<Area> は Area プロパティの値です。
- カテゴリ別:
Get-SPLogEvent | Where-Object {$_.Category -eq <Category>
ここで、<Category> は Category プロパティの値です。
- イベント ID 別:
Get-SPLogEvent | Where-Object {$_.EventID -eq <EventID>}
ここで <EventID> は EventID プロパティの値です。
- メッセージ テキスト別:
Get-SPLogEvent | Where-Object {$_.Message -like "<string>"}
ここで、<string> はイベント メッセージで見つかった文字列です。
- プロセス別:
Get-SPLogEvent | Where-Object {$_.Process -like "<Process>"}
ここで、<Process> は Process プロパティの値です。
既定では、このコマンドは既定の ULS ログ フォルダーからデータを取得します。 ネットワーク上の共有フォルダーにあるトレース イベントの表示とフィルター処理を行うには、 Get-SPLogEvent コマンドレットの Directory パラメーターを使用してください。
各トレース イベントの詳細を表示するには、コマンドの末尾に Format-List を使用します。 たとえば、次のように使用します。
Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Format-List
詳細については、「Get-SPLogEvent」を参照してください。
PowerShell Out-GridView コマンドレットを使用して診断ログを表示およびエクスポートする
PowerShell には、フィルター可能で検索可能なデータ グリッド内の PowerShell コマンドの結果として得られる表形式データを別のウィンドウに表示する、強力で使いやすい機能が用意されています。 このグリッドを使用して、ログ イベントを表示したり、データに対して次の操作を行ったりできます。
データを任意の列で並べ替える。
データをグループごとに表示する。
データをレベル、エリア、カテゴリ、メッセージ、イベント ID、またはタイムスタンプでフィルター処理する。
データから文字列を検索する。
未加工のデータ、並べ替え後のデータ、またはフィルター処理後のデータをスプレッドシートにエクスポートする。
注:
Out-GridView コマンドレットは、Format 動詞を使用するコマンドレットと併用できません。
Out-GridView コマンドレットはオブジェクトを受け取りますが、Format 動詞を使用するコマンドレットは書式付きテキストのみを返します。
>結果をフィルター処理して Out-GridView コマンドレットに渡す Where-Object コマンドレットを使用して、データのサブセットを表示できます。 たとえば、「 Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Out-GridView
」のように入力します。
> グリッドに数百行を超える行が表示されている場合、特に複雑なフィルター処理を実行している場合は、実行速度が低下する可能性があります。 パフォーマンスを向上させるには、データを Excel 2016 にエクスポートします。
Windows PowerShell を使用して診断ログの表示とフィルター処理を行うには
- 次のメンバーシップがあることを確認します。
SQL Server インスタンスにおける securityadmin 固定サーバー ロール。
更新するすべてのデータベースに対する db_owner 固定データベース ロール。
PowerShell コマンドレットを実行するサーバーでの Administrators グループ。
管理者は Add-SPShellAdmin コマンドレットを使用して、権限を付与できます。
注:
アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。
SharePoint 管理シェルに移動します。
PowerShell コマンド プロンプトで、次のコマンドを入力します。
Get-SPLogEvent | Out-GridView
列を並べ替えるには、列見出しをクリックします。
特定の文字列を検索するには、その文字列を [ フィルター] ボックスに入力します。 検索はすべての列と行に対して行われます。 その検索をクリアするには、[ X] をクリックします。
単一の条件のみでデータをフィルター処理するには、[ 検索] ボックスに「<プロパティ名>:<値>」の形式で入力します。 たとえば、SharePoint Foundation 2013で発生したすべてのログ エントリを検索するには、「Area:SharePoint Foundation」と入力します。 フィルターをクリアするには、[ X] をクリックします。
複数の条件を使用するか、"次の値を含む"、"次の値で始まる"、"次の値で終わる"、またはその他の方法を使用して、データをフィルター処理するには、次の手順を実行します。
[ 抽出条件の追加] ボタンをクリックします。
フィルター処理するプロパティのチェック ボックスをオンにし、[ 追加] をクリックします。
[ 次の値を含む] をクリックして、別のフィルター方法に変更します。 使用できる方法は、[ 次の値を含む]、[ 次の値を含まない]、[ 次の文字列で始まる]、[ 次の値と等しい]、[ 次の値と等しくない]、[ 次の値で終わる]、[ 空である]、および [ 空でない] です。
テキスト ボックスに値を入力します。
手順 "b" で選択したプロパティごとに、手順 "c" と手順 "d" を繰り返します。
フィルター条件をすべて指定したら、検索条件に合うデータが表示されます。
特定のフィルターをクリアするには、[ X] ボタンをクリックします。
すべてのフィルターをクリアするには、クエリ ビューを折りたたみ、[ すべてクリア] ボタンをクリックします。
グリッド データをスプレッドシートにエクスポートするには
エクスポートする行を選択します。 複数の行を選択するには、Shift キーを押しながらドラッグして行のブロックを選択するか、Ctrl キーを押しながらクリックして特定の行を選択するか、Ctrl + A キーを押してすべての行を選択します。
データをスプレッドシートにコピーする前に、結果に対してフィルター処理と並べ替えを行うこともできます。 データの並べ替えまたはフィルター処理を行った場合、表示可能なデータのみがコピーされます。
Ctrl + C キーを使用して、選択した行をコピーします。
スプレッドシート ブック ページを開き、Ctrl + V キーを使用して、コピーした行をそこに貼り付けます。
詳細については、「 Out-GridView 」および「 Out-GridView の再検討」を参照してください。