Windows Vista 以降のバージョンの OS で Sysprep コマンドを実行すると、システム ボリューム以外のドライブに追加されたアカウントの SID が正しく置き換わらない

現象
Windows Vista、Windows 7、Windows Server 2008 および Windows Server 2008 R2 で Sysprep コマンドを実行すると、OS がインストールされているシステムボリューム (C ドライブ) 以外のボリュームに、ユーザーが任意に作成したアカウント (ビルトイン アカウント以外) を追加した場合、アカウントの SID (Security ID) が置き換わらず、Sysprep コマンドを実行する前の SID が使用されて不明なアカウント (例 : S-1-5-21-1723708682-2546027134-2871304189-1000 など) として表示されます。
回避策
この現象を回避するには、Sysprep コマンドの実行前に、各ボリュームに対するアクセス権の設定をせず、事前に本設定を行うためのバッチ ファイルを作成し、応答ファイル (FirstLogoncommand など) を用いて設定してください。

応答ファイルを使用した例として、以下に sysprep コマンドを実行後に作成したアカウントのアクセス権を各ドライブに付与する手順を説明します。
  1. 応答ファイルで実行するバッチファイルを作成します。(ここでは例として c:\temp\addacl.cmd と保存します。)

    例 : 
    Echo offC:\Windows\System32\net.exe user test test /add                   <<<< ユーザー名 test、パスワード test のアカウントを作成C:\Windows\System32\net.exe localgroup administrators test /add   <<<< test アカウントを Administrators グループに追加Echo y|cacls c:\ /e /g test:f                                     <<<< C ドライブに test アカウントをフルコントロールで権限付与Echo y|cacls d:\ /e /g test:fEcho y|cacls e:\ /e /g test:f
  2. 初回ログオン時に適用するための応答ファイルを作成します。(ここでは例として c:\temp\Unattemd.xml と保存します。)

    例 :
    <?xml version="1.0" encoding="utf-8"?><unattend xmlns="urn:schemas-microsoft-com:unattend">    <settings pass="oobeSystem">        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">            <FirstLogonCommands>                <SynchronousCommand wcm:action="add">                    <CommandLine>C:\temp\addacl.cmd</CommandLine>                    <Order>1</Order>                </SynchronousCommand>            </FirstLogonCommands>        </component>    </settings>    <cpi:offlineImage cpi:source="wim:c:/install.wim#Windows 7 PROFESSIONAL" xmlns:cpi="urn:schemas-microsoft-com:cpi" /></unattend> 
  3. コマンド プロンプトを管理者権限で起動し、C:\Windows\System32\Sysprep フォルダに移動後、以下のコマンドを実行します。

    sysprep.exe /oobe /generalize /reboot /unattend:"c:\temp\Unattend.xml"
補足 : Sysprep は展開用のイメージ作成のために環境固有の設定情報を削除します。このため、展開用のマスターイメージ作成時に行うドライバや各種アプリケーションのインストール、および応答ファイルを用いて適用可能な設定以外の個別の設定については、OOBE 以降の処理過程で適用することを推奨しています。
詳細

問題の再現手順

  1. OS がインストールされている C ドライブ以外のボリュームに対し、任意に作成したアカウント、あるいはグループのアクセス権を追加します。
  2. コマンド プロンプトを管理者権限で起動し、"sysprep.exe /oobe /generalize /reboot" コマンドを実行します。
  3. コンピューターを再起動後、OOBE (Out-Of-Box Experience) 処理を完了し、新しいアカウントでログオンします。
  4. 手順 1 でアクセス権を追加したボリュームのプロパティからアクセス権を確認します。

結果

作成したアカウント名、グループ名が表示されず、不明なアカウントとして SID が表示されます。
プロパティ

文書番号:2281600 - 最終更新日: 10/04/2016 14:19:00 - リビジョン: 4.0

Windows Vista Business, Windows Vista Enterprise, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Enterprise, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Starter, Windows 7 Ultimate, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Standard

  • kbharmony kbexpertiseinter kbexpertiseadvanced kbtshoot kbprb KB2281600
フィードバック