ベスト プラクティス アナライザー (BPA) スキャンは、サーバー マネージャーから BPA GUI を使用するか、または Windows PowerShell のコマンドレットを使用して実行することができます。Windows PowerShell の BPA コマンドレットを使用すると、同時に 1 つまたは複数の役割をスキャンできますが、BPA GUI では一度に 1 つの役割しかスキャンできません。BPA では、表示する必要のないスキャン結果を除外または非表示にする設定を行うこともできます。

このトピックの内容

ベスト プラクティス アナライザーで役割のスキャンを実行する

BPA による役割のスキャンは、サーバー マネージャーの BPA GUI または Windows PowerShell コマンドレットを使用して実行できます。

BPA GUI を使用して役割をスキャンする

BPA GUI を使用して 1 つの役割をスキャンするには、次の手順を実行します。

BPA GUI を使用して役割をスキャンするには
  1. サーバー マネージャーを開きます。 サーバー マネージャーを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントし、[サーバー マネージャー] をクリックします。

  2. ツリー ウィンドウで [役割] を開き、BPA を開こうとしている役割を選択します。

  3. 詳細ウィンドウの [概要] セクションを開き、[ベスト プラクティス アナライザー] 領域を開きます。

  4. [この役割をスキャン] をクリックし、スキャンを開始します。

Windows PowerShell コマンドレットを使用して役割をスキャンする

Windows PowerShell コマンドレットを使用して 1 つまたは複数の役割をスキャンするには、次の手順を実行します。この手順を実行するには、Administrators グループのメンバーとしてコンピューターにログオンする必要があります。

ここに示す手順では、BPA のコマンドレットとパラメーターをすべて表示していません。Windows PowerShell での BPA 操作の詳細については、Windows PowerShell セッションで「Get-Help BPACmdlet -full」と入力します。BPACmdlet には、次のいずれかの値を指定します。

  • Get-BPAModel

  • Get-BPAResult

  • Invoke-BPAModel

  • Set-BPAResult

Windows PowerShell コマンドレットを使用して 1 つの役割をスキャンするには
  1. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  2. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  3. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  4. 次の例に示すように、修飾子として BestPracticesModelId not = "null" を指定して Get-WindowsFeature コマンドレットを入力し、BPA スキャンを実行できるすべての役割のモデル ID を検索します。

    Get-WindowsFeature | Where {$_.BestPracticesModelId -ne $null}

  5. 手順 4 の結果で、BPA スキャンを実行する役割のモデル ID を探します。

  6. その役割に対して BPA スキャンを開始するには、次のコマンドを入力します。

    Invoke-BPAModel -BestPracticesModelId ModelID_from_Step4

    指定の役割に対して BPA スキャンを実行できる場合、次の例に示すように Get-WindowsFeature コマンドレットの結果を Invoke-BPAModel コマンドレットにパイプして、スキャンを開始することもできます。

    Get-WindowsFeature Model_Name | Invoke-BPAModel

Windows PowerShell コマンドレットを使用してすべての役割をスキャンするには
  1. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  2. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  3. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  4. BPA スキャンの実行が可能な役割をすべて Invoke-BPAModel コマンドレットにパイプして、スキャンを開始します。

    Get-WindowsFeature | Where {$_.BestPracticesModelId -ne $null} | Invoke-BPAModel

リモート コンピューター上で実行されている役割をスキャンする

このセクションの手順では、Windows Server® 2008 R2 を実行するリモート コンピューターにインストールされている役割に対して BPA スキャンを実行する方法を説明します。

重要

BPA スキャンを実行するリモート コンピューターの Administrators グループのメンバーであることが必要です。

サーバー マネージャーの GUI を使用してリモートの役割をスキャンするには
  1. サーバー マネージャーを使用してリモート コンピューターを管理できるようにするには、「サーバー マネージャーによるリモート管理」の手順を実行し、リモート コンピューターを準備する必要があります。

  2. サーバー マネージャーを開きます。 サーバー マネージャーを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントし、[サーバー マネージャー] をクリックします。

  3. サーバー マネージャーのツリー ウィンドウで、[サーバー マネージャー] ノードを右クリックし、[別のコンピューターへ接続] をクリックします。

  4. [別のコンピューターへ接続] ダイアログ ボックスで [別のコンピューター] を選択し、Windows Server 2008 R2 を実行する別のサーバーの名前または IP アドレスを入力するか参照します。[OK] をクリックします。

  5. サーバー マネージャーのリモート コンピューター用のツリー ウィンドウで、[役割] を開きます。

  6. BPA スキャンを実行する役割に対応する役割のホーム ページを選択します。

  7. 詳細ウィンドウの [概要] セクションを開き、[ベスト プラクティス アナライザー] 領域を展開します。

  8. [ベスト プラクティス アナライザー] 領域で [この役割をスキャン] をクリックします。

  9. スキャンが完了したら、[非準拠]、[準拠]、または [すべて] タブの結果アイテムをダブルクリックしてスキャン結果を表示します。

Windows PowerShell コマンドレットを使用してリモートで役割をスキャンするには
  1. サーバー マネージャーを使用してリモート コンピューターを管理できるようにするには、「サーバー マネージャーによるリモート管理」の手順を実行し、リモート コンピューターを準備する必要があります。

  2. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  3. 次のコマンドを入力し、Enter キーを押します。ComputerName には Windows Server 2008 R2 を実行するリモート コンピューターの名前を、UserName にはリモート コンピューターの Administrators グループのメンバーであるユーザーの名前を指定します。

    Enter-PSSession <コンピューター名> -credential <ユーザー名>

  4. セキュリティで保護されたダイアログ ボックスが表示され、パスワードの入力が求められます。パスワードを入力し、Enter キーを押します。

  5. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  6. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  7. 役割のモデルを Invoke-BPAModel コマンドレットにパイプして BPA スキャンを開始します。次のコマンドを入力し、Enter キーを押します。

    Get-WindowsFeature [Role Name] | Invoke-BpaModel

  8. 次のコマンドを入力し、Enter キーを押します。

    configure-wsman.ps1

  9. 次のコマンドを入力し、Enter キーを押します。

    New-RunSpace

  10. 次のコマンドを入力し、Enter キーを押します。

    Start-PSSession

  11. 役割のモデルを、BPA スキャンを開始するコマンドレット Invoke-BpaModel にパイプして、リモート コンピューター上で実行されている役割の BPA スキャンを開始します。次のコマンドを入力し、Enter キーを押します。

    Get-WindowsFeature [Role Name] | Invoke-BpaModel

  12. BPA スキャンの結果を取得します。次のいずれかのコマンドを入力し、Enter キーを押します。

    • Get-BpaResult [BestPracticeModelID]

    • Get-WindowsFeature [Role Name] | Get-BpaResult

スキャン結果を除外する

頻繁にスキャンを実行する場合は特に、一部のスキャン結果を表示する必要がないことがあるため、表示しないスキャン結果や、スキャンに関連のないスキャン結果を除外することができます。除外したスキャン結果は、BPA GUI の [除外] タブに移動されますが、いつでも再度スキャン結果に含めることができます。

BPA GUI を使用してスキャン結果を除外する

BPA GUI を使用してスキャン結果を除外するには、次の手順を実行します。

この手順を使用できるようになるには、少なくとも 1 回 BPA による役割のスキャンを実行していることが必要です。

BPA GUI を使用してスキャン結果を除外するには
  1. サーバー マネージャーを開きます。 サーバー マネージャーを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントし、[サーバー マネージャー] をクリックします。

  2. ツリー ウィンドウで [役割] を開き、BPA を開こうとしている役割を選択します。

  3. 詳細ウィンドウの [概要] セクションを開き、[ベスト プラクティス アナライザー] 領域を開きます。

  4. [非準拠]、[準拠]、または [すべて] タブから結果を選択し、[結果を除外する] をクリックします。

  5. 同時に複数の結果を除外するには、Ctrl キーを押しながら結果を選択します。

Windows PowerShell コマンドレットを使用してスキャン結果を除外する

Set-BPAResult コマンドレットと -Exclude パラメーターを使用して、スキャン結果を除外できます。BPA GUI の場合と同じく、個々の結果オブジェクトを除外したり、結果のフィールド (カテゴリ、タイトル、重要度など) が指定の値に等しいもの、または結果のフィールドに指定の値が含まれているものをセットとして除外することもできます。たとえば、役割のスキャン結果のセットから、[パフォーマンス] 結果をすべて除外できます。

この手順を使用できるようになるには、少なくとも 1 回 BPA による役割のスキャンを実行していることが必要です。

Windows PowerShell コマンドレットを使用してスキャン結果を除外するには
  1. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  2. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  3. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  4. 役割のスキャン結果から特定の結果を除外するには、次のコマンドレットを入力します。

    Get-BPAResult -BestPracticesModelId Specified Model Id | Where { $_ Field_Name -eq "Value" } | Set-BPAResult -Id Specified Model Id -Exclude $true

    前のコマンドレットは、Specified Model Id によって示されたモデル ID に対応する BPA スキャンの結果アイテムを取得するものです。コマンドの 2 番目の部分では、Get-BPAResult コマンドレットの結果をフィルター処理し、結果フィールドの値が引用符内のテキストに一致するスキャン結果だけを取得します。コマンドレットの最後の部分 (2 つ目のパイプ文字の後) では、コマンドレットの 2 番目の部分でフィルター処理された結果を除外します。

スキャン結果を含める

除外したスキャン結果を表示する場合は、そのスキャン結果を含めることができます。

BPA GUI を使用してスキャン結果を含める

BPA GUI では、[除外] タブの 1 つまたは複数の結果を選択し、[結果を含める] をクリックすることによって、除外したスキャン結果を含めることができます。

BPA GUI を使用してスキャン結果を含めるには
  1. サーバー マネージャーを開きます。 サーバー マネージャーを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントし、[サーバー マネージャー] をクリックします。

  2. ツリー ウィンドウで [役割] を開き、BPA を開こうとしている役割を選択します。

  3. 詳細ウィンドウの [概要] セクションを開き、[ベスト プラクティス アナライザー] 領域を開きます。

  4. [除外] タブから結果を選択し、[結果を含める] をクリックします。

  5. 同時に複数の結果を含めるには、Ctrl キーを押しながら結果を選択します。

Windows PowerShell コマンドレットを使用してスキャン結果を含める

Set-BPAResult コマンドレットと -Exclude パラメーターを使用して、スキャン結果を含めることができます。BPA GUI の場合と同じく、個々の結果オブジェクトを含めたり、結果のフィールド (カテゴリ、タイトル、重要度など) が指定した値に等しいもの、または結果のフィールドに指定の値が含まれているものをセットとして含めることもできます。たとえば、役割のスキャン結果のセットから、前の手順で除外した[パフォーマンス] 結果をすべて含めることができます。

Windows PowerShell コマンドレットを使用してスキャン結果を含めるには
  1. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  2. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  3. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  4. 役割のスキャン結果の特定の結果を組み込むには、次のコマンドレットを入力し、Enter キーを押します。

    Get-BPAResult -BestPracticesModelId Specified Model Id | Where { $_Field_Name-eq "Value" } | Set-BPAResult -Id Specified Model Id -Exclude $false

    前のコマンドレットは、Specified Model Id によって示されたモデルに対応する BPA スキャンの結果アイテムを取得するものです。コマンドレットの 2 番目の部分 (1 つ目のパイプ文字 (|) の後) では、Get-BPAResult コマンドレットの結果をフィルター処理し、結果フィールドの値が引用符内のテキストに一致するスキャン結果だけを取得します。コマンドレットの最後の部分 (2 つ目のパイプ文字の後) では、-Exclude パラメーターを false に設定することによってコマンドレットの 2 番目の部分でフィルター処理された結果を組み込みます。

スキャン結果をアーカイブする

BPA スキャンの結果を HTML ベースのレポートにアーカイブすることができます。

  1. 管理者特権で Windows PowerShell セッションを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] 、[Windows PowerShell] の順にポイントして [Windows PowerShell] ショートカットを右クリックし、[管理者として実行] をクリックします。

  2. サーバー マネージャー モジュールを Windows PowerShell セッションにインポートします。サーバー マネージャー モジュールをインポートするには、次のコマンドを入力し、Enter キーを押します。

    Import-Module ServerManager

  3. BPA モジュールをインポートします。次のコマンドを入力し、Enter キーを押します。

    Import-Module BestPractices

  4. スキャン結果をアーカイブするには、次のコマンドを入力し、Enter キーを押します。

    Get-BPAResult -BestPracticesModelId Specified Model Id | ConvertTo-Html -As List -CssUri $env:windir\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPracticesReportFormat.css > <path to HTML report file>

    前のコマンドレットでは、指定したモデルの最新の BPA スキャン結果を取得し、パス windir\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPracticesReportFormat.css に保存されている標準のカスケード スタイル シートを適用して HTML 形式で保存します。別のカスケード スタイル シートを使用する場合は、そのカスケード スタイル シートのパスを指定します。

  5. HTML 形式でアーカイブされているスキャン結果を表示するには、インターネット ブラウザーを開き、前の手順でアーカイブしたスキャン結果を開きます。

関連項目