2011-10-27 10 views
2

私のアプリケーションの1つにWindows版があり、NSISを使用してインストーラを作成し、現在のバージョンを「プログラムファイル」にインストールします。Windowsインストーラのベストプラクティス:admin、non-admin、またはその両方?

私は、インストーラが管理者として実行され、一部のユーザー(エンタープライズPC ...)に問題が発生する可能性があることを理解します。

この種類のインストーラのWindowsのベストプラクティスは何ですか?ユーザーを強制的に管理者にする他の場所にインストールするオプションを提供しますか? https://github.com/nickbnf/glogg/blob/master/glogg.nsi

答えて

1

デフォルトのオプションは、マシン単位のインストール、つまり管理者アクセスが必要ですが、ユーザー単位でのインストールが可能な場合は、これは追加のボーナスであり、フォークの生活を楽にします。

実行可能な場合は、インストーラをインストールし、インストールする必要がなく実行するベストプラクティスという2つのバージョンを提供することをお勧めします。後者はportable applicationとして知られています。

(そして、私はあなたの注意を持っている間:。我々はソフトウェアを自動的にインストールできるように、企業のITに代わって、どこでも、あなたのインストーラが文書化され、テストされ、サイレント・モードを備えていることを確認してください)

+0

興味深いので、私はインストーラーから非管理者を確実にロックする必要があります。それに加えて、私は移植可能なバージョンを提供するというアイデアが好きです(私は、.exeと簡単なジッパーがあり、.dllの数は十分でしょう)。私は、ポータブルアプリは%APPDATA%でもその設定を保存すべきではないと思いますか? –

+0

通常、ポータブルアプリケーションは、設定をアプリケーションファイルと同じディレクトリに保存するか、サブディレクトリに保存します。伝統的なアプリケーションでは、これは非常に悪い考えですが、ポータブルアプリケーションのポイントは、各ユーザーがそれぞれ独自のコピーを持っていることです。 (もちろん、インストーラをインストールしたバージョンでもユーザーのアプリケーションデータフォルダを使用する必要があります)。 –

1

(それはWindowsアプリケーションに来るとき、私はUNIX/Macの男だので、本当に福音を知らない)

ここでは、誰かが見てしたい場合にはNSISスクリプトですこれらのインストールでは常にALLUSERS = 1に設定することをお勧めします。

EDIT

リッテさらにので、あなたにMSDNの記事の無限の読み取りを保存します。 ALLUSERS=1は、マシンごとにインストールを強制します。これにより、ユーザープロファイルがきれいに保たれ、ソフトウェアが企業環境で管理可能になります。ユーザーがログオンしていなくても、いつでもソフトウェアをインストールして削除できます。またALLUSERS=2(ユーザーごとのインストールを許可)は、このような環境では削除することはできません。

あなたは、プロパティテーブルまたはコマンドラインを経由してプロパティを設定することができます。Windowsでは

msiexec.exe myPackage.msi ALLUSERS=1 
+0

。なお、 OPはMSIを使用していません。 –

+0

私は、オリオンの答えに私のコメントを参照してください。 –

1

を、それは一般的にソフトウェアをインストールするには管理者のアクセスを必要とすることをお勧めと考えられています。企業は実際にこの機能を好んでいます。特定の人が会社の許可なくソフトウェアをインストールすることができないからです。ソフトウェアは通常、プログラムファイルまたはプログラムファイル(x86)ディレクトリに移動する必要があり、意図的に管理者アクセスが必要です。

このルールにはいくつかの例外がありますが、まれです。ユーザーごとにソフトウェアを安全にインストールするには、以下を保証する必要があります。

1)インストーラーは、Program Files(または他のマシン全体の場所)以外の場所からも機能できます。

2)ソフトウェア自体は、マシン全体の場所に書き込みません。

3)マシンのレジストリの場所(HKEY_LOCALMACHINEなど)に何も書き込まないでください。

正直、これはもっと複雑な問題です。それは本当にあなたがやっていることにかかっています。クリック一回インストールで逃げることができれば、それが最善の策かもしれません。部分的な信頼でこれを行うことができます。つまり、管理者のアクセスを必要とせず、ユーザー。

+3

私は同意しません。ユーザーごとのインストールを許可しないと、IT部門(つまり私!)の作業が増え、実際にはセキュリティは向上しません。ユーザーごとのソフトウェアがユーザーごとに実行されるため、ユーザーが実行できないことはありません別のやり方をする。とにかく悪意のあるソフトウェアの作者はあなたのアドバイスに従わず、悪意のないソフトウェアを除外する必要はありません。 –

+0

企業管理者が、承認されていないソフトウェアを実際に実行しないようにするには、ソフトウェア制限ポリシーまたは(Windows 7の場合)AppLockerを調べる必要があります。 –

+0

比較すると対照的なhttp://stackoverflow.com/questions/7919359/is-there-a-way-to-identify-the-windows-command-prompt-regardless-of-file-name-または –

関連する問題