30

На платформе Windows большинство крупных приложений поставляются со своим собственным установщиком, который устанавливает папки в C:\Program Files , возможно, в некоторых других местах, и, возможно, добавляет некоторые ключи реестра и т.д.

Но есть еще довольно много инструментов, которые состоят только из .exe или, может быть, также README и .dll или два.

Как мне установить такие инструменты? Прямо в C:\Program Files? Все в одной подпапке в C:\Program Files? Где-нибудь под C:\Users\Me? Где-то совсем другое?

Или, может быть, другие подходы к инструментам, использующим только .exe к тем, у которых есть и другие файлы, или, может быть, нужно иначе относиться только к тем, у которых есть .dll ...

Есть ли стандартный принятый способ сделать это? "Лучшая практика"? Если ответ зависит от версии Windows, я использую Windows 7.

В частности, то, что может поразить людей, поскольку очевидный ответ, кажется, имеет подвох:

Я пытался вручную создать новые подпапки в C:\Program Files . На самом деле я думал, что делал это раньше, но Windows выдает диалоговое окно « Доступ к целевой папке запрещен» . Это заставило меня подумать дважды, а не слепо нажимать « Продолжить» .

Доступ к папке назначения запрещен

Исходя из предположения о том, что за эти годы много раз у меня возникали лучшие умы, чем я, я хотел бы спросить сообщество, не пришла ли какая-то "лучшая практика".

10 ответов10

20

Используйте 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 - найденные здесь хранилища приложений показывают, что эти программы хранят некоторые из своих данных по-своему. Но вы спрашивали о размещении ваших программ в Data? Не хорошая идея.
  • C:\Users\Steven\AppData - опять же, помещать программы в Data не очень хорошая идея. Если вы спросили о данных, то об этом пути можно написать несколько интересных вещей. Но для программ просто «нет». :)

Возможный путь

  • C:\Users\Steven - может быть вашим альтернативным пользователем root, если это общий компьютер, и вы хотите сохранить его в чистоте, поэтому вы решили не создавать глобальные каталоги. Вы можете рассмотреть C:\Users\Steven\Tools для ваших программ или даже C:\Users\Steven\Desktop\Tools если вы хотите использовать удобный доступ к папке рабочего стола, доступный через ярлык из многих мест в Windows. Но лучше может быть первый, и вы все равно можете поместить ярлык в эту папку на рабочий стол или при необходимости.

Редактировать: Дополнительная полезная подсказка:

Если вы хотите, чтобы некоторые из ваших небольших программ распознавались в меню « Пуск» Windows 10 (для пошагового поиска по их именам или мгновенного запуска с повышенными правами с помощью Ctrl+Shift+Enter), добавьте туда их ярлыки и запустите их один раз. (Тогда вы можете удалить их.)

9

Насколько я знаю, универсального подхода нет.

Размещение ваших приложений в C:\Program Files - довольно стандартный способ. И вы получите защиту доступа: обычные (и не повышенные) пользователи не могут писать в C:\Program Files . Таким образом, вы не можете случайно удалить, перезаписать такие файлы; и они лучше защищены от вирусов.

Вот почему вы получаете предупреждение - запрос на повышение прав - при попытке создать папку в C:\Program Files .

Следовательно, C:\Program Files является наиболее безопасным местом для исполняемых файлов.

Однако он не подходит для (переносимых) приложений, которые хранят свою конфигурацию рядом с .exe потому что они не смогут сохранить изменения конфигурации.


C:\ProgramData предназначен для хранения данных приложения, которыми обмениваются пользователи. По умолчанию все пользователи могут создавать файлы и папки здесь, но только пользователь, создавший их, может изменять файлы.

Эта папка может быть легко использована для общих приложений / инструментов. В то же время я никогда не видел приложение в этой папке.


Если вы разместите приложения в своем профиле пользователя, C:\Users\<username> , другие пользователи системы не будут иметь к нему доступа. У вас есть все разрешения для вашего профиля, поэтому вы не получите никакого предупреждения безопасности. Вот почему Chrome устанавливается в профиль пользователя: он может легко обновляться без запроса повышения прав.

В пользовательском режиме пакеты установщика Windows, .msi файлы, устанавливаются в C:Users\<username>\AppData\Microsoft\Installer\<ProductId> . Таким образом, это вполне стандартно, чтобы не публиковать приложения в профиле пользователя.

У меня есть папка utils в профиле моего пользователя с приложениями, которые полезны только для меня. Эта папка добавлена в переменную окружения PATH моего пользователя для легкого доступа.

Для общих приложений я использую C:\tools или аналогичный каталог, возможно, на другом диске. Это добавлено к глобальной PATH .

7

Я согласен с уже даными ответами в какой-то момент. Но для действительно небольших программ (утилит) я склонен помещать их в папку bin (в моем случае E:\bin). Эти программы обычно представляют собой один исполняемый файл или мои собственные скрипты на Python. Я добавляю эту папку в переменную PATH, чтобы я мог использовать эту программу из командной строки (которую я использую довольно часто).

5

Насколько я знаю, нет лучших практик. Вы сами решаете, как вы хотите с этим справиться.

Я склонен следовать тому же стандарту, что и любое приложение с установщиком. Если это исполняемый файл или библиотека, я бы поместил их в папку \Program Files\ если она 64-битная, и Program Files (x86)\ если она 32-битная.

Файлы данных, которые я обычно храню в папках « Users так как они обычно относятся к конкретному пользователю.

Существуют также приложения, такие как Google Chrome и Click-Once Applications, которые развертываются в Users\AppData\ , однако они обычно не доступны для нескольких профилей.

Я предпочитаю первый метод, потому что, если мне нужно войти в другой профиль или как администратор, я все равно могу получить доступ к приложениям.

Что касается разрешения предупреждения. Это именно то, предупреждение. Это просто предупредить вас об использовании папки по неправильным причинам, однако это не мешает вам использовать ее.

3

Если вы хотите стандартизировать эти приложения, то я бы предложил использовать стандарты пакетов Chocolatey . Это хорошо по многим различным причинам; главным образом потому, что большая часть программного обеспечения уже была упакована для вас и готова к установке из любой точки всего несколькими командами.

Также легко создавать собственные пакеты для приложений, которые вы не можете свободно распространять. Вы, вероятно, имеете право распространять все, что у вас есть, в своей сети; поэтому для этих приложений вы можете настроить локальный репозиторий. Если вы управляете многими компьютерами или у вас ограниченная пропускная способность интернета, это может быть полезно даже для бесплатных вещей.

2

Если вы выберете установку Cygwin по умолчанию, она поместит все ваши файлы в папку c:\cygwin. Я бы взял такой же подход. У меня лично есть папка ac:\apps. В прошлом я использовал c:\utils и c:\cli (сокращение от командной строки). Это действительно зависит от того, как вы хотите организовать свои файлы. Я бы посоветовал для одиночных утилит поместить их в специальную папку. Для набора утилит (например, cygwin, sysinternals, rktools) я мог бы предложить собственную подпапку. Например, вы можете поместить все sysinternals в c:\apps\sysinternals. Если вы установите Cygwin, это займет большинство (если не все) команд Unix, которые вы полюбили.

Не забудьте изменить переменные среды (Пуск> Панель управления> Система> Дополнительно> Переменные среды) и добавить любые новые пути к приложениям в системную переменную PATH. Это позволяет вам запускать их по требованию из командной строки или с помощью Windows+R (команда запуска).

1

C:\Users\Me\toolName (он же% homepath%\toolName) - это правильное место для размещения инструментов, если вы хотите, чтобы они были для пользователя Me поскольку некоторые из этих инструментов пишут (временные) файлы и требуют разрешения пользователя по порядку. записать в папку Program files Files. Еще один плюс в том, что вы не забудете сделать резервную копию, потому что она уже находится в пользовательском пространстве.

0

Системная переменная среды Path по умолчанию в Windows выглядит примерно так (в зависимости от установленной версии Windows):

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

Из этих опций% SystemRoot% (обычно это C:/) кажется лучшим выбором для чтения / записи, и на него будет легко ссылаться позже.

0

Нет никаких правил по этому поводу, вы можете установить их где угодно, но их установка в OSP (раздел операционной системы) в непользовательской папке, как правило, хорошая идея, потому что вы получите те же средства защиты доступа есть ли у вас другие приложения; это усложняет случайное удаление или изменение их третьей стороной (например, вирусом).

Лично я обычно помещаю программу в «C:\Program Files (x86)», потому что большинство таких программ, с которыми я сталкивался, 32-битные, но если бы это была 64-битная программа, я бы поместил ее в C:\Program Files » , Если это программа, связанная с системой (например, Imagex.exe), тогда я помещу ее в «C:\Windows\system32» для 32-битных программ и в «C:\Windows\system32» для 64-битных программ, чтобы упростить доступ из команды строка при запуске командных строк с повышенными правами, потому что вы запускаете по умолчанию в C:\Windows\system32 "; это означает, что вы можете ввести" name.exe "вместо C:\location\name.exe" для запуска программы.

Некоторые люди предпочитают отделять свои переносимые (не требующие установки или выполнения неконтролируемых изменений вне своей папки) и не основанные на установщике (не переносимые, но не требующие использования установщика) программы от обычных программ путем создания нового каталога на их OSP (например: C:\Portable Program Files (x86) или C:\Dumpable Program Files (x86). Я бы посоветовал 2-й из 2-х, учитывая, что это более высокий уровень точности, даже если это звучит не очень красиво.

Подводя итог, нет никаких правил, однако, если вы установите их в OSP (в непользовательской папке), вы сможете защитить программу от нежелательных деинсталляций / модификаций (включая вредоносные модификации), а также при некоторых обстоятельствах. организация может быть полезной (например: ранее упомянутая папка system32 для системных программ CLI).

0

Я думаю, что создание ярлыка для C:\Tools в меню « Send To в Windows - лучший вариант, так как он всегда доступен из любого места. Таким образом, вы можете быстро "установить" свои небольшие программы, щелкнув их правой кнопкой мыши и выбрав « Инструменты» в меню "Отправить" из любой точки Windows.

Я получил этот урок о том, как добавить в меню «Отправить» от HowToGeek
Я вставляю резюме:

Чтобы попасть в папку SendTo, вам нужно открыть окно проводника, а затем вставить следующее в адресную строку.

% APPDATA%\Microsoft\Windows\SendTo

Затем вставьте ярлык в папку, в которую вы хотите скопировать свои программы.

Затем каждый раз, когда вы загружаете новое портативное приложение, просто извлекайте его и отправляйте в это место.
Единственная проблема - это создание ярлыков, которые, на мой взгляд, стоит делать вручную.
С уважением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .