• oscdimg.exe を使用して 4.5 GB 超の ISO ファイルを作成する場合の注意点

    こんにちは。Windows テクノロジー サポートの高橋です。

    今回は oscdimg.exe を使用して 4.5 GB 超の ISO ファイルを作成する際の注意点についてお伝えしたいと思います。

    Windows AIK に付属する oscdimg.exe を使用して、ISO ファイルを作成することができます。作成される ISO ファイルは既定で CDFS が使用されますが、規格上 CDFS は 4.5 GB までのメディア サイズしか想定されていません。このため、oscdimg.exe を使用して 4.5 GB 超の ISO ファイルを作成した場合、一見正常に作成されたように見えますが、実際にメディアに書き込むと、一部のファイルが破損した状態になります。

    このため、oscdimg.exe を使用して 4.5 GB 超の ISO ファイルを作成する場合には、明示的に UDF ファイル システムを使用するように指定する必要があります。具体的には、-u1 または -u2、および必要に応じて-udfverxxx オプションを指定します。各オプションの意味は以下の通りです (詳細は oscdimg -help UDF コマンドを実行してオンライン ヘルプをご参照下さい)。

    • -u1: UDF ファイル システムと ISO 9660 に準拠したファイル システム両方を持つイメージを作成します。
    • -u2: UDF ファイル システムのみを持つイメージを作成します。
    • -udfver102: UDF 1.02 を使用します。Windows 98 以降で読み込むことができます。
    • -udfver150: UDF 1.50 を使用します。これが既定値となります。Windows 2000 以降で読み込むことができます。
    • -udfver200: UDF 2.00 を使用します。Windows XP 以降で読み込むことができます。

    また、起動可能な 4.5 GB 超の ISO ファイルを作成する場合 (-b オプションを指定する場合)、起動に必要なブート ファイル群がイメージの先頭に配置されるよう、明示的に指定する必要があります。具体的には、ブート ファイル群を記述したテキスト ファイルを -yo オプションで指定します。

    上記を満たすコマンド実行例は以下の通りです。

    oscdimg -udfver102 -u2 -betfsboot.com -yobootorder.txt <ISO 化するフォルダ> <ISO ファイルの出力先>

    bootorder.txt は、boot フォルダ配下のファイルおよび sources\boot.wim ファイルへのパスを 1 行 1 ファイルとして記載します。以下は日本語環境の場合の例です。

    boot\bcd
    boot\boot.sdi
    boot\bootfix.bin
    boot\etfsboot.com
    boot\fonts\chs_boot.ttf
    boot\fonts\cht_boot.ttf
    boot\fonts\jpn_boot.ttf
    boot\fonts\kor_boot.ttf
    boot\fonts\wgl4_boot.ttf
    sources\boot.wim

    以上、4.5 GB を超えるサイズの ISO ファイルを作成される際にご留意いただければ幸いです。

  • ユーザーのキー入力なしに CD/DVD から起動させる方法

    こんにちは。Windows テクノロジー サポートの高橋です。

    今回はユーザーのキー入力なしに CD/DVD から起動するする方法について紹介したいと思います。

    Windows Vista 以降の OS (Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2) のインストール CD/DVD、または Windows AIK 等で作成した Windows PE 起動 CD/DVD から起動しようとする際、以下のようなメッセージが表示されます (有効なディスク パーティションが無い場合等、表示されない場合もあります)。

    Press any key to boot from CD or DVD.

    このキー入力要求は意図しない CD/DVD からの起動を防ぐには有効ですが、場合によってはこのメッセージを出さずに CD/DVD から起動したい場合があります。

    これを実現するには、CD/DVD に含まれている \boot\bootfix.bin ファイルを削除した上で、改めて ISO イメージを作成し、CD/DVD に書き込みを行います。

    Windows AIK に含まれる CopyPE.cmd でフォルダ階層を作成している場合には、 ISO\boot\bootfix.bin ファイルを削除した上で oscdimg.exe を実行して ISO ファイルを作成します。

    OS のインストール CD/DVD を変更する際には、一旦 CD/DVD の内容を HDD 等にコピーし、 boot\bootfix.bin を削除した上で oscdimg.exe 等を使用して ISO ファイルを作成し、CD/DVD に書き込みを行います。

    CD/DVD を使用して多数のコンピューターを一度にセットアップしたい時等、こちらの方法をご参照いただければ幸いです。

  • Sysprep 実行時にビルトイン Administrator のアカウント名を変更する方法

    こんにちは。Windows テクノロジー サポートの高橋です。

    今回は Windows Vista 以降の OS (Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2) で Sysprep を実行した際にビルトイン Administrator のアカウント名を変更する方法について紹介したいと思います。

    Windows では [アカウント: Administrator アカウント名の変更] ポリシーを構成することでローカル ビルトイン Administrator のアカウント名を変更することができます。ただし、この設定は Sysprep を実行すると失われてしまい、ビルトイン Administrator のアカウント名は既定の Administrator へ戻ってしまいます。

    このため、ビルトイン Administrator のアカウント名を変更した状態で運用するには、 Sysprep 実行後に再度アカウント名を変更する必要があります。今回は、これを SetupComplete.cmd を利用して自動化する方法について紹介します。

    SetupComplete.cmd を利用したビルトイン Administrator アカウント名の変更

    SetupComplete.cmd の利用方法そのものにつきましては、以前安達が公開させていただいた以下のポストをご参照下さい。

    アカウント名の変更は、Win32_UserAccount WMI クラスの Rename メソッドを利用しますが、ここではバッチ ファイルから直接呼び出すため、wmic.exe コマンドライン ユーティリティを使用します。 wmic.exe を使用してローカル ビルトイン Administrator のアカウント名を変更する場合の書式は以下の通りです。

    wmic.exe UserAccount WHERE (LocalAccount=True AND Name='Administrator') CALL Rename <名前>

    ここで、<名前> は新しいアカウント名です。 Rename メソッドの詳細につきましては、Rename Method of the Win32_UserAccount Class をご参照下さい。

    以下は、"Admin" へアカウント名を変更する場合のサンプルです。

    wmic.exe UserAccount WHERE (LocalAccount=True AND Name='Administrator') CALL Rename Admin

    なお、Windows Vista および Windows 7 では Sysprep の実行に伴い、ビルトイン Administrator アカウントが無効化されてしまいます。Sysprep 実行後に再度ビルトイン Administrator アカウントを有効化するには、以下のコマンドを実行します。

    NET USER Administrator /active:yes

    もちろん、このコマンドも SetupComplete.cmd に記述することができます。前述のアカウント名変更と実行は前後して構いませんが、もしアカウント名変更後にアカウントを有効化する場合は、上記コマンド内の "Administrator" を変更後のアカウント名に変更する必要がある点にご注意下さい。

  • Sysprep 実行時にドメイン参加を自動化する方法

    こんにちは。Windows テクノロジー サポートの高橋です。

    今回は Windows Vista 以降の OS (Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2) で Sysprep を実行した際にドメインへ自動参加させるための方法について紹介したいと思います。

    Windows AIK をご利用の方であれば、応答ファイルの Microsoft-Windows-UnattendJoin コンポーネントを使用してドメインへの参加が自動化できることをご存知かも知れません。ただし、このコンポーネントは specialize パスで処理されるため、ミニ セットアップ中 (oobeSystem パス) に入力したコンピューター名ではなく、セットアップ中に一時的に割り当てられたコンピューター名でドメインへの参加が行われてしまいます。

    注: Windows Server 2008 R2 では、ミニ セットアップ中にコンピューター名を入力するように構成することはできません。このため、Windows Server 2008 R2 については応答ファイルの Microsoft-Windows-UnattendJoin コンポーネントを使用してドメインへ参加させても、上述の問題は発生しません。ユーザー指定の任意のコンピューター名を設定するには、セットアップ完了後にコンピューター名を変更する必要があります。

    従いまして、Microsoft-Windows-Shell-Setup コンポーネントの ComputerName プロパティで明示的にコンピューター名を指定するか、または '*' を指定して自動生成されたコンピューター名を使用する場合以外、応答ファイルによるドメインへの参加は期待通り動作しません。言い換えますと、ミニ セットアップ中に入力したコンピューター名が反映された形でドメイン参加を行う場合、応答ファイルの Microsoft-Windows-UnattendJoin コンポーネントを使用することはできません。

    上記につきましては、以下のサポート技術情報に記載させていた だいている通り、想定された動作であり、 Microsoft-Windows-UnattendJoin コンポーネントの制限事項となります。

    回避策としては、上記サポート技術情報に記載されている通り、Microsoft-Windows-Shell-Setup コンポーネントの FirstLogonCommands を構成し、コンピューターをドメインに参加させるスクリプトを実行させる、という方法が一つの方法となります。ただし、運用上 FirstLogonCommands が使用できない (セットアップ完了後、管理者権限を持ったアカウントでログオンを行う事が保証されない) 場合や、ユーザー側に処理を見せたくない場合もあると思います。そこで、ここでは SetupComplete.cmd を利用した方法を紹介したいと思います。

    SetupComplete.cmd を利用したドメインへの自動参加

    SetupComplete.cmd の利用方法そのものにつきましては、以前安達が公開させていただいた以下のポストをご参照下さい。

    ドメインへの参加自体は、KB944353 同様 Win32_ComputerSystem WMI クラスの JoinDomainOrWorkgroup メソッドを利用しますが、ここではバッチ ファイルから直接呼び出すため、wmic.exe コマンドライン ユーティリティを使用します。 wmic.exe を使用して JoinDomainOrWorkgroup メソッドを呼び出すための書式は以下の通りです。

    wmic.exe ComputerSystem WHERE Name!=null CALL JoinDomainOrWorkgroup Name="<ドメイン名>" Password="<パスワード>" Username="<ユーザー名>" AccountOU="<OU>" FJoinOptions=<オプション>

    ここで、<ドメイン名> は参加させたいドメイン名、<ユーザー名> および <パスワード> はドメイン参加の際に使用する認証情報、 <OU> は所属させたい OU 名 (省略可能)、<オプション> はドメイン参加時のオプション (省略時は 1) です。 JoinDomainOrWorkgroup メソッドの詳細につきましては、JoinDomainOrWorkgroup Method of the Win32_ComputerSystem Class をご参照下さい。

    以下は、TestDomain.local.com ドメインの TestOU OU へ参加させる場合のサンプルです。

    wmic.exe ComputerSystem WHERE Name!=null CALL JoinDomainOrWorkgroup Name="TestDomain" Password="password" Username="TestDomain\Administrator" AccountOU="OU=TestOU;DC=TestDomain;DC=local;DC=com" FJoinOptions=3

    ※ AccountOU パラメータで OU を指定する場合、Distinguished Name の区切り文字に ',' (カンマ) ではなく ';' (セミコロン) を使用してください。カンマを使用すると wmic.exe がコマンド パラメータの区切り文字として認識してしまうため、コマンドが期待通り動作しません (2014/2/26 修正)。

    なお、上記内容の SetupComplete.cmd ファイルをそのまま残すと、ドメイン参加に使用したアカウント情報が他のユーザーから参照できてしまいます。SetupComplete.cmd 実行完了時に同ファイルを削除するようにするには、 SetupComplete.cmd の最後に以下の一行を入れます。

    del /F %0 2>nul

    以上、Sysprep を使用して OS を展開する際の参考にしていただければ幸いです。

  • クラスタのネットワークが不安定になる?

    こんにちは。Windows テクノロジー サポートの戸田です。

    複数のノードで構成されるクラスタでは、クラスタで使用する (図のようにネットワークのプロパティで、「このネットワークでのクラスター ネットワーク通信を許可する」が選択されている)ネットワーク毎に、ハートビートと呼ばれるパケットの送受信が行われ、ノード間の相互接続が正常であるかどうかの確認を行っています。



    このハートビートの送受信で問題が発生する場合、そのネットワークの状態は「障害」や「到達不能」などに変化します(正常時は「稼働中」です)。

    クラスタをご利用のお客様から、「ネットワークの経路で問題が無いにも係わらず、クラスタ上でネットワークの問題が検知された」とのお問い合わせを頂くことがあります。
    もし、ご利用のクラスタ環境でこのような現象が発生した場合、まずは切り分けとして Scalable Networking Pack の無効化について、是非検討してみてください。

    Scalable Networking Pack についての詳細は以下の記事をご覧ください。

      予期せぬ挙動が!? 新機能 Scalable Networking Pack をご存知ですか?
      http://blogs.technet.com/b/jpntsblog/archive/2010/03/23/scalable-networking-pack.aspx

    Scalable Networking Pack を有効にしている場合、ノード間の相互接続に様々な問題が発生することがあります。
    もし、ネットワーク経路に問題が見つからないにも関わらず、ネットワークの状態が安定しない場合には、Windows のネットワークの視点から Scalable Networking Pack の無効化をお試しください。