Windowsグループポリシーを使用してmsiパッケージを作成し、ソフトウェアをインストールする

こんにちは、Habr! 私の意見では、任意のソフトウェアのmsiインストーラーを作成し、その結果、GPOを使用して展開する興味深い方法を紹介したいと思います。 ここで説明する方法は、システムの「キャスト」の作成を意味するものではなく、ネイティブソフトウェアインストーラーを使用し、msiの作成には商用の無料製品のみが使用されることを強調します。



はじめに、リンクと免責事項



通常の各ソフトウェアインストーラーには、特定のパラメーターまたはデフォルトのパラメーターを使用して自動的にインストールする機能があります。 私の方法の本質は単純で、msiの「コンテナー」にネイティブインストーラーをパックし、必要なコマンドラインパラメーターで実行することにあります。 ネットワーク上には、このアプリケーションまたはそのアプリケーションの自動インストールに関する情報が山ほどありますが、ここでは重点を置きません。 私の目標は、繰り返しますが、グループポリシーを使用してソフトウェアをインストールすることです。 ところで、ZAWを使用してインストールを実行できることに反対する人もいますが、残念ながら、この方法は現在のユーザーの権限を持つインストールにのみ適用でき、アプリケーションの集中自動インストールには使用できません。



GPを介したソフトウェアのインストールに関する興味深い一連の記事。 初心者の場合、インストールタイプ「割り当て済み」が「パブリック」とどのように異なるかを後で尋ねないように、すべてを読むことをお勧めします。



必要なソフトウェア。 Exe to MSI Converter freeware and the well-known orca 1つ目はexeからmsiを作成するために必要であり、2つ目はグループポリシーを通じて結果のmsiニックネームを確立できるようにするためです。



この方法は完全に一意であるとは主張しておらず、回避できる余地がある場合もありますが、これは欲求の欠如とmsiパッケージテーブルのパラメーターを深く掘り下げる必要があるためです。 当初の目的は、msiを作成する無料の方法をすばやく見つけることでした。数時間、外国のフォーラムを読んで仮想マシンを何度も再起動した後、この方法が見つかりました。 また、この記事はプログラムインターフェイスのレビューではないため、スクリーンショットは表示されません。



パッケージの作成と準備



Mozilla Firefoxは、開発者からのmsiインストーラーを持たない有名な製品であるため、サンプルのインストールが行われます。

  1. exeをmsiで起動し、firefox exe-installerへのパスを指定します。 以前にネットワークで見つかった情報によると、パラメータ-ms -iraを使用してfirefoxを静かにインストールできることが明らかになりました 。 2番目のフィールドexeでそれらをmsiに指定し、「MSIを構築」をクリックします。
  2. msiパッケージは準備ができているようです。 実際、結果を実行することにより、firefoxシステムにインストールされ、記事でそれを終わらせることができます。 残念ながら、すべてがそれほど単純ではありません。 現在のインストールパッケージは、GPOを介した展開には適していないため、コンピューターを起動すると、ログにエラーを説明する「致命的なエラーが発生しました...」というメッセージはまったく表示されません。 msi「ルールによるものではありません。」
  3. さて、オークを取り、その中に絵文字を開きます。
  4. まず、左側のリストにPropertyテーブルがあり、 ProductCodeUpgradeCodeの 2つのフィールドに注意を払っています。 これらの2つのフィールドは製品ごとに一意である必要があり、msiに対するexeの生成は常に同じです。 関係ありません。トップメニューの[表示]-> [概要情報 ]をクリックし、[ PackageCode ]フィールドを見つけて、[ 新しいGUID ]をクリックします 。 結果の結果はクリップボードにコピーされ、 ProductCodeに貼り付けられます。 UpgradeCodeについて繰り返し、最後にPackageCode自体についても繰り返します。 概要情報ですぐに、Mozilla Firefoxの[ タイトル]フィールドを編集します。残りはオプションです。 実際、これは何にも影響しません。
  5. 繰り返しますが、 プロパティテーブルで、Mozilla FirefoxのProductNameメニュー( ARPCONTACTManufacturerをヒープに変更します)。 ProductVersionに正しい値を設定することもできます。
  6. GUIDやその他の「ID」は変更されたようですが、実践が示すように、これでは十分ではありません。 orca Tools-> Validateをクリックし、 Show INFO Messagesバードを削除して、 Goを押します。
  7. ご覧のとおり、いくつかのテーブルと値の有無について、多数のエラーがクロールされました。 私は気にせず、最初の小さなmsi(7zip x64 9.20)を取得し、そこから4つの欠落したテーブルをコピーしました(もちろんExport-Import経由): _Validation、AdminExecuteSequence、AdminUISequence、AdvtExecuteSequence 。 実際、余分なゴミなしで「正しい」msiインストーラーを作成できると確信していますが、忘れないでください。私たちの目標は、ネイティブセットアップアプリケーションを静かに起動することです。
  8. テーブルを追加した後、 [ツール]-> [検証]を順に実行します (ちなみに、初めてチェックをまったく実行せず、すぐにテーブルをインポートできます)。 また、7zipからmsiをベースとして使用した場合、6個のエラーが発生するため、削除する必要があります。 [ 閉じる]をクリックして、赤でマークされた余分なフィールドを削除します
  9. 最後に、検証を再度チェックして、干渉する警告のみがないことを確認できます。 msiを保存します。
  10. 基本的にこれですべてです。GPにmsiを追加し、必要なプロパティを割り当てるだけです。


ニュアンス



  1. 上記の方法でインストールする場合、ソフトウェアのコピーが2つあります。 1つ目は適切なアプリケーションで、2つ目は元のmsiニックネームです。 原則として、これは「プログラムの追加と削除」での表示を除き、Windows XPでのみ表示されます(指定したもの以外を変更していない場合)。 欠点は、ソフトウェアの自動インベントリ中に不必要なプログラムが表示されることです(使用する場合)。
  2. 同じ展開ツールによるアプリケーションの自動アンインストールは機能しません。 より正確には、動作しますが、不要なmsiコンテナのみが削除されます。 まあ、msiの作成時にmsiのプロパティをいじって、以前にインストールしたアプリケーションを同じように静かにキャプチャできるようにすることができます。 私はそのようなタスクを設定しませんでした。
  3. ソフトウェアの更新をインストールする場合、アプリケーションのGPUのプロパティで指定して、以前のGPUを置き換える必要があります。つまり、最初に古いGPUを削除する必要があります。 これにより、誰にもあきらめなかった「プログラムの追加と削除」で同じアプリケーションの重複が残らないようにします。
  4. いくつかのファイルが配布されているアプリケーションをインストールするには、最初にそれをexeにパックする必要があります。exeは起動時に解凍され、サイレントインストールのコマンドを提供します。 同じ7-zipを使用してsfxアーカイブを作成することをお勧めします。
  5. 起動スクリプトを介してソフトウェアをインストールすることを妨げるものは何もありません。 さらに、この方法はより柔軟性があり、スクリプトで長い間使用しています。 exeからmsiを簡単に作成するには数分かかるため、ネイティブGPツールの使用ははるかに高速です。
  6. 何らかの理由でWindows 7は「マネージドアプリケーションをインストールしています...」と書かず、単に「お待ちください」と言っています。 一度にソフトウェアのヒープ全体を一度にデプロイするとき、または重いアプリケーションをインストールするときに、これによりユーザーを管理者の呼び出しにプッシュするか、リセットボタンを押すことができます。


それだけです。おもしろかったです、あなたの経験を共有してください。



All Articles