CollectAllLogsの目的は、単一のデバイスまたはデバイスの集合から、非常に広範なログのリスト、レジストリ設定、その他のさまざまな診断データを迅速かつ簡単に収集することです。 CollectAllLogsスクリプトは、Microsoft Endpoint Configuration Manager (MECM/SCCM/ConfigMgr) のスクリプト実行機能を使用してクライアントにプッシュされるように設計されています。 CollectAllLogs 、クラウド管理ゲートウェイ (CMG) 経由でリモート接続されているクライアントでも機能します (PKI のみ。クライアントは収集はしますがアップロードはしないため、拡張 HTTP はまだサポートされていません)。スクリプトの実行機能を使用してCollectAllLogsスクリプトがクライアントにプッシュされると、クライアントは収集、圧縮し、圧縮 ZIP ファイル (BITS を使用) をクライアントに現在割り当てられている管理ポイントにアップロードします。最後に、ステータス メッセージが送信され、サイト サーバー上でステータス フィルター ルールがトリガーされ、圧縮 ZIP ファイルが管理ポイントから構成可能なローカル パスまたは選択した UNC 共有に移動されます。
注: このスクリプトは、(CAS を使用した) 階層内でまだ完全にテストされていません。 CAS をお持ちの場合は、MoveLogToPrimary.ps1 の 73 行目を編集して、ログの保存場所を反映する必要があります。階層内でソリューションをテストする場合は、フィードバックを提供してください。
現在収集できるログ、レジストリ設定、診断データは次のとおりです。
| MECM | Windowsアップデート | ベースOS | MDM | Office365 | サードパーティ |
|---|---|---|---|---|---|
| MECM クライアントのログ | Windows Update エージェントのバージョン、インストール ソース、インストール履歴、レジストリと GPO 設定 | Windowsのセットアップ | MDM 診断ツール (プロビジョニング、登録、自動操縦) の出力 | OneDrive ログ | Symantec Antivirus の除外対象 |
| MECM クライアントのレジストリ キー | エッジアップデート | PNP デバイスとドライバー | MDMイベントログ | ||
| モバイルクライアント.TCF | CBS.LOG | フィルタードライバー | AAD デバイスのプロビジョニング | ||
| CCMストア.SDF | イベントログ (システム/アプリケーション/Bitlocker) | Intune ポリシー、登録ステータス、および管理拡張機能のログ | |||
| プロセスとサービスの実行 | |||||
| 言語パック | |||||
| 配信の最適化 | |||||
| Windows のサービスと SetupDiag ログ | |||||
| DISM.LOG | |||||
| WaaS | |||||
| レジストリ.POLの破損1 | |||||
| Windows Defender のログ、設定、診断データ2 | |||||
| ディスク/ボリューム情報 | |||||
| Windows セットアップのレジストリ値 | |||||
| BCDストア | |||||
1 REGISTRY.POL が破損すると、解決されるまで GPO とソフトウェア アップデートが無期限に失敗することが知られています。 Registry.POL の破損は通常、ウイルス対策の除外によって引き起こされますが、除外されません。
2詳細については、「Microsoft Defender AV 診断データの収集」を参照してください。
まず、 CollectAllLogs .ps1 の 24 ~ 37 行目を確認して、不要なログがあるかどうかを確認します。存在する場合は、「いいえ」に設定して、収集が行われないようにします。それ以外の場合は、Symantec Antivirus の除外を除き、デフォルトですべてが「はい」になります。
ファイルMicrosoft.ConfigurationManagement.Messaging.dllを、< ConfigMgr Installation Dir AdminConsolebin から各管理ポイントの < ConfigMgr Installation Dir >CCMIncomingMessagingDll にコピーします。 CCMIncoming は各 MP にすでに存在しているはずですが、MessagingDll ディレクトリを作成する必要があります。
ソフトウェア ライブラリで、スクリプトCollectAllLogs .ps1の内容を使用して新しい実行スクリプトを作成し、承認します。独自のスクリプトを承認できない場合は、階層設定に承認できるチェックボックスがあります。この構成の変更はビジネス上の決定である必要があります。ベスト プラクティスとして、あなたが完璧主義であることが証明されている場合、または真のラボを持っている場合にのみ、独自のスクリプトを承認してください。
MoveLogtoPrimary.ps1スクリプトをプライマリ サイト サーバーの選択したディレクトリに配置します (今後は < ScriptsDir > と呼ばれます)。
ログ用のディレクトリを作成します。今後は < CollectAllLogs Dir > と呼ばれます。 < CollectAllLogs Dir > は、サイト サーバー上のローカル パス、またはリモート サーバー上の UNC パスのいずれかです。唯一の要件は、サイト サーバーのコンピューター アカウントがこの宛先共有に対する作成権限を持っている必要があることです。
ConfigMgr 管理コンソールで、「管理」、「サイト」に移動し、サイトを選択し、「ステータス フィルター ルール」をクリックして「作成」をクリックします。
[全般]タブで、メッセージ ID 1234のステータス フィルター ルールを作成します。
[アクション] タブで、 [プログラムを実行する]チェックボックスをオンにします。
次のコマンド ラインをプログラムの空白に入力し、 [OK]をクリックします。
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File "< ScriptsDir >MoveLogtoPrimary.ps1" -InsString1 %msgis01 -InsString2 %msgis02 -LogFolder < CollectAllLogs Dir>
MECM コンソールで単一のデバイスまたはデバイスのコレクションを右クリックします。ソフトウェア ライブラリで、 [スクリプトの実行]をクリックします。
手順 2 で作成した「すべてのログを収集」スクリプトを選択し、 「次へ」を 2 回クリックします。
約 5 分後に、要求されたすべてのファイル、イベント ログ、レジストリ エクスポート、およびシステム情報を含む < ComputerNameMM-DD-YYYYHHMMS>.zipという名前の .zip ファイルの < CollectAllLogs Dir > に使用されるパスを監視します。私の研究室では、これらの zip ファイルのサイズは、収集されたデータ、ログ履歴保持設定、およびイベントログ設定に応じて 12 MB から 60 MB の範囲になります。これを小規模なコレクション (クライアント 10 個未満) でテストして、影響がある場合にエンドユーザーとネットワーク監視者がどのような影響を受けるかを判断することをお勧めします。
収集するログやその他の診断に関する追加のアイデアがある場合は、お気軽にこの素晴らしいユーティリティに貢献してください。
CollectAllLogsスクリプトは、Microsoft カスタマー エンジニアの Russ Rimmerman と David Anderson によって開発されました。 CollectAllLogs 、天才的で大胆不敵なMECM の第一人者である David Anderson (PFE/CE) によって提供されたオリジナルのアイデアと完全に機能する開始スクリプトがなければ存在しませんでした。 David は Powershell スクリプトを熟知していたので、このユーティリティの完全な構築と初期基盤が容易になりました。
MPDetection*.log には、製品、エンジン、サービス、定義のバージョンの更新と更新時間が表示されます。 MSSupportFiles.cab には、Windows Defender の正常性とアクティビティを分析するための詳細なファイルが大量に含まれています。