System Center Configuration Manager クライアントがインストールされた PC でマスター イメージを再取得する手順

皆様、こんにちは。System Center Configuration Manager サポート チームです。

今回は System Center Configuration Manager クライアントがインストールされた PC でマスター イメージを再取得する手順をご紹介します。本手順を利用いただきますと、クライアント エージェントをアンインストールすることなく、再イメージングが可能です。

利用シナリオとしては VDI クライアントやイメージ展開を他社製品で行う場合に SCCM エージェントをインストールしておきたい状況を想定しております。

同じ参照コンピューターで、再度マスター イメージを取得するシナリオは度々発生するかと思いますが、System Center Configuration Manager クライアントが動作していると、端末に一意の情報が保持されておりますので、それを削除した上で、マスター イメージを再取得する必要があります。本手順を実施していない場合は、展開後に一意の情報が重複して、正常に管理することができなくなりますので、ご留意くださいますようお願い申し上げます。

 

対象製品

System Center 2012 Configuration Manager

System Center 2012 R2 Configuration Manager

System Center Configuration Manager Current Branch / LTSB

 

手順

次の手順を実施して、サイト コードをクリアし、一意の情報を削除してから、マスター イメージを採取します。

 

1. SMS Agent Host サービスの停止とスタート アップの種類の変更
2. サイト コードのクリアと信頼キーの削除 (VB スクリプトで実施)
3. 自己署名証明書の削除
4. SMSCFG.ini の削除
5. SMS Agent Host サービスのスタート アップの種類の変更
6. マスターイメージの採取

 

各手順の詳細は以下の通りです。

 

1. SMS Agent Host サービスの停止とスタート アップの種類の変更

[管理ツール] - [サービス] を起動し、SMS Agent Host サービスを停止します。また、マスター イメージ採取前に自動でサービスが起動しないように、右クリックしてプロパティを開き、スタートアップの種類を [手動] に変更します。

 

2. サイト コードのクリアと信頼キーの削除

以下の内容をサンプルとしてスクリプトを作成し、vbs ファイルとして保存します。本スクリプトを実行することで、サイト コードがクリアされて、信頼キーも削除されます。

----- サンプルここから -----
dim oSMSClient
dim objLocator
dim objService

set objLocator = CreateObject("WbemScripting.SWbemLocator")
set objService = objLocator.ConnectServer(".", "root\ccm\locationservices")
set keys = objService.ExecQuery("select * from TrustedRootKey")

for each k in keys
k.delete_()
next

set oSMSClient = CreateObject ("Microsoft.SMS.Client")

if Err.Number <> 0 then
wscript.echo "Could not create SMS Client Object - quitting"
else
oSMSClient.RemoveAssignedSites
oSMSClient.EnableAutoAssignment(True)
set oSMSClient = nothing
end if
----- サンプルここから -----

スクリプトを作成した後、参照コンピューターでコマンド プロンプトを "管理者として実行" にて起動し、以下のコマンドを実行します。

※) C:\Temp にスクリプト ClearSiteCodeAndDeleteTRK.vbs を保存した場合
cd C:\Temp
cscript ClearSiteCodeAndDeleteTRK.vbs

 

3. 自己署名証明書の削除

以下の手順で自己署名証明書を削除します。

1) コマンド プロンプトを開き、"mmc" を入力して実行します。
2) [ファイル] - [スナップインの追加と削除] をクリックします。
3) 左ペインから [証明書] をクリックして [追加] ボタンをクリックします。
4) "コンピューター アカウント" にチェックを入れて、[次へ] をクリックします。
5) "ローカル コンピューター" にチェックし、[完了] をクリックします。
6) 右ペインに "証明書(ローカル コンピューター)" が追加されていることを確認し [OK] をクリックします。
7) 左ペインにて、[証明書] - [SMS] - [証明書] を選択します。
8) 中央ペインに表示された 2 つの "SMS" 証明書に対して、それぞれ右クリックして [削除] を選択します。
「選択された証明書を永久的に削除しますか?」というメッセージが表示されますので、[はい] を選択します。
9) [ファイル] - [終了] をクリックします。「コンソールの設定を コンソール1 に保存しますか?」というメッセージが表示されますので、[いいえ] を選択して、mmc を終了します。

 

※ PKI 証明書を利用している環境(HTTPS 構成)の場合

PKI 証明書を利用している場合は同様に以下の手順で PKI 証明書を削除します。

1) コマンド プロンプトを開き、"mmc" を入力して実行します。
2) [ファイル] - [スナップインの追加と削除] をクリックします。
3) 左ペインから [証明書] をクリックして [追加] ボタンをクリックします。
4) "コンピューター アカウント" にチェックを入れて、[次へ] をクリックします。
5) "ローカル コンピューター" にチェックし、[完了] をクリックします。
6) 右ペインに "証明書(ローカル コンピューター)" が追加されていることを確認し [OK] をクリックします。
7) 左ペインにて、[証明書] - [個人] - [証明書] を選択します。カスタム ストアを利用している場合は、該当箇所を選択してください。
8) 中央ペインに表示された SCCM の HTTPS 接続用クライアント証明書を右クリックして [削除] を選択します。
「選択された証明書を永久的に削除しますか?」というメッセージが表示されますので、[はい] を選択します。
9) [ファイル] - [終了] をクリックします。「コンソールの設定を コンソール1 に保存しますか?」というメッセージが表示されますので、[いいえ] を選択して、mmc を終了します。

 

4. SMSCFG.ini の削除

Configuration Manager 一意の識別子の情報が格納されている SMSCFG.ini を削除します。
ファイルは、以下の場所に存在します。

%windir%\SMSCFG.ini

 

5. SMS Agent Host サービスのスタート アップの種類の変更

[管理ツール] - [サービス] を起動し、SMS Agent Host サービスを右クリックしてプロパティを開き、スタートアップの種類を [自動 (遅延開始)] に変更します。SMS Agent Host サービスを開始しないように注意してください。

 

6. マスターイメージの採取

sysprep /generalize が実行された参照コンピューターをキャプチャして、マスター イメージを採取します。(System Center Configuration Manager のキャプチャー メディアを使用すれば、sysprep /generalize は内部的に自動実行されます。かつ上記情報の削除も内部的に実行されますのでキャプチャしたイメージを System Center Configuration Manager から展開する際には今回の記事でご案内した手順ではなくぜひ System Center Configuration Manager のキャプチャー メディアをご利用ください。)