Windowsでインストーラーなしで小さなプログラムをインストールする場所は?


35

Windowsプラットフォームでは、ほとんどの大規模なアプリケーションには独自のインストーラーが付属しており、これによりフォルダーがC:\Program Files、場合によっては他の場所に、場合によってはレジストリキーなどが追加されます。

しかし、まだかなりの数だけで構成されて周りのツールがあります.exeまた、多分かREADME.dllか2。

そのようなツールはどのようにインストールすればよいですか?で直接C:\Program Files?すべてが1つのサブフォルダーにありC:\Program Filesますか?どこか下にC:\Users\Me?どこか全く違う?

または.exe、他のファイルも持っているツールだけでツールにさまざまなアプローチを使用したり、.dllsを使用したものだけを別々に処理したりする必要があります。

これを行うための標準的な受け入れられた方法はありますか?「ベストプラクティス」ですか?回答がWindowsのバージョンに依存する場合、Windows 7を使用しています。

特に、明白な答えがキャッチを持っているように人々を襲うかもしれないもの:

の下に新しいサブフォルダを手動で作成しようとしましたC:\Program Files。実際、以前はそうしていたと思っていましたが、WindowsはダイアログDestination Folder Access Deniedを表示します。これにより、盲目的に[ 続行 ]をクリックするのではなく、考え直しました。

宛先フォルダーへのアクセスが拒否されました

何年もの間、私のものよりも大きな心がこれに何度も出くわしたという前提で、ある種の「ベストプラクティス」が受け入れられるようになったかどうかをコミュニティに尋ねたいと思います。


3
この質問をどのような観点からお考えですか?具体的には、これはあなたが書いているアプリケーションですか、それとも誰かのアプリケーションをインストールしようとしていますか?
ハリージョンストン

2
@HarryJohnston:他の人のアプリケーションをインストールするためのものです。先日、非常に大きなファイルを表示または編集するために設計されたいくつかのプログラムをダウンロードしましたが、インストーラーがありませんでした。しかし、Windowsのほとんどのコマンドラインツールにも同じことが当てはまりますが、そのうちいくつかがあります。
ヒッピートレイル

@UltraDEVV:他の人がこの問題を検討し、「ベストプラクティス」を決定したかどうかを知りたいです。C:\Program Filesどこにインストールするかを決定する前に、どのソリューションが存在するかを知りたいのでC:\Program Files、明らかなソリューションになるための潜在的な障壁に関する情報を提供します。
ヒッピートレール14

だから私のものを読んでください!superuser.com/a/815831/354352
UltraDEVV 14

@UltraDEVV:私はすでにあなたのものを読み、私はすでにそれに投票しました。3年半休んだ後、この寝台車の質問が生き返るのを見るのはクールです!
ヒッピートレール14

回答:


25

つかいます C:\Tools

または C:\Users\<user>\Tools
 

私はインストーラなしで多くの小さなプログラムを使用していますが、次のことをお勧めします:

  • それらをすべて保存します C:\Tools
  • プログラムが単一のファイルで構成されている場合、それを直接下に置きます C:\Tools
  • プログラムが複数のファイルで構成されている場合は、以下に配置します C:\Tools\ProgramName
  • SysInternalsツールには特別なカテゴリC:\Tools\_SysInternalsがあります。多くのツールがあるからです

C:\Tools移行するとき、私は単にマシンからマシンに移動するだけで、魅力のように働きます。

実用サンプル(短縮リスト):

C:\ Tools \ autoexec-elevated.bat
C:\ Tools \ cleanup.bat
C:\ Tools \ BabelMap.exe
C:\ Tools \ netmon.exe
C:\ Tools \ notifu.exe
C:\ Tools \ putty.exe
C:\ Tools \ UDPixel.exe
C:\ Tools \ battery.vbs

C:\ Tools \ 3dclip-1.5.1 \
C:\ Tools \ alternatestreamview \
C:\ Tools \ blender-2.71-windows64 \
C:\ Tools \ Notepad ++ \
C:\ Tools \ QueryExpress \
C:\ Tools \ winscp555 \
C:\ Tools \ Xinorbis \

C:\ Tools \ _Sysinternals \ accesschk \
C:\ Tools \ _Sysinternals \ Autoruns \
C:\ Tools \ _Sysinternals \ depends22_x64 \
C:\ Tools \ _Sysinternals \ depends22_x86 \
C:\ Tools \ _Sysinternals \ LogonSessions \

これがアイデアを与えることを願っています。

編集:拡張情報

私はあなたの質問でインストール中にそのようなツールをどのようにインストールすればよいでしょうか?実際には、ファイルのコピーのような手動セットアップを意味します。

経験則:手動で管理されるファイルには、手動で作成されたフォルダーを使用します。システムフォルダを、直接制御しない(インストール)プロセスで使用できるようにします。 どのコンテンツが「自分のもの」であるか(および自由にコピーできます)、どのアプリケーションがインストーラーによって管理されているかをすぐに認識できます。

そのため、手動で(コピーして)インストールする場合は、

  • C:\Program Files -ここで見つかったプログラムは、単純に移行することはできません。再インストールする必要があります(移行のヒントを提供します)
  • C:\Program Files (x86) -上記と同様ですが、64ビットシステムでは、32ビットプログラムがここにあります(特定のアプリが32ビットか64ビットかを判断するヒントを与えることができます)
  • C:\ProgramData-ここにあるアプリケーションストレージは、これらのプログラムが独自の方法でデータの一部を保持していることを示しています。しかし、あなたはあなたのプログラムをデータの下に置くことについて尋ねましたか?良い考えではありません。
  • C:\Users\Steven\AppData-繰り返しますが、プログラムをデータの下に置くことは良い考えではありません。データについて質問した場合、このパスについていくつかの興味深いことが書けます。しかし、プログラムの場合は単に「いいえ」です。:)

可能なパス

  • C:\Users\Steven- これが共有コンピューターであり、整頓したい場合は、代替ルートにすることができるため、グローバルディレクトリを作成しないことにします。C:\Users\Steven\Toolsプログラムを考慮したり、Windowsの多くの場所からショートカットを介して利用できるC:\Users\Steven\Desktop\Tools快適なデスクトップフォルダーアクセスを使用したい場合もあります。ただし、前者の方が良い場合があり、このフォルダーへのショートカットをデスクトップに、または必要なときにいつでも配置できます。

編集:その他の役立つヒント:

Windows 10の[スタート ]メニューで小さなプログラムの一部を認識したい場合(名前のインクリメンタル検索またはCtrl+ Shift+ を使用したインスタント昇格起動用Enter)、そこにショートカットを追加して一度起動します。(その後、それらを削除できます。)


これは良さそうに聞こえますが、ベストプラクティスのドキュメントなどでサポートされていますか?もしそうなら、それは本当に答えを改善するでしょう。

@DoritoStyle –企業の現在のベストプラクティスドキュメントを確認する必要がある場合があります。より一般的なベストプラクティスのドキュメントについて知っている場合はお知らせください。確認します。
ミロクスラフ

1
「C:\ Utility」を使用しますが、それ以外は同じアプローチを使用します!
ジョンシュナイダー

「ツール」ではなく何か他のものも同様に機能しますか:C:\Otherまたはのようなものを使用する場合、それはC:\Users\<user>\Other「ツール」と同じように「合法」と見なされますか?
ヘンリック

@Henrik-標準がないため、自分の気持ちに合ったものを使用してください。たとえば、C:\ Progs(インストーラーなしで小さなプログラムを呼び起こす名前)を試しましたが、結局は直感的ではないと感じたため、名前をToolsに戻しました。
ミロクスラフ

11

私の知る限り、普遍的なアプローチはありません。

アプリケーションを配置するのC:\Program Filesは、かなり標準的な方法です。そして、あなたはアクセス保護を得るでしょう:通常の(そして昇格されていない)ユーザーはに書き込めませんC:\Program Files。したがって、このようなファイルを誤って削除したり、上書きしたりすることはできません。また、ウイルスからの保護も強化されています。

そのため、でフォルダーを作成しようとすると警告(昇格要求)が表示されC:\Program Filesます。

したがって、C:\Program Filesある最も安全な実行可能ファイルの場所。

ただし、.exe設定の変更を保存できないため、設定を近くに保存する(ポータブル)アプリには適していません。


C:\ProgramDataユーザー間で共有されるアプリケーションデータを保存するためのものです。デフォルトでは、すべてのユーザーがここでファイルとフォルダーを作成できますが、それらを作成したユーザーのみがファイルを変更できます。

このフォルダーは、共有アプリ/ツールに簡単に使用できます。同時に、私はこのフォルダーにアプリを見たことがない。


ユーザープロフィールにアプリを配置するC:\Users\<username>と、システムの他のユーザーはアプリにアクセスできなくなります。プロファイルに対するすべての権限を持っているため、セキュリティ警告は表示されません。これが、Chromeがユーザーのプロファイルにインストールされる理由です。昇格を促すことなく、Chrome自体を簡単に更新できます。

ユーザー単位モードでは、Windowsインストーラーパッケージ、.msiファイル、にインストールしC:Users\<username>\AppData\Microsoft\Installer\<ProductId>ます。そのため、非共有アプリをユーザーのプロファイルに保持することは非常に標準的です。

utilsユーザーのプロファイルに、自分だけに役立つアプリを含むフォルダーがあります。このフォルダーはPATH、簡単にアクセスできるようにユーザーの環境変数に追加されます。

共有アプリのC:\tools場合、おそらく別のドライブにある、または同様のディレクトリを使用します。グローバルPATH変数に追加されます。


7

私はある点に対して既に与えられた答えに同意します。しかし、本当に小さなプログラム(utils)の場合、私はそれらをbinフォルダー(私の場合はE:\ bin)に配置する傾向があります。これらのプログラムは通常、単一のexeファイルまたは自分のpythonスクリプトです。このフォルダーをPATH変数に追加して、コマンドラインからこれらのプログラムを使用できるようにします(かなり頻繁に使用する傾向があります)。


またC:\Program Files\bin、これらのタイプのツールとユーティリティのジェネリックを作成することも検討しました。フィードバックをお寄せいただきありがとうございます。
ヒッピートレール

5

私の知る限り、ベストプラクティスはありません。それをどのように処理するかを決定するのは、本当に個々にあなた次第です。

私は、インストーラーを使用するアプリケーションと同じ標準に従う傾向があります。実行可能ファイルまたはライブラリの\Program Files\場合、64BitのProgram Files (x86)\場合と32Bitの場合に配置します。

データファイルUsersは通常ユーザーに固有であるため、フォルダーに保存する傾向があります。

にデプロイするGoogle ChromeやClick-OnceアプリケーションなどのアプリケーションもありますがUsers\AppData\、これらは通常、複数のプロファイルで使用できません。

別のプロファイルにログインする必要がある場合、または管理者としてアプリケーションにアクセスできるため、最初の方法をお勧めします。

許可の警告に関して。まさにそれ、警告です。間違った理由でフォルダを使用しないように警告するだけですが、使用を妨げることはありません。


4
Program Filesフォルダーにアプリケーションを手動でインストールしないことをお勧めします。インストーラーのないアプリケーションは多くの場合高齢者または他のオペレーティングシステムのポートであるため、パスのスペースに必ずしもうまく対応できないためです。YMMV。
ハリージョンストン

3
私は手動に何もインストールしないことをお勧めします%ProgramFiles%インストーラなしのアプリケーションは、多くの場合、ポータブルであり、あなたがそこに書き込み権限がありません:あまりにも、しかし別の理由
kinokijuf

4

これらのアプリケーションを標準化する場合は、Chocolateyパッケージ標準を使用することをお勧めします。これは、さまざまな理由で有効です。これは主に、多くのソフトウェアが既にパッケージ化されており、わずかなコマンドでどこからでもインストールする準備ができているためです。

また、自由に配布できないアプリケーション用に独自のパッケージを作成することも簡単です。おそらく、あなたはあなたが所有するものを自分のネットワーク上で配布する権利を持っているでしょう。そのため、これらのアプリケーションでは、ローカルリポジトリを設定できます。多くのコンピューターを管理している場合、またはインターネット帯域幅が限られている場合、これは無料のものでも役立ちます。


2

cygwinのデフォルトのインストールを選択すると、すべてのファイルがc:\ cygwinに配置されます。私も同じアプローチを取ります。個人的にac:\ appsフォルダーがあります。過去に、c:\ utilsとc:\ cli(コマンドラインの略)を使用しました。ファイルの整理方法に大きく依存します。単発のユーティリティでは、それらをキャッチオールフォルダーに配置することをお勧めします。一連のユーティリティ(cygwin、sysinternals、rktoolsなど)の場合は、独自のサブフォルダーを提案できます。たとえば、すべてのsysinternalsをc:\ apps \ sysinternals内に配置できます。cygwinをインストールすると、愛するようになったUnixコマンドのほとんど(すべてではないにしても)が必要になります。

環境変数を忘れずに変更し([スタート]> [コントロールパネル]> [システム]> [詳細]> [環境変数])、新しいシステムパスをPATHシステム変数に追加してください。これにより、コマンドプロンプトから、またはWindows + R(コマンドの実行)を使用して、必要に応じて実行できます。


5
Cygwin開発者はWindows標準を気にせず、悪い習慣をコピーするのは間違っていると思います(ルートディレクトリにフォルダーを作成する)。\Program FilesLinuxでディレクトリを作成するような気がします。
カミル14

なぜそれが悪いことになるのかわかりません。CygwinはUnix環境用です。Unixツールを使用したい人向けに、CygwinがWindows標準に対応するのはなぜですか?

@Sunまさに!OPはWindowsのベストプラクティスを求めました。

1

C:\Users\Me\toolName(別名%homepath%\ toolName)Meこのツールの一部は(temp)ファイルを書き込み、Program filesフォルダーに書き込むためにユーザーの許可が必要になるため、ユーザーが必要とするツールを置く正しい場所です。もう1つの利点は、ユーザースペースに既にあるため、バックアップを忘れないことです。


2
私は%homepath%' rather than c:\ users \ me` を使用します。これは、デフォルトの場所が移動された場合でも正しい場所を指すため、より移植性があります。writing / temp部分の+1。
ヘネス14

私はそれが追加され、置き換えられなかった理由で修正され、編集されたままです、質問と同じ条件で答えることです、ヘネスに感謝します:)
Elazaron 14

0

これに関するルールはありません。好きな場所にインストールできますが、OSP(オペレーティングシステムパーティション)の非ユーザーフォルダーにインストールすることは、同じアクセス保護が得られるため、一般的には良いアイデアです。他のアプリケーションを使用していますか?これにより、誤って削除したり、サードパーティ(ウイルスなど)によって変更されたりすることが難しくなります。

個人的には、私は通常、プログラムを "C:\ Program Files(x86)"に置きます。これは、このようなプログラムのほとんどが32ビットであるためですが、64ビットプログラムの場合はC:\ Program Filesに配置します。システム関連プログラム(例:Imagex.exe)の場合、32ビットプログラムの場合は「C:\ Windows \ system32」に、64ビットプログラムの場合は「C:\ Windows \ system32」に配置して、デフォルトでC:\ Windows \ system32で起動するため、昇格したコマンドプロンプトを実行するときのコマンドライン。つまり、C:\ location \ name.exe "の代わりに" name.exe "と入力してプログラムを実行できます。

一部の人々は、新しいディレクトリを作成することで、通常のプログラムからポータブル(フォルダーの外でインストールまたは監視なしの変更を実行する必要はありません)および非インストーラーベース(ポータブルではないがインストーラーを使用する必要がない)プログラムを分離することを好みますOSPで(例:C:\ Portable Program Files(x86)、またはC:\ Dumpable Program Files(x86)。2つのうち2つ目は、たとえそれがきれい。

要約すると、ルールはありませんが、OSP(非ユーザーフォルダー)にそれらをインストールすると、望ましくないアンインストール/変更(悪意のある変更を含む)からプログラムを保護するのに役立ちます。組織は有益な場合があります(たとえば、前述のシステムCLIプログラム用のsystem32フォルダー)。


1
あなたは根本的に質問を誤解していると思います。元の質問の最初の部分は、「ルールとは何か」ではなく「ベストプラクティス」です。
スティーブンペニー14

@StevenPennyまったく違う、ただの言い回し。疑問の点は、Xをするか、またはX.をしないための理由からである
ロビン・フッド

私はちょうど私が好きなものを思いついた:EtcまたはEtceteraあなたが本当の派手なパンジーラテンを好むなら。近いところで、私も考えましたMisc。しかしEtc、私のために契約を結びました。:)
ヘンリック

0

Windows C:\ToolsSend Toメニューにショートカットを作成することは、いつでもどこからでもアクセスできるため、最良のオプションだと思います。この方法では、小さなプログラムを右クリックして、Windowsの任意の場所から[送信]メニューから[ ツール ]を選択することにより、小さなプログラムをすばやく「インストール」できます。

HowToGeekから[ 送信]メニューに追加する方法に関するこのチュートリアルを入手しまし た。要約を貼り付けます

SendToフォルダーにアクセスするには、Explorerウィンドウを開いて、次をアドレスバーに貼り付ける必要があります。

%APPDATA%\ Microsoft \ Windows \ SendTo

次に、そこにプログラムをコピーしたいフォルダーのショートカットを貼り付けます。

その後、新しいポータブルアプリをダウンロードするたびに、それを抽出してその場所に送信します。
唯一の問題は、手動で行う価値があると思うショートカットの作成です。
よろしく。


送信フォルダをする場所として使用するために本当に適していません、インストールプログラムを。具体的な目的は、つまり、プログラムでさらに処理するためにファイル/ドキュメントを送信できるようにすることです(たとえば、メモ帳でファイルを開く)。さらに、Send Toフォルダーに配置されたすべてのファイルは、Windowsのコンテキストメニューに表示されます。これには、.DLLのサポートが含まれます。ほとんどの場合、それは明らかに望ましくありません。
私は復活モニカ言う

1
いいえ。あなたとすべてのダウンボッターは私が意図したとおりの結果を得られなかったようです。たとえばC:\Tools\ Send Toフォルダにショートカットを追加し、どこからでもアクセスできるので、各プログラムを手動で対処する手間がかかりません。私の答えは、他の人が他の人を読むために対処するプロセスをより速くする可能性が高いです。それは私にとって素晴らしいことです。
UltraDEVV 2014

この追加の説明を回答に含めるために、可能な編集を行いました。回答は回答に基づいてアップ/ダウン投票されますが、必ずしもコメントに含まれる詳細に基づいているわけではありません。
私は

いいえ、Windows Vista以降では、%APPDATA%変数のルートは%USERPROFILE%\AppData\Roamingフォルダーにあるため、Windows 7の場合、上記のパスは正しいです。ただし、Windows XPでは、指定したとおりにRoamingフォルダーを追加する必要があります。
私は言う14

質問が明確でないと思われる場合は、明確にする必要があります。なぜ2つの回答を提出したのですか?
ラムハウンド

0

Windowsのデフォルトのシステムパス環境変数は次のようなものです(インストールされているWindowsのバージョンによって異なります)。

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

これらのオプションのうち、%SystemRoot%(通常はC:/)は、読み取り/書き込みに最適な選択肢のようで、後で簡単に参照できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.