管理者以外のユーザー(管理者以外のユーザーのディレクトリにファイルをコピーする)のユーザー単位でインストールできるMSIインストーラをビルドすることは可能ですが、プログラムファイルや他の管理専用ディレクトリに移動しますか? NSISには、通常のユーザーとして実行されるいくつかのステップと、昇格された特権で実行されるその他のステップを可能にするUACプラグインが存在します。このようなことがMSIに存在するのですか、または管理者権限を取得している間に元のユーザーコンテキストを保持する方法がありますか?ユーザー単位と管理者単位のWindowsインストーラ
答えて
いいえ、それは不可能です。インストールは、ユーザーコンテキストまたは昇格したシステムコンテキストで実行されます。
ただし、一部のファイルをユーザーのプロファイルにコピーすることはできません。これらのファイルは、フォルダに設定されている既定のアクセス許可を継承します。デフォルトは、ユーザー、システム、および管理者グループへのフルアクセスです。
技術的には可能ですが、使用することはお勧めしません。複数のユーザーがいるコンピュータを考えてください。そのうちの1人がMSIパッケージをインストールし、ユーザーのプロファイルにファイルをインストールします。別のユーザーがこのコンピュータにログオンし、[スタート]メニューからアプリケーションを起動します。ユーザーのプロファイルにはファイルがありませんが、そこにはアプリケーションが必要です。
この問題を解決する最善の方法は、ユーザーのプロファイルに入れたいファイルをProgram Filesにインストールすることです。アプリケーションの最初の起動時に、これらのファイルがユーザーのプロファイルにコピーされます。したがって、マルチユーザーコンピュータのすべてのユーザーがアプリケーションを使用できるようになります。
これらのデータをユーザー間で共有する場合は、ProgramDataにインストールすることを検討してください。CommonAppDataFolder
propertyこの方法で、ファイルはすべてのコンピュータのユーザーに表示され、読み取り可能になります。ただし、アプリケーションをインストールしたユーザーだけが書き込みアクセス権を持つため、インストーラはProgramData内のアプリケーションフォルダに対するアクセス許可を変更して、他のユーザーに書き込み権限を与える必要があります。
私が正しく理解しているのは、ユーザー単位またはすべてのユーザー単位でインストールできるインストーラです。私は両方のことを探しています。つまり、Program Filesのような管理専用の場所にファイルをインストールし、管理者以外のユーザー自身のディレクトリ(ユーザーのアプリケーションデータディレクトリなど)にいくつかのファイルをインストールします。 – alanc10n
- 1. ファイル単位のバージョン管理
- 2. 測定単位の保存と管理
- 3. C++物理的な単位の単位のユーザー定義のリテラル
- 4. 作業単位の単位
- 5. SVGとDPI、絶対単位とユーザー単位:InkscapeとFirefoxの比較ImageMagick
- 6. C#ユーザー単位のApp.config
- 7. 単位svgの幅/高さの単位
- 8. 月単位+年単位の集計
- 9. c、ビット単位、論理式
- 10. バイト単位でビット単位でインクリメント(C#)
- 11. Excel VBA - 主要単位スケール(分単位)
- 12. 単位
- 13. 単位
- 14. コンテナ単位のIPアドレスを管理する
- 15. ビット単位とComparator.comparing
- 16. 週単位と月単位の集計をOracleに保存
- 17. ページ単位でCSS資産を管理する
- 18. Drupalファイルアップロードのユーザー単位のアクセス許可
- 19. 簡単な管理者:フォームのコレクション
- 20. drawEllipseの単位
- 21. Devise - ユーザー単位のスコープ設定
- 22. 管理者とユーザーのテーブル
- 23. マイクロコントローラでのビット単位の論理
- 24. vh /%単位とモバイルデバイスのキーボード
- 25. COBOLのビット単位論理演算子?
- 26. ピクセル単位の閾値処理
- 27. ASP.Net MVC 3作業単位の処理
- 28. ビット単位のOR処理エラー
- 29. ユーザー定義型 - 単位、変換
- 30. heightDetailsは単位
答えに同意します:インストーラでマシンごとのファイルをコピーして、最初の起動時にアプリをユーザープロファイルにコピーさせます。次に、そのユーザーのコピー操作が完了したことを示すために、HKCUにフラグを設定します。 しかし、インストーラがユーザコンテキストまたは昇格したシステムコンテキストで動作すると言うのは間違っています。実際には両方のコンテキストで実行されますが、インストールシーケンスのさまざまな時点で実行されます。簡略化して言えば、GUIはユーザーコンテキストで実行されますが、ファイルコピーは高い権限で実行されます。必要に応じて、別の回答として長い説明を追加することができます。空き容量が不足している –
@Glytzhkofインストールプロセス(ファイルのコピー、レジストリエントリの作成)は、現在のユーザーコンテキスト、ユーザー単位のインストール、またはシステムごとのインストールではシステムコンテキストの高位で実行されます。 GUIウィザードは、常に現在のユーザーコンテキストで実行されます。 –
あなたの提案の問題と、私が説明したことをやろうとしている理由は、問題のファイルがユーザーのappdataディレクトリに入っていなければならないということです(これはMS WordのグローバルテンプレートでWordはユーザーのSTARTUPディレクトリこれら)。 – alanc10n