none
既定のプログラムの設定について RRS feed

  • 質問

  • 初めて質問させていただきます。

    社内用にWindows 10 の環境を構築しているのですが、既定のプログラムの設定で詰まっており、皆様のお知恵を拝借したく。

    宜しくお願い致します。

    【目的】

    既定のプログラムの設定を変更したい。

    新規にユーザーを作成しても、既定のプログラムの設定を反映させたい。

    【対象】

    htm,html → IE11

    pdf → adobe reader

    【環境】

    Windows10 Pro (1709)

    ドメイン参加なし(検証中)

    【調べたこと】

    以前別コミュニティで、「Dism.exeを用いるとその設定が出来る」と拝見したため検証してみましたが、うまく反映されませんでした。

     検証手順は以下の通りです。

      1.管理者ユーザーで既定のプログラムを変更

      2.Dism /online /Export-DefaultAppAssociations でxmlファイルを作成。

      3.Dism /online /Import-DefaultAppAssociationsで作成したxmlファイルを読み込む。

      4.コピープロファイルを実行。

      5.新規ユーザーを作成。

      6.新規ユーザーでログインしたが、反映されず。

    ドメインポリシーとの組み合わせは未検証の状態です。

    ドメイン未参加の状態でも検証出来る方法があればと思い、質問させていただきます。

    宜しくお願い致します。

    2018年3月9日 8:17

すべての返信

  • マイクロソフト コミュニティ「既定のプログラムの設定について」の続きです。


    hebikuzure

    2018年3月9日 8:34
  • 既定のプログラムの設定ですが、残念ながら CopyProfile を行っても sysprep により設定が初期化されてしまいます。

    カスタムイメージ内で既定のプログラム設定を反映させたいのであれば、以下の SetupComplete.cmd を用いる手順を試してみて下さい。

     

    Dism /online /Export-DefaultAppAssociations 作成した XML ファイルをローカル (%WinDir%\Setup\Scripts ) に作成。

    Dism /online /Import-DefaultAppAssociations 、ローカルに保存した XML を読み込ませるバッチを作成し、%WinDir%\Setup\Scripts\SetupComplete.cmd となる様に保存する。(インポート時の XML 指定は絶対パスにして下さい)

    sysprep を行う。

    新規ユーザープロファイルを作成し動作を確認する。

     

    【参考】

    Sysprep 中に任意のコマンドを実行する方法について

    https://blogs.technet.microsoft.com/askcorejp/2010/05/27/sysprep/

    2018年3月11日 11:52
  • Lapivy様

    ご返信ありがとうございます。

    早速検証を行いました。が、反映されませんでした。

    環境によるものなのか、私のやり方に誤りがあるのかを確認させていただきたく。

    検証内容(管理者ユーザーで実行)

     ①既定のプログラムを変更

     ②Dism /online /Export-DefaultAppAssociations:%Windir%\setup\Script\test.xml を実行

     ③バッチ作成

       ファイル名:SetupComplete.cmd

       ファイルのパス:%WinDir%\Setup\Scripts\SetupComplete.cmd

       ファイルの中身:Dism /online /Import-DefaultAppAssociations:%Windir%\setup\Script\test.xml

     ④sysprep実行

     ⑤初回のユーザーを作成

     ⑥新規ユーザーを作成し、ログイン

    上記手順で実行しましたが、既定のプログラムの変更が反映されませんでした。

    何か間違い等ありましたら、ご指摘願います。

    併せて、情報等ありましたら、ご教示ください。

    宜しくお願い致します。 

    2018年3月12日 13:42
  • 「ファイルの中身」で指定している XML のパスを、環境変数を用いずに以下の様に指定してみて下さい。

     

    C:\WINDOWS\setup\Script\test.xml

     

    それと細かいのですが、パスに Script  Scriptが混在している様に記載されていますが、この辺は問題無いでしょうか?

    この通りにファイルを保存・指定しているのであれば動作に問題は無いとは思いますが・・・

     

    可能であれば、XML  SetupComplete.cmd を配置した上で、sysprep する前に手動でSetupComplete.cmd を実行して正常に既定のプログラムがインポートされるか動作を確認してみて下さい。

    2018年3月13日 0:32
  • Lapivy様

    ご返信ありがとうございます。

    ご連絡が遅くなってしまい、申し訳ございません。

    まず、前回の回答を致します。

    パスに関しては、環境変数でも通常のパスでも問題ありませんでした。

    パスの混在については、コピーミスです。申し訳ありません。

    検証の結果として、社内運用に因る問題ということが分かりました。

    原因は4のコピープロファイルにありました。

    社内の運用上、コピープロファイルを行う際、C:\Users\Defaultにコピーし、標準化を図っていますが、そこが原因のようです。

    プロファイルコピーを行わない場合は、既定のプログラムの設定が反映されますが、行った場合メッセージが表示され、全ユーザーで既定のプログラムがリセットされてしまいました。(新規ユーザー、既存ユーザーともにです)

    プロファイルコピーをしても、既定のプログラムがリセットされないようにできるものでしょうか。


    • 編集済み andre-ace 2018年3月20日 11:45
    2018年3月20日 11:45
  • 「C:\Users\Defaultにコピーし」とありますが、sysprep 時に応答ファイルを用いて CopyProfile を行っていると言う理解で良いでしょうか?

    それとも別の方法で C:\Users\Default にプロファイルをコピーしているのでしょうか?

     

    CopyProfile による既定のユーザー プロファイルのカスタマイズ

    https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898521?f=255&MSPPError=-2147217396

     

    応答ファイルによる CopyProfile なのであれば、案内した方法での既定のプログラムの設定は、Windows 10 v1607 の環境では実績の有る方法なのですが、それ以降の Windows 10 では試した事が無いので、もしかすると Windows 10 v1709 では正常に動作しないのかもしれません。

     

    また、今更ですし話を覆すようで申し訳無いのですが、Windows 10 では頻繁にアップグレードが行われる事から、Microsoft Windows 10 における CopyProfile を推奨していないと記憶していますので、CopyProfile の利用自体も検討の必要が有るかもしれません。

    ただ、やはり CopyProfile は利用するとの事であれば、グループポリシーによる既定のプログラムの設定を検討された方が良いかもしれません。

    2018年3月20日 18:12
  • Lapivy様

    プロファイルコピーは「copyprofile.exe」というファイルを使用して行っています。

    応答ファイルによるcopyprofileは運用上使用しておらず、未検証となります。

    Copyprofile非推奨の件につきましては、どこかで拝見した覚えがあります。

    既定のプログラム以外のところでは問題なく検証できていたため、継続して使用を考えていた次第です。

    グループポリシーを適用した条件での、プロファイルコピーの動きは検証してみようと思います。

    併せて、他にプロファイル情報を標準化できる方法があるかも探してみます。

    2018年3月21日 1:22
  • なるほど、まず CopyProfile sysprep 時に応答ファイルを用いて行うのが Microsoft がサポートしている方法であり一般的な方法です。

     

    Customize the Default User Profile by Using CopyProfile

    https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/customize-the-default-user-profile-by-using-copyprofile

     

    それ以外の方法 (今回で言う copyprofile.exe) についてはサポートされませんし動作保証外である事をご理解下さい。

    copyprofile.exe の作成元も動作仕様も不明 (少なくとも私は知りません) であり一般的な方法とは言えない時点で、他人からの適切なアドバイスは期待できないと考えた方が良いでしょう。(私もその様な方法での CopyProfile は経験が無いので、これ以上のアドバイスは難しいです)

     

    上記の通りですので、これを機にサポートされる CopyProfile 方法に変更される事をお奨めします。

    少なくとも、Microsoft サポートする sysprep 時に応答ファイルで CopyProfile する方法と、私が案内した既定のプログラムの設定を Setupcomplete.cmd でインポートする方法であれば、Windows 10 v1607 の環境では動作した実績が有りますので、Windows 10 v1709 の環境でも期待する動作となる可能性は高いと考えます。

    2018年3月21日 9:54
  • Lapivy様

    ご返信ありがとうございます。

    おっしゃる通りで、現在はサポート外の方法で運用しているため、ピンポイントの回答のしようがないのは理解しております。

    現在は先述の方法で運用しており、可能であれば現在の運用を行いたいと考えております。(折角のアドバイスに背くようで申し訳ありません)

    理由として、社内PCのメンテナンス時やトラブル対応時に、copyprofileを行うことがあるためです。

    Administratorで設定後copyprofileを行い、Defaultに上書きすることでPCを使う全ユーザーに対してそれを反映させております。

    sysprepでのcopyprofileでは、回数の制限等により気軽にできるものではないため、運用に乗せるのが難しいというのが現在の考えです。

    少し視点は逸れるのですが、バッチやレジストリの変更で対応する方法はございませんでしょうか。

    以前調べた限りでは、ユーザー毎に既定のプログラムを設定するレジストリが生成され、レジストリ自体が編集できない。また、中身もハッシュ値を使用しているため、変更が難しい(できない)と記憶しています。

    別の方法でもよいので、何かご教示いただけませんでしょうか。

    2018年3月23日 6:39
  • CopyProfile と連動する形で既定のプログラムを設定するのは難しいかと思います。

     

    ただ単に全てのユーザーに既定のプログラムの設定を反映させたいのであれば、すべてのユーザーのスタートアップで、既定のプログラムをインポートするスクリプトやバッチを実行するのはどうでしょうか?

    テストした訳では無いので、うまく動作するかは分かりませんが・・・

     

    以下が、すべてのユーザーのスタートアップのフォルダです。

    バッチは Setupcomplete.cmd で行った内容を流用できるかと思いますが、ユーザーログオン時に毎回実行されてしまうので、その点が問題かとは思いますが・・・

     

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

    2018年3月23日 7:50
  • Lapivy様

    お世話になります。

    スタートアップのフォルダにバッチを配置し、実行してみました。

    結果としては、反映されませんでした。

    コマンドプロンプトの画面が表示されているため、バッチは間違いなく実行されておりますが、既定のプログラムは変わらずでした。

    ログオフ後、再度ログオンも試してみましたが、変化なしでした。

    新規ユーザーを作成して試してみましたが、新規ユーザーも変化なしでした。

    たとえば、レジストリを変更することで全ユーザー(新規含む)に反映できますでしょうか。

    2018年3月29日 2:20
  • OS自体の不具合かも知れません。

    The current user associations could not be exported to file Error 0x80004002
    https://social.technet.microsoft.com/Forums/windowsserver/en-US/5161bd23-733e-4e2f-a500-d652fc23b81d/the-current-user-associations-could-not-be-exported-to-file-error-0x80004002?forum=win10itprosetup

    統合ディスクを作って試してみました。

    KB4051963 (OS ビルド 16299.98)

    ○:既定のプログラムを変更
    ○:Dism /Export-DefaultAppAssociations

    KB4088776 (OS ビルド 16299.309)

    ×:既定のプログラムを変更
    ×:Dism /Export-DefaultAppAssociations

    16299.98 → 16299.309 にアップデート後にダメになりますし

    アップデートの不具合かと思って、最初から 16299.309 でやってもダメでした。

    対策としては、アップデート前に既定のプログラムを変更を行うか

    アップデート後にアンインストールしてから既定のプログラムを変更を行い
    再度、アップデートするくらいですかね。

    ---------------------------------------------------------------------------------------

    追記です。

    情報が出ました。

    ここには、Dism しか書かれていませんが

    「既定のプログラムを変更」による関連付けの変更も効かないです。

    Windows 10 Version 1709 にて Dism /Online /Export-DefaultAppAssociations を実行した場合に 0x80004002 が出力される。
    https://blogs.technet.microsoft.com/askcorejp/2018/03/29/exportdefaultappassoc/

    • 編集済み 七辻屋 2018年3月30日 3:29 追加情報出ました
    2018年3月29日 3:51