none
【BDD2007】Windows System Image Manager での Unattend.xml 編集について RRS feed

  • 質問

  • "Deployment Workbench"(以後 Workbench)にてビルドを作成し、ビルドのプロパティからWinSIMを起動して  Unattend.xml の編集を行おうとしています。

     

    ビルドのプロパティからWinSIMを起動して編集を行った後に保存をする際にエラーが出てしまいます。

    ひとまず、WinSIMを終了してから、同じ手順でWinSIMを起動すると Unattend.xml がないというエラーが出てしまいます。

    もちろん Distribution\Control\ビルドIDフォルダ には Unattend.xml が存在します。

     

    そもそも、ビルドを作成する段階でもエラーが出てしまっています。

    それが問題だと思っているのですが、なぜエラーが出るようになったのかがわかりません。

     

    今までビルド作成に成功していたWIMイメージとの違いは

    HALとカスタマイズの有無です。

    まず、成功しているWIMイメージはHAL が acpipic でカスタマイズもユーザーの作成程度でした。

    失敗しているWIMイメージは HAL が acpiapic になってました。カスタマイズもOfficeXPをはじめフリーソフトなどをインストールしたイメージです。

     

    カスタマイズの有無でエラーが出るとは考えにくいのでHALの値を疑っています。

    BDDにて展開するWIMイメージのHALはacpipic でないといけないのでしょうか?

    それとも他に問題があるのでしょうか?

     

    ご存知の方がいらっしゃいましたらご教授願います。

    お願いいたします。

    2007年8月28日 5:43

回答

  • 経過報告

    http://www.msfn.org/board/index.php?showtopic=101071&st=0
    を参照しながら、自己解決することができました。
    ありがとうございました。

    今回の事象と対策をまとめさせていただきます。

    【事象】
     1. カスタマイズしたVistaのWIMイメージを抽出する。
     2. 抽出したWIMイメージをBDDに登録する。
     3. BDDにてBuildを作成する。
       (作成中にエラーが発生。Build、Unattend.xml ファイルは作成される。)
     4. Windows SIM にて Unattend.xml を編集し、保存する。
       (保存中にエラーが発生。編集情報は Unattend.xml に反映されている。)

     1でのカスタマイズはソフトウェアのインストール等ではなくパッチに起因していると思われる。

     エラーメッセージは共に、
     「Collection was modified; enumeration operation may not execute」
     というものでした。よって、3と4でのエラーは同じ原因によって起こっている思われます。
     予測ですが、BDD にて Build を生成するとWindows SIM を使用して Unattend.xml ファイルを生成し、
     保存を行っており、その保存時にエラーを起こしてるのではないかと推測しています。


    【原因】
     Windows SIM のわかっている一連の動きは以下の通りです。
      1. Windows SIM にて初めて Unattend.xml ファイルを作成する時は、
        使用するWIMイメージからカタログを生成する。
      2. カタログから [Conponents] を作成する。
        (カスタマイズを行ったWIMイメージから [Conponents] を作成する際に、
        バージョンが違う2つの [Conponents] を作成してしまう。)
      3. [Conponents] を参照して Unattend.xml ファイルを生成する。
        (この時、古いバージョンと思われる [Conponents] を使用して生成している。これがバグだと思われる。)
      4. 保存をする。
      5. 保存を行った後に Unattend.xml ファイルとカタログとの整合性チェックを行いエラーになっている。
        (これは [ツール] - [応報ファイルの検証] とはまた違うようです。)

     おそらくは以下2つのバグが原因だと思われます。
     ・バージョン違いの [Conponents] を複数個作成してしまう。
     ・複数個のバージョンの内、古いバージョンの [Conponents] から Unattend.xml ファイルを作成している。

     Microsoftの対応に期待するしかないですね・・・


    【対処法】
     現在、複数の [Conponents] の存在がわかっているのは、
      ・x86_Microsoft-Windows-IE-InternetExplorer__neutral
     です。

     このエントリーを Unattend.xml から削除し、
     正しいバージョン番号を再登録することで解決できます。
     (どれが正しいバージョンかはTPOによって違う可能性があります。)

     また、この [x86_Microsoft-Windows-IE-InternetExplorer__neutral] が原因の場合は、
     Unattend.xml ファイルをテキストエディタ等で開き、
      <component name="Microsoft-Windows-IE-InternetExplorer">タグの
     versionScope="NonSxS" というスイッチの値が
      "NonSxS" の場合 "nonSxS" に変更して保存。
      "nonSxS" の場合 "NonSxS" に変更して保存。
     することで解決できます。


    このWindows SIM のバグが改修されることを強く望みます。

    ありがとうございました。

    2007年9月3日 6:19

すべての返信

  • 経過報告

     

    HALを変更してみましたが、同じ現象が起こってしまいました。

    SIMの動きがいまいちわからないのですが、

    カタログは作成されています。

    Unattend.xml も作成されています。

    しかし、WIMイメージのパスが書かれているタグの情報が、

    install.wimとなっています。

     

    SIMに問題があるのかWIMイメージに問題があるのかすらもわからない常態です。

     

    本日、エラー内容を控えてきました。

    Build作成時に出るエラー

    An unexpected error occurred while processing the wizard results.
    Collection was modified; enumeration operation may not execute.

     

    Unattend.xml保存時のエラー

    T:\Distribution\Control\002\Unattend.xmlの保存中にエラーが発生しました。
    詳細:Collection was modified; enumeration operation may not execute.

     

    共に「Collection was modified; enumeration operation may not execute.」

    というエラーのようです。

     

    よろしくお願いいたします。

      

    2007年8月29日 7:51
  • 経過報告

    http://www.msfn.org/board/index.php?showtopic=101071&st=0
    を参照しながら、自己解決することができました。
    ありがとうございました。

    今回の事象と対策をまとめさせていただきます。

    【事象】
     1. カスタマイズしたVistaのWIMイメージを抽出する。
     2. 抽出したWIMイメージをBDDに登録する。
     3. BDDにてBuildを作成する。
       (作成中にエラーが発生。Build、Unattend.xml ファイルは作成される。)
     4. Windows SIM にて Unattend.xml を編集し、保存する。
       (保存中にエラーが発生。編集情報は Unattend.xml に反映されている。)

     1でのカスタマイズはソフトウェアのインストール等ではなくパッチに起因していると思われる。

     エラーメッセージは共に、
     「Collection was modified; enumeration operation may not execute」
     というものでした。よって、3と4でのエラーは同じ原因によって起こっている思われます。
     予測ですが、BDD にて Build を生成するとWindows SIM を使用して Unattend.xml ファイルを生成し、
     保存を行っており、その保存時にエラーを起こしてるのではないかと推測しています。


    【原因】
     Windows SIM のわかっている一連の動きは以下の通りです。
      1. Windows SIM にて初めて Unattend.xml ファイルを作成する時は、
        使用するWIMイメージからカタログを生成する。
      2. カタログから [Conponents] を作成する。
        (カスタマイズを行ったWIMイメージから [Conponents] を作成する際に、
        バージョンが違う2つの [Conponents] を作成してしまう。)
      3. [Conponents] を参照して Unattend.xml ファイルを生成する。
        (この時、古いバージョンと思われる [Conponents] を使用して生成している。これがバグだと思われる。)
      4. 保存をする。
      5. 保存を行った後に Unattend.xml ファイルとカタログとの整合性チェックを行いエラーになっている。
        (これは [ツール] - [応報ファイルの検証] とはまた違うようです。)

     おそらくは以下2つのバグが原因だと思われます。
     ・バージョン違いの [Conponents] を複数個作成してしまう。
     ・複数個のバージョンの内、古いバージョンの [Conponents] から Unattend.xml ファイルを作成している。

     Microsoftの対応に期待するしかないですね・・・


    【対処法】
     現在、複数の [Conponents] の存在がわかっているのは、
      ・x86_Microsoft-Windows-IE-InternetExplorer__neutral
     です。

     このエントリーを Unattend.xml から削除し、
     正しいバージョン番号を再登録することで解決できます。
     (どれが正しいバージョンかはTPOによって違う可能性があります。)

     また、この [x86_Microsoft-Windows-IE-InternetExplorer__neutral] が原因の場合は、
     Unattend.xml ファイルをテキストエディタ等で開き、
      <component name="Microsoft-Windows-IE-InternetExplorer">タグの
     versionScope="NonSxS" というスイッチの値が
      "NonSxS" の場合 "nonSxS" に変更して保存。
      "nonSxS" の場合 "NonSxS" に変更して保存。
     することで解決できます。


    このWindows SIM のバグが改修されることを強く望みます。

    ありがとうございました。

    2007年9月3日 6:19