Windows PowerShell: トラブルシューティング パック

Windows 7 の新しいトラブルシューティング パックを使用すると、一般的な問題に対応するのに役立ちます。

Don Jones

Windows 7 のトラブルシューティングは、皆さんが想像しているよりも簡単に行えることがあります。Windows 7 には、いくつかの新しいトラブルシューティング パックが同梱されており、この新しい種類のトラブルシューティング パックをサポートするインフラストラクチャが用意されています。

これらのトラブルシューティング パックには、具体的な問題に関する質問に答えるウィザード形式の UI が用意されており、その問題に対応するための対策が提示されます。多くの場合、トラブルシューティング パックでは、推奨する修正を自動的に適用することもできるので、技術的な専門知識がなくても、問題を迅速に解決できます。

Windows PowerShell のコラムで GUI とウィザードについて取り上げるのは、このコラムらしくないと思っている方もいらっしゃるでしょう。心配する必要はありません。いつもどおりです。気がふれたわけではありません。

Windows Server 2008 R2 と Windows 7 の多くの点と同様に、これらのトラブルシューティング パックは、ある意味では Windows PowerShell を基盤としています。トラブルシューティング パックには GUI からアクセスできますが、Windows PowerShell のコマンド ラインからアクセスすることもできます。Windows PowerShell からトラブルシューティング パックにアクセスすると、IT プロフェッショナルである皆さんとユーザーだけでなく、サーバーのためにトラブルシューティングと問題解決を自動化できます。

ただし、この動作は Windows 7 と Windows Server 2008 R2 でのみ利用できる点に注意してください。また、今後リリースされるバージョンの Windows でも使用できる可能性が高いでしょう。

はじめに

まず、シェルに新しい TroubleshootingPack モジュールをインポートします。

Import-Module TroubleshootingPack

このモジュールによって追加されたコマンドを確認するには、次のコマンドを実行します。

Get-Command –module troubleshootingpack

Get-TroubleshootingPack および Invoke-TroubleshootingPack という途方もなく大きな 2 つの新しいコマンドレットが表示されます。

ですが、これらのコマンドレットは、それほど複雑ではありません。ただし、Get-TroubleshootingPack コマンドレットを実行すると、すぐにパスの入力が求められます。ですが、何が求められているのが明確ではありません。お勧めは、ヘルプ (具体的に言うと、サンプル) を確認することです。

Help Get-TroubleshootingPack –example というコマンドを実行すると、このコマンドでは、ディスク上にあるトラブルシューティング パックのパスを指定する必要があることがわかります。既定では、トラブルシューティング パックは C:\Windows\Diagnostics 配下のサブフォルダーにあります。\index サブフォルダーには、利用可能なトラブルシューティング パックの一覧が含まれています。\system フォルダーには、現在インストールされているトラブルシューティング パックが含まれています。

利用できるトラブルシューティング パックは、インストールされている機能やソフトウェアによって異なることがあります。たとえば、独自のトラブルシューティング パックをインストールするアプリケーションがあります。このような場合、トラブルシューティング パックは別のサブフォルダーに配置されることがあります。では、Power トラブルシューティング パックを取得してみましょう。

Get-TroubleshootingPack c:\windows\diagnostics\system\power | fl *

このコマンドを実行すると、トラブルシューティング パックのプロパティ (バージョン、発行者など) が一覧表示されます。このコマンドではたいした処理は行っておらず、サポートされている Windows のバージョンを通知しているに過ぎません (これには、サーバー/クライアント、x86、Amd64、IA64 アーキテクチャのサポート状況も含まれます)。トラブルシューティング パックは、Invoke-TroubleshootingPack コマンドレットにパイプライン処理することで実行できます。

Get-TroubleshootingPack c:\windows\diagnostics\system\power |
Invoke-TroubleshootingPack

パイプライン処理すると、トラブルシューティング パックが対話モードで起動します。GUI のウィザードを使用しなくても、トラブルシューティング パックには、トラブルシューティング プロセスを誘導するわかりやすいテキスト ベースのメニュー システムが用意されています。

自動化

手動ですべてのメニュー オプションを指定することなく、特定のチェックを実行するようにトラブルシューティング パックを構成するには、XML 形式の応答ファイルを指定します。応答ファイルは、Invoke-TroubleshootingPack コマンドレットで –answer パラメーターを使用して指定します。その後、-unattend パラメーターを使用して、トラブルシューティング パックに無人モードで実行することを指示します。

テンプレートとして使用する応答ファイルは、Get-TroubleshootingPack コマンドレットで –answer パラメーターとファイル名を指定して作成できます。

Get-TroubleshootingPack c:\windows\diagnostics\system\power –answer power-answers.xml

指定したトラブルシューティング パックが実行され、通常通りの一連の質問に対する回答が求められます。ここでは、操作を実行するのではなく、結果が XML 形式の応答ファイルに保存されます。このファイルは、Invoke-TroubleshootingPack コマンドレットへの入力として使用できます。

これは一般的な問題に対応する標準的なトラブルシューティング手順を作成するのに打って付けの方法です。このような応答ファイルを、ヘルプ デスクに提供して、事前に定義されたプロセスを迅速かつ効率的に同じように実行できるようにすることが可能です。

リモート処理

トラブルシューティングに手を差し伸べたいと思ったことはありませんか。Windows PowerShell 2.0 には、リモート処理機能が用意されています。この機能は、サーバーとクライアント コンピューターのどちらでも簡単に有効にできます。ユーザーのネットワークが機能していれば、リモート機能は利用可能です。必要な作業は、次のようなコマンドを実行するだけです。

Enter-PSSession –computername WIN7G4T53R
Get-TroubleshootingPack c:\windows\diagnostics\system\aero |
  Invoke-TroubleshootingPack

自分のコンピューターの前に居ながらにして、リモート コンピューターでトラブルシューティング パックを実行できます。リモート処理を行う際のヒントは、次のとおりです。

  • 同僚の IT プロフェッショナルがユーザーのコンピューター名を簡単に調べられる方法を用意します。
  • グループ ポリシーを使用して、すべてのクライアント コンピューターで WinRM と Windows PowerShell のリモート機能を有効にします。
  • トラブルシューティング パックの応答ファイルをファイル サーバーに格納します。トラブルシューティング パックの 2 つのコマンドレットの -answer パラメーターでは UNC パスを指定できるので、ネットワーク ドライブを割り当てる必要はありません。DFSR の UNC パスを使用して、応答ファイルのレプリカを社内のさまざまな場所に格納し、すべてのクライアント コンピューターから応答ファイルに簡単にアクセスできるようにします。

コマンド ラインによる自動化されたリモートのトラブルシューティング

新しいトラブルシューティング パックには、Windows PowerShell から簡単にアクセスできるというメリットに加えて、多くの新機能があります。Aero、オーディオ、デバイス、Internet Explorer、ネットワーク、PCW、パフォーマンス、電源、プリンター、検索、Windows Media、および Widows Update のトラブルシューティングを行えます。ですが、これは今日の時点で利用できるものに過ぎません。

「[次へ] をクリックして、もう一度、[次へ] をクリックして…。すみません、[次へ] を 2 回クリックするのではなく、[戻る] をクリックしてください。…今度は、コンピューターを再起動してください」のような会話を交わしながら電話でトラブルシューティングの手順を伝えるのではなく、ユーザーのコンピューターに対して直接トラブルシューティングのプロセスを実行することができます。リモート デスクトップやリモート アシスタンスなどの、オーバーヘッドの高い技法は必要ありません。

Don Jones

Don Jones は、Concentrated Technology の創設者で、ConcentratedTech.com (英語) で Windows PowerShell や他のテクノロジに関する質問に答えています。また、Nexus.Realtimepublishers.com (英語) の創設者でもあり、このサイトでは、彼の多くの著書が無料でオンライン ブックとして提供されています。

 

関連コンテンツ