クライアント コンピューターは、イメージング中に不明なコンピューター オブジェクトのConfiguration Manager GUID を盗むことができます

この記事では、不明なコンピューター オブジェクトのConfiguration Manager一意識別子 (GUID) が、イメージ化されているクライアント コンピューターによって取得される問題を解決するための情報を提供します。

元の製品バージョン: Configuration Manager (現在のブランチ)
元の KB 番号: 4471061

現象

Configuration Manager現在のブランチ バージョン 1702 には、Microsoft Windows プレインストール環境 (Windows PE) で実行するときに、タスク シーケンス ウィザードで失敗したタスク シーケンスを再試行するために [前へ] ボタンを使用できる新機能が含まれていました。

この機能の詳細については、「 タスク シーケンスが失敗したときに前のページに戻る」を参照してください。

この機能では、次の問題が発生しました。

[前へ] ボタンを選択すると、イメージ化されているクライアント PC は、使用されている不明なコンピューター オブジェクト (x64 不明なコンピューターまたは x86 不明のコンピューター) のConfiguration Manager一意識別子 (GUID) を盗むことができます。

この問題は、現在のブランチバージョン 1702 Configuration Manager更新プログラムのロールアップで修正されました。

この問題は、以降のすべてのバージョンのConfiguration Manager現在のブランチでも修正されています。

ただし、現在のブランチ バージョン 1702 以降Configuration Manager、メディアまたはプレブート実行環境 (PXE) から起動された不明なコンピューターで、対象となるタスク シーケンスが見つからない可能性があります。 このシナリオでは、次のエラー メッセージがSMSTS.logに記録されます。

このコンピューターで使用できるタスク シーケンスはありません。 少なくとも 1 つのタスク シーケンスがこのコンピューターにアドバタイズされていることを確認してください。

指定されていないエラー (エラー: 80004005;ソース: Windows)

この問題は、[実行するタスク シーケンスの選択] ページの [前へ] ボタンが不明なコンピューターで選択されている場合に発生する可能性があります。

この問題は、以降のすべてのバージョンのConfiguration Manager現在のブランチでも修正されています。

現在のブランチ バージョン 1702 で更新プログラムのロールアップConfiguration Manager適用するか、新しいバージョンのConfiguration Managerにアップグレードしても、問題は引き続き発生します。

原因

この問題は、現在のブランチ バージョン 1702 以降Configuration Manager更新プログラムのロールアップConfiguration Manager現在のブランチ バージョンの修正によって、今後のみ問題が発生しなくなるため、引き続き発生する可能性があります。 現在環境内に問題が存在する場合、問題は解決されません。

そのため、バージョン 1702 更新プログラムのロールアップ以降が適用された後でも、現在のブランチ バージョン 1702 以降Configuration Manager引き続き問題が発生する可能性があります。 これは、次の手順を実行しない限り当てはまります。

  • 配布ポイントのブート イメージを更新します。
  • 更新されたイメージを使用してブート メディアを再作成します。
  • GUID を盗んだクライアント PC を正しくクリーンします。

解決方法

警告

不明なコンピューター オブジェクトを再作成して、この問題を解決しないでください。 これにより問題が正しく解決せず、今後問題が再発するのを防ぐわけではありません。 さらに、1 つのサイトに対して複数の不明なコンピューター オブジェクトがある環境で発生する既知の問題があります。 不明なコンピューター オブジェクトを再作成してこの問題を解決しようとした場合は、「 重複する不明なコンピューター オブジェクトを削除する」を参照してください。

この問題を解決し、環境に戻らないようにするには、次の手順に従います。

  1. 環境内のすべてのブート イメージを更新します。 これを行うには、Configuration Manager コンソールでイメージを右クリックし、[配布ポイントの更新] を選択します。 これにより、修正プログラムを含む更新された Configuration Manager バイナリがブート イメージに配置されます。 詳細については、「 ブート イメージを使用して配布ポイントを更新する」を参照してください。

  2. 環境内でメディアを使用する場合は、配布ポイント上のすべてのブート イメージを更新した後、環境内のすべてのメディアを再作成します。 これにより、修正プログラムを含む更新されたブート イメージが、環境内で使用されているメディアに含まれていることが確認されます。

    古いブート イメージを持つメディアが使用されないようにするために、これらのブート イメージの証明書は、Configuration Manager コンソールの [管理>セキュリティ>証明書] ノードでブロックできます。 問題が再発しないようにするには、手順 1 でブート イメージが更新される前に作成されたすべてのメディアのすべての証明書をブロックすることをお勧めします。 メディアが作成された日付が [ 開始日 ] 列に表示されます。

    メディアの作成方法の詳細については、「 タスク シーケンス メディアの作成」を参照してください。

  3. GUID を盗んだクライアント コンピューターは、正しくクリーンアップする必要があります。

GUID を盗んだクライアントを正しくクリーンするには、次の手順に従います。

  1. GUID を取得したコンピューターを特定します。 これを行うには、Unknown Computer オブジェクト (通常は x64 Unknown Computer) のプロパティを調べ、Configuration Manager一意識別子の値を書き留め、Configuration Manager コンソールでクエリを実行して、同じ GUID を持つコンピューター オブジェクトを識別します。 これらの手順はすべてコンソールから実行できます。 これを行うには、SQL Server データベースに移動する必要はありません。

  2. 盗まれた GUID を取得したコンピューターを特定したら、そのコンピューターにリモート接続してから、Configuration Manager クライアントを完全にクリーンします。 これには、単にクライアントをアンインストールする以上のものが含まれます。 代わりに、手順 3 から 7 に従う必要があります。

  3. クライアント コンピューターの ので C:\Windows\CCMSetup、管理者特権の CCMSetup.exe /uninstall コマンド プロンプトでコマンドを実行します。

  4. CCMSetup の実行が完了するまで タスク マネージャー を監視します。 ccmsetup.log ファイルをダブルチェックして、クライアントが正しくアンインストールされたことを確認します。

  5. クライアント コンピューターで、次のディレクトリを削除します。

    • C:\Windows\CCM
    • C:\Windows\CCMSetup

    注:

    これらのディレクトリを完全に削除するには、コンピューターを再起動する必要があります。

  6. クライアント コンピューターで、次のレジストリ キー (存在する場合) を削除します。

    • HKEY_LOCAL_MACHINE\Software\Microsoft\CCM
    • HKEY_LOCAL_MACHINE\Software\Microsoft\CCMSetup
    • HKEY_LOCAL_MACHINE\Software\Microsoft\SMS
  7. クライアント コンピューターで、C:\Windows\SMSCFG.ini ファイルを削除します。

  8. クライアント コンピューターで、コンピューター アカウント[証明書] コンソールの [SMS> 証明書] ノードのすべての証明書を削除します。 これを行うには、次の手順を実行します。

    1. 管理者特権のコマンド プロンプトでを実行 MMC.exe します。

    2. [ファイル] メニューの [スナップインの追加と削除] を選択します。

    3. [ 証明書] を選択し、[ 追加] を選択します。

    4. [ コンピューター アカウント ] を選択し、[ 次へ] を選択します。

    5. [ ローカル コンピューター ] を選択し、[完了] を選択 します

    6. [OK] を選択します。

    7. [証明書] [SMS>証明書]> の順に移動します。

    8. 結果ウィンドウで、[証明書>SMS> 証明書] ノードの下に一覧表示されている各証明書を右クリックし、[削除] を選択します。 すべての証明書が削除されるまで、この手順を繰り返します。

    9. 証明書コンソールを閉じます。

  9. Configuration Manager コンソールから問題のあるコンピューターのレコードを削除します。 ここでも、これを行うためにSQL Server データベースに移動する必要はありません。 レコードは、Configuration Manager コンソールから削除できます。 手順 1 から 8 を完了した後、これを行うことを確認します。 最初にこれを行うと、クライアント レポートが完全にクリーンアップされる前にバックアップされると、レコードが再作成される可能性があります。

  10. 問題のあるクライアント コンピューターにConfiguration Manager クライアントを再インストールします。

重複する不明なコンピューター オブジェクトを削除する

問題を解決しようとしたときに、不明なコンピューター オブジェクトがサイトで再作成された場合は、追加の不明なコンピューター オブジェクトを削除する必要があります。 これを実現するには、影響を受けるサイトの現在の不明なコンピューター オブジェクトをすべて削除し、その後、サイトの新しい Unknown Computer オブジェクトのセットを作成する必要があります。 不明なコンピューター オブジェクトの削除は、SQL Server データベースからのみ完了できます。 Configuration Manager コンソールからは実行できません。

注:

複数のプライマリ サイトがある場合は、複数の不明なコンピューター オブジェクトを持つことができます。 ただし、各サイトには、アーキテクチャごとに 1 つの不明なコンピューター オブジェクトのみを含める必要があります。 たとえば、 x64 Unknown Computer というラベルが付いた x64 オブジェクトは 1 つだけ、x86 不明なコンピューターというラベルが付いている x86 オブジェクトは 1 つだけである必要があります。

追加の不明なコンピューター オブジェクトを削除するには、次の手順に従います。

  1. 組み込みのバックアップ メンテナンス タスクを使用して、Configuration Manager サイトの現在かつ有効なバックアップがあることを確認します。

  2. Configuration Manager コンソールを開きます。 複数のプライマリ サイトがある場合は、中央管理サイトに接続されているConfiguration Manager コンソールを開くようお勧めします。

  3. Configuration Manager コンソールで、[資産とコンプライアンス>の概要>] [デバイス コレクション] に移動します。

  4. [すべての不明なコンピューター] コレクションをダブルクリックします。

  5. 結果ウィンドウで、[サイト コード] 列を選択して、[すべての不明なコンピューター] コレクション内のオブジェクトを並べ替えます。

  6. 個々のサイトに複数 の x64 Unknown Computer オブジェクトか x86 Unknown Computer オブジェクトがあるかどうかに注意してください。

  7. 個々のサイトに複数 の x64 不明なコンピューター オブジェクトまたは x86 不明なコンピューター オブジェクトがある場合は、結果ウィンドウの列を右クリックし、列の一覧に リソース ID を 追加します。

  8. 1 つのサイトの各 x64 Unknown Computer オブジェクトと各 x86 Unknown Computer オブジェクトのリソース ID 値を決定します。 不明なコンピューター オブジェクトの 1 つだけが重複している場合でも、すべての不明なコンピューター オブジェクトのリソース ID を必ず書き留めておきます。

  9. サイトの不明なコンピューター オブジェクトの リソース ID を決定した後、サイトの x64 Unknown Computer オブジェクトと x86 Unknown Computer オブジェクトを削除できます。

  10. SQL Server Management Studioを開き、追加の不明なコンピューター オブジェクトをホストするサイトのデータベースに接続します。

  11. [データベース] ノードを展開し、Configuration Manager データベース (通常はCM_Site_Code) を選択します。

  12. ツール バーの [ 新しいクエリ] を選択します。

  13. ツール バーの [実行 ] ボタンの左側にあるドロップダウン メニューで、正しいデータベースが選択されていることを確認します。

  14. クエリ ウィンドウで、次の SQL クエリを実行します。

    SELECT C.CollectionID, C.SiteID, C.CollectionName, CM.MachineID, CM.Name FROM Collections C JOIN CollectionMembers CM ON C.SiteID = CM.SiteID JOIN UnknownSystem_DISC USD ON USD.ItemKey = CM.MachineID
    

    このクエリでは、すべての不明なコンピューター オブジェクトが属しているすべてのコレクションが表示されます。 このクエリを使用して、Unknown Computer オブジェクトがメンバーであるコレクションを特定します。 不明なコンピューター オブジェクトの新しいセットを作成するときに、適切なコレクションに追加できるように、この情報を書き留めておきます。 [リソース ID][MachineID] 列に一覧表示されます。

  15. クエリ ウィンドウで、次の SQL クエリを実行します。

    SELECT * FROM UnknownSystem_DISC WHERE ItemKey IN ('Resource_ID_1','Resource_ID_2', 'Resource_ID_3')
    

    このクエリでは、 Resource_ID_x 手順 9 で決定した、サイトの各不明なコンピューター オブジェクトのリソース ID です。 たとえば、リソース ID が 2046820354 され 、2046820355されている場合、クエリは次のようになります。

    SELECT * FROM UnknownSystem_DISC WHERE ItemKey IN ('2046820354','2046820355')
    
  16. 手順 15 でクエリによって返されるレコードが正しいことを確認します。 その場合は、次のクエリを実行してレコードを削除します。

    DELETE FROM UnknownSystem_DISC WHERE ItemKey IN ('Resource_ID_1','Resource_ID_2', 'Resource_ID_3')
    

    このクエリでは、 Resource_ID_x 手順 9 で決定した、サイトの各不明なコンピューター オブジェクトのリソース ID です。 たとえば、リソース ID が 2046820354 され 、2046820355されている場合、削除クエリは次のようになります。

    DELETE FROM UnknownSystem_DISC WHERE ItemKey IN ('2046820354', '2046820355')
    

    注:

    影響を受けるサイトの不明なコンピューター オブジェクト (x64 と x86 の両方) は、1 つだけ複製された場合でも、必ず削除してください。

  17. 誤って削除された場合は、「不明なコンピューター オブジェクトを再作成する」セクションに従って、影響を受けるサイトの新しい不明なコンピューター オブジェクトを作成します。

  18. Configuration Manager コンソールに戻り、[資産とコンプライアンス>の概要>] [デバイス コレクション] に移動します。

  19. [すべての不明なコンピューター] コレクションを右クリックし、[メンバーシップの更新] を選択します。

  20. 数分待ってから、[最新の情報に 更新] を選択します。 サイトごとに 1 つの x64 Unknown Computer オブジェクトまたは x86 Unknown Computer オブジェクトのみが存在することを確認します。 オブジェクトが表示されない場合は、さらに数分待ってからやり直してください。

  21. 新しい Unknown Computer オブジェクトが表示されたら、手順 14 で決定した適切なコレクションに追加し直します。

  22. 必要に応じて、すべての追加のプライマリ サイトに対して手順 10 から 21 を繰り返します。

誤って削除された場合に不明なコンピューター オブジェクトを再作成する

何らかの理由で、このプロセスを使用する 1 つのサイトについて、すべての不明なコンピューター オブジェクトが誤って削除された場合は、次の手順を使用して再作成できます。 これらの手順は、サイトに不明なコンピューター オブジェクトがない場合にのみ実行する必要があります。 サイトに 2 つの不明なコンピューター オブジェクトのいずれかが存在する場合は、この記事の「重複する不明なコンピューター オブジェクトを削除する」セクションの手順を使用して、残りの 1 つの 不明なコンピューター オブジェクト を削除し、次の手順に従います。

  1. 不明なコンピューター オブジェクトが存在しないプライマリ サイト サーバーにサインインします。

  2. 管理者特権を持つコマンド プロンプトで、次のコマンドを実行します。

    REG.exe ADD "HKLM\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_DISCOVERY_DATA_MANAGER" /v CreatedUnknownDDR /t REG_DWORD /d 0 /f
    

このレジストリ キーの値が更新されると、その後すぐに不明なコンピューター オブジェクトが自動的に再作成されます。 プライマリ サイト サーバー上のDDM.log ファイル内の不明なコンピューター オブジェクトの作成の進行状況をチェックできます。

不明なコンピューター レコードの再作成を高速化するには、次の手順に従ってスレッドを SMS_DISCOVERY_DATA_MANAGER 再起動します。

  1. 不明なコンピューター オブジェクトが見つからないプライマリ サイトでConfiguration Manager コンソールを開き、[監視>の概要>] [システム状態>コンポーネントの状態] に移動します。

  2. ツール バーで、[スタート] Configuration Manager Service Manager を選択します>。

  3. Configuration Manager Service Managerで、サイト コードの下にあるノードを展開し、[コンポーネント] を選択します

  4. 結果ウィンドウで、[ SMS_DISCOVERY_DATA_MANAGER ] を右クリックし、[クエリ] を選択 します。 スレッドは [実行中] と表示されます。

  5. SMS_DISCOVERY_DATA_MANAGERを右クリックし、[停止] をクリックします。

  6. [SMS_DISCOVERY_DATA_MANAGER] を右クリックし、[クエリ] をクリックします。

    注:

    スレッドは [停止済み] と表示されます。

  7. SMS_DISCOVERY_DATA_MANAGERを右クリックし、[開始] をクリックします。

  8. [SMS_DISCOVERY_DATA_MANAGER] を右クリックし、[クエリ] をクリックします。

    注:

    スレッドは [実行中] と表示されます。

  9. Configuration Manager Service Manager ウィンドウを閉じます。

不明なコンピューター オブジェクトは、すぐに自動的に再作成されます。 このプロセスの進行状況は、プライマリ サイト サーバーのDDM.log ファイルでチェックできます。