Où installer de petits programmes sans programme d'installation sur Windows?


35

Sur la plate-forme Windows, la plupart des grandes applications sont livrées avec leur propre programme d'installation qui configure les dossiers sous C:\Program Files, éventuellement à d'autres endroits, et peut-être en ajoutant des clés de registre, etc.

Mais il y a encore pas mal d'outils qui ne sont constitués que d'un .exeou peut-être aussi d'un READMEet d'un .dllou deux.

Comment dois-je installer ces outils? Directement dans C:\Program Files? Tout dans un sous-dossier sous C:\Program Files? Quelque part sous C:\Users\Me? Quelque part totalement différent?

Ou peut-être des approches différentes pour les outils avec juste un .exepour ceux qui ont également d'autres fichiers, ou peut-être que seuls ceux avec .dlls doivent être traités différemment ...

Existe-t-il un moyen standard accepté de le faire? Une "meilleure pratique"? Si la réponse dépend de la version de Windows, j'utilise Windows 7.

En particulier, ce qui pourrait frapper les gens comme réponse évidente semble avoir un hic:

J'avais essayé de créer manuellement de nouveaux sous-dossiers sous C:\Program Files. En fait, je pensais l'avoir fait auparavant, mais Windows affiche une boîte de dialogue Accès au dossier de destination refusé . Cela m'a fait réfléchir à deux fois plutôt que de cliquer aveuglément sur Continuer .

Accès au dossier de destination refusé

En supposant que de plus grands esprits que le mien se sont heurtés à cela plusieurs fois au fil des ans, je voudrais demander à la communauté si une sorte de "meilleure pratique" a été acceptée.


3
De quel point de vue posez-vous cette question? Plus précisément, est-ce une application que vous écrivez, ou essayez-vous d'installer les applications de quelqu'un d'autre?
Harry Johnston

2
@HarryJohnston: C'est pour installer les applications d'autres personnes. L'autre jour, j'ai téléchargé plusieurs programmes conçus pour afficher ou modifier des fichiers très volumineux et quelques-uns n'avaient pas d'installateurs. Mais il en va de même pour la plupart des outils de ligne de commande sous Windows, dont j'en ai plusieurs.
hippietrail

@UltraDEVV: Je veux savoir si d'autres ont envisagé ce problème et décidé d'une "meilleure pratique". Je veux savoir quelles solutions sont disponibles avant de décider d'installer C:\Program Filesou non dans et ailleurs et je fournis des informations sur un obstacle potentiel à C:\Program Filesêtre une solution évidente.
hippietrail


@UltraDEVV: J'ai déjà lu le vôtre et j'ai déjà voté pour. C'est cool de voir cette question du dormeur reprendre vie après un repos de trois ans et demi!
hippietrail

Réponses:


25

Utilisation C:\Tools

ou C:\Users\<user>\Tools
 

J'utilise de nombreux petits programmes sans programme d'installation et je recommande ce qui suit:

  • Enregistrez-les tous dans C:\Tools
  • Si un programme se compose d'un seul fichier, placez-le directement sous C:\Tools
  • Si un programme se compose de plusieurs fichiers, placez-le sous C:\Tools\ProgramName
  • Les outils SysInternals ont une catégorie spéciale C:\Tools\_SysInternalscar ils sont nombreux

Je passe simplement C:\Toolsd'une machine à l'autre lors de la migration, fonctionne comme un charme.

Échantillon pratique (liste abrégée):

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 \ depend22_x64 \
C: \ Tools \ _Sysinternals \ depend22_x86 \
C: \ Tools \ _Sysinternals \ LogonSessions \

J'espère que cela donne une idée.

EDIT: Informations étendues

Je suppose que sous installer dans votre question Comment dois-je installer ces outils? vous voulez dire une configuration manuelle, quelque chose comme la copie des fichiers.

Règle générale: utilisez des dossiers créés manuellement pour les fichiers gérés manuellement. Laissez les dossiers système être utilisés par les processus (d'installation) que vous ne contrôlez pas directement. Vous bénéficierez immédiatement de la reconnaissance du contenu qui vous appartient (et vous pouvez le copier librement) et de l'application gérée par le programme d'installation.

Donc, lors de l'installation manuelle (par copie), restez à l'écart de

  • C:\Program Files - les programmes trouvés ici ne peuvent pas être simplement migrés, doivent être réinstallés (donne un excellent indice pour la migration)
  • C:\Program Files (x86) - comme ci-dessus, mais sur les systèmes 64 bits, les programmes 32 bits vont ici (peuvent donner un indice pour déterminer si une application particulière est 32 bits ou 64 bits)
  • C:\ProgramData- les stockages d'applications trouvés ici montrent que ces programmes conservent certaines de leurs données à leur manière. Mais vous avez demandé de placer vos programmes sous Data? Pas une bonne idée.
  • C:\Users\Steven\AppData- encore une fois, placer des programmes sous Data n'est pas une bonne idée. Si vous avez posé des questions sur les données, plusieurs choses intéressantes peuvent être écrites sur ce chemin. Mais pour les programmes, simplement «non». :)

Chemin possible

  • C:\Users\Steven- peut être votre racine alternative s'il s'agit d'un ordinateur partagé et que vous souhaitez le garder en ordre, vous décidez donc de ne pas créer de répertoires globaux. Vous pouvez envisager C:\Users\Steven\Toolspour vos programmes ou même C:\Users\Steven\Desktop\Toolssi vous souhaitez utiliser un accès confortable aux dossiers du bureau disponible via un raccourci à partir de nombreux endroits dans Windows. Mais mieux peut être l'ancien et vous pouvez toujours placer le raccourci vers ce dossier sur le bureau ou chaque fois que nécessaire.

Edit: Astuce supplémentaire utile:

Si vous souhaitez rendre certains de vos petits programmes reconnus dans le menu Démarrer de Windows 10 (pour une recherche incrémentielle de leurs noms ou un démarrage instantané élevé à l'aide de Ctrl+ Shift+ Enter), ajoutez-y leurs raccourcis et lancez-les une fois . (Ensuite, vous pouvez les supprimer.)


Cela semble bien, mais est-il pris en charge par la documentation des meilleures pratiques ou quelque chose comme ça? Si c'est le cas, cela améliorerait vraiment la réponse.

@ DoritoStyle - vous devrez peut-être vérifier la documentation actuelle sur les meilleures pratiques dans votre entreprise. Si vous connaissez une documentation plus générale sur les meilleures pratiques, faites-le moi savoir et je la vérifierai.
miroxlav

1
J'utilise "C: \ Utility" mais sinon j'utilise cette même approche!
Jon Schneider

Est-ce que quelque chose d'autre, plutôt que «Outils», fonctionnera aussi bien: Si je devais utiliser quelque chose comme C:\Otherou C:\Users\<user>\Other, cela serait-il considéré comme aussi «légitime» que «Outils»?
Henrik

@Henrik - puisqu'il n'y a pas de norme, utilisez ce qui vous convient et qui est assez clair. Par exemple, j'ai essayé C: \ Progs (le nom évoque de petits programmes sans programme d'installation), mais à la fin de la journée, cela ne semblait pas intuitif, j'ai donc rétabli le nom sur Tools.
miroxlav

11

Pour autant que je sache, il n'y a pas d'approche universelle.

Placer vos applications C:\Program Filesest une manière plutôt standard. Et vous obtiendrez la protection d'accès : les utilisateurs réguliers (et non élevés) ne peuvent pas écrire C:\Program Files. Vous ne pouvez donc pas accidentellement supprimer, écraser ces fichiers; et ils sont mieux protégés contre les virus.

C'est pourquoi vous obtenez l'avertissement - demande d'élévation - lorsque vous essayez de créer un dossier dans C:\Program Files.

C'est C:\Program Filesdonc l' endroit le plus sûr pour les fichiers exécutables.

Cependant, il ne convient pas aux applications (portables) qui stockent leur configuration près de la .execar elles ne pourront pas enregistrer les modifications de configuration.


C:\ProgramDatasert à stocker les données d'application partagées entre les utilisateurs. Par défaut, tous les utilisateurs peuvent créer des fichiers et des dossiers ici, mais seul l'utilisateur qui les a créés peut modifier les fichiers.

Ce dossier pourrait être facilement utilisé pour les applications / outils partagés. En même temps, je n'ai jamais vu d'application dans ce dossier.


Si vous placez des applications dans votre profil utilisateur C:\Users\<username>, les autres utilisateurs du système n'y auront pas accès. Vous avez toutes les autorisations sur votre profil, vous ne recevrez donc aucun avertissement de sécurité. C'est la raison pour laquelle Chrome s'installe dans le profil de l'utilisateur: il peut se mettre à jour facilement sans demander d'élévation.

En mode par utilisateur, packages, .msifichiers d' installation de Windows Installer C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Il est donc tout à fait standard de conserver les applications non partagées dans le profil de l'utilisateur.

J'ai un utilsdossier dans le profil de mon utilisateur avec des applications qui ne sont utiles qu'à moi. Ce dossier est ajouté à PATHla variable d'environnement de mes utilisateurs pour un accès facile.

Pour les applications partagées, j'utilise C:\toolsun répertoire similaire, éventuellement sur un autre lecteur. Il est ajouté à la PATHvariable globale .


7

Je suis d'accord avec les réponses déjà données sur un certain point. Mais pour les très petits programmes (utils), j'ai tendance à les mettre dans le dossier bin (dans mon cas E: \ bin). Ces programmes sont généralement des fichiers exe uniques ou mes propres scripts python. J'ajoute ce dossier à la variable PATH pour pouvoir utiliser ces programmes à partir de la ligne de commande (que j'ai tendance à utiliser beaucoup).


J'ai également envisagé de créer un générique C:\Program Files\binpour ces types d'outils et d'utilitaires. Merci pour les commentaires.
hippietrail

5

Pour autant que je sache, il n'y a pas de meilleures pratiques. C'est vraiment à vous de décider individuellement comment vous voulez le gérer.

J'ai tendance à suivre la même norme que toute application avec un installateur. S'il s'agit d'un exécutable ou d'une bibliothèque, je le placerais dans \Program Files\s'il s'agit de 64 bits et Program Files (x86)\de 32 bits.

Les fichiers de données que j'ai tendance à stocker dans mes Usersdossiers car ils sont normalement spécifiques à un utilisateur.

Il existe également des applications comme Google Chrome et les applications Click-Once qui se déploient sur Users\AppData\, mais elles ne sont normalement pas disponibles pour plusieurs profils.

Je préfère la première méthode car si je dois me connecter sur un autre profil ou en tant qu'administrateur, je peux toujours accéder aux applications.

En ce qui concerne l'avertissement d'autorisation. C'est exactement cela, un avertissement . Il s'agit simplement de vous avertir d'utiliser le dossier pour de mauvaises raisons, mais cela ne vous empêche pas de l'utiliser.


4
Je recommande de ne pas installer manuellement les applications dans le dossier Program Files, car les applications sans programme d'installation sont souvent des personnes âgées ou des ports d'autres systèmes d'exploitation, de sorte qu'elles ne gèrent pas toujours bien l'espace sur le chemin. YMMV.
Harry Johnston

3
Je recommande de ne pas installer quoi que ce soit manuellement %ProgramFiles%, mais pour une autre raison: les applications sans installateurs sont souvent portables et vous n'y avez pas d'autorisation d'écriture
kinokijuf

4

Si vous cherchez à standardiser ces applications, je vous suggère d'utiliser les normes du package Chocolatey . C'est bon pour beaucoup de raisons différentes; principalement parce que beaucoup de logiciels ont déjà été emballés pour vous et sont prêts à être installés de n'importe où avec seulement quelques commandes.

Il est également facile de créer vos propres packages pour des applications que vous ne pouvez pas distribuer librement. Vous avez probablement le droit de distribuer tout ce que vous possédez sur votre propre réseau; donc pour ces applications, vous pouvez configurer un référentiel local . Si vous gérez de nombreux ordinateurs ou avez une bande passante Internet limitée, cela peut être utile même pour les trucs gratuits.


2

Si vous prenez les choix d'installation par défaut de cygwin, il place tous vos fichiers dans c: \ cygwin. Je prendrais la même approche. J'ai personnellement le dossier ac: \ apps. Dans le passé, j'ai utilisé c: \ utils et c: \ cli (abréviation de ligne de commande). Cela dépend vraiment de la façon dont vous souhaitez organiser vos fichiers. Je suggérerais aux utilitaires simples de les placer dans un dossier catchall. Pour une suite d'utilitaires (par exemple cygwin, sysinternals, rktools), puis-je suggérer un sous-dossier qui lui soit propre. Par exemple, vous pouvez placer tous les sysinternals dans c: \ apps \ sysinternals. Si vous installez cygwin, cela prendra la plupart (sinon la totalité) des commandes Unix que vous avez appris à aimer.

N'oubliez pas de modifier vos variables d'environnement (Démarrer> Panneau de configuration> Système> Avancé> Variables d'environnement) et d'ajouter de nouveaux chemins d'application à votre variable système PATH. Cela vous permet de les exécuter à la demande à partir de l'invite de commandes ou en utilisant Windows + R (exécuter la commande).


5
Je pense que les développeurs Cygwin ne se soucient pas des normes Windows et il est faux de copier leur mauvaise habitude (créer des dossiers dans le répertoire racine). J'ai l'impression que c'est comme créer un \Program Filesrépertoire sous Linux.
Kamil

Je ne sais pas pourquoi ce serait une mauvaise chose. Cygwin est destiné à un environnement Unix. Pourquoi Cygwin répondrait-il aux normes Windows, alors qu'ils s'adressent aux personnes qui souhaitent utiliser les outils Unix?
dim

@Sun exactement! OP a demandé les meilleures pratiques pour Windows.

1

C:\Users\Me\toolName(aka% homepath% \ toolName) est le bon endroit pour placer les outils en supposant que vous le vouliez pour l' Meutilisateur car certains de ces outils écrivent des fichiers (temporaires) et nécessiteront la permission de l'utilisateur pour écrire dans le Program filesdossier. un autre avantage est que vous n'oublierez pas de le sauvegarder car il est déjà dans l'espace utilisateur.


2
J'utiliserais %homepath%' rather than c: \ users \ me`. Cela pointe vers le bon emplacement même si l'emplacement par défaut a été déplacé, et est donc plus portable. +1 pour la partie écriture / temp.
Hennes

je me tiens corrigé et édité dans la raison pour laquelle il a été ajouté et non remplacé est de répondre avec les mêmes termes que la question, merci Hennes :)
Elazaron

0

Il n'y a pas de règles à ce sujet, vous pouvez les installer où vous le souhaitez, mais les installer sur votre OSP (partition du système d'exploitation) dans un dossier non utilisateur est généralement une bonne idée, car vous obtiendrez les mêmes protections d'accès êtes-vous sur d'autres applications; cela rend plus difficile la suppression accidentelle ou leur modification par un tiers (ex: virus).

Personnellement, je mets généralement le programme dans "C: \ Program Files (x86)", car la plupart des programmes que j'ai rencontrés sont en 32 bits, mais si c'était un programme en 64 bits, je le placerais dans C: \ Program Files " . S'il s'agit d'un programme lié au système (par exemple: Imagex.exe), je le placerai dans "C: \ Windows \ system32" pour les programmes 32 bits, et "C: \ Windows \ system32" pour les programmes 64 bits pour permettre un accès plus facile à partir du ligne de commande lors de l'exécution d'invites de commandes élevées, car vous démarrez par défaut dans C: \ Windows \ system32 "; cela signifie que vous pouvez taper "name.exe" au lieu de C: \ location \ name.exe "pour exécuter le programme.

Certaines personnes préfèrent séparer leurs programmes portables (ne nécessite pas d'installation ou d'effectuer des alternances non supervisées en dehors de son dossier) et non basés sur l'installateur (non portables, mais ne nécessitent pas l'utilisation d'un programme d'installation) des programmes réguliers en créant un nouveau répertoire sur leur OSP (par exemple: C: \ Portable Program Files (x86), ou C: \ Dumpable Program Files (x86). Je conseillerais le 2e des 2 étant donné son niveau de précision plus élevé, même s'il ne sonne pas comme joli.

Pour résumer, il n'y a pas de règles, mais si vous les installez sur l'OSP (dans un dossier non utilisateur), vous serez en mesure d'aider à protéger le programme contre la désinstallation / les modifications indésirables (y compris les modifications malveillantes), et dans certaines circonstances l'organisation peut être bénéfique (par exemple: le dossier system32 mentionné précédemment pour les programmes CLI système).


1
Je pense que vous avez fondamentalement mal compris la question. La première partie de la question initiale est "Meilleures pratiques", pas "Quelles sont les règles".
Steven Penny

@StevenPenny Pas du tout, juste une formulation différente. Le point de la question est les raisons de faire X ou de ne pas faire X.
Robin Hood

Je viens de trouver quelque chose que j'aime: Etcou Etceterasi vous préférez la vraie pensée latine fantaisie. Sur une deuxième place proche, j'ai également considéré Misc. Mais Etcscellé l'accord pour moi. :)
Henrik

0

Je pense que la création d'un raccourci vers C:\Toolsdans le Send Tomenu dans Windows est la meilleure option car il est toujours accessible de n'importe où. De cette façon, vous pouvez rapidement «installer» vos petits programmes en cliquant dessus avec le bouton droit et en choisissant Outils dans le menu Envoyer vers de n'importe où dans Windows.

J'ai reçu ce tutoriel sur la façon d'ajouter au menu Envoyer vers de HowToGeek
Je colle le résumé:

Pour accéder au dossier SendTo, vous devrez ouvrir une fenêtre de l'Explorateur, puis coller ce qui suit dans la barre d'adresse.

% APPDATA% \ Microsoft \ Windows \ SendTo

Collez ensuite le raccourci du dossier dans lequel vous souhaitez y copier vos programmes.

Ensuite, chaque fois que vous téléchargez une nouvelle application portable, extrayez-la et envoyez-la à cet endroit.
Le seul problème est la création de raccourcis qui, je pense, valent la peine de le faire manuellement.
Cordialement.


Le dossier Envoyer vers n'est pas vraiment adapté pour être utilisé comme emplacement pour installer un programme. Il a un objectif spécifique, à savoir, permettre l'envoi de fichiers / documents pour une manipulation ultérieure par un programme (par exemple, ouvrir un fichier dans le bloc-notes). De plus, tous les fichiers placés dans le dossier Envoyer vers apparaîtront dans le menu contextuel de Windows, y compris les .DLL prenant en charge. Ce n'est clairement pas souhaitable dans la majorité des cas.
Je dis Reinstate Monica

1
Non. On dirait que vous et tous les votants n'ont pas compris ce que je voulais dire. Je veux dire, ajoutez un raccourci par exemple C:\Tools\ au Send Todossier et accédez-y de n'importe où, alors vous n'aurez pas les tracas de copier manuellement chacun de vos programmes. Ma réponse est susceptible d'accélérer le processus d'adaptation à d'autres choses, lire les autres. Cela fonctionne très bien pour moi.
UltraDEVV

J'ai fait une éventuelle modification pour inclure cette clarification supplémentaire dans votre réponse. Les réponses sont votées haut / bas sur la base de la réponse, pas nécessairement sur les détails inclus dans les commentaires, donc j'espère que cela vous aidera.
Je dis Reinstate Monica

Non, à partir de Windows Vista, la %APPDATA%variable est enracinée dans le %USERPROFILE%\AppData\Roamingdossier, donc pour Windows 7 le chemin ci-dessus est correct. Dans Windows XP, vous devez cependant ajouter le dossier Itinérance comme vous l'avez indiqué.
Je dis Reinstate Monica

Si vous pensez que votre question n'est pas claire, vous devez la clarifier. Pourquoi avez-vous soumis deux réponses?
Ramhound

0

La variable d'environnement Path système par défaut dans Windows est quelque chose comme (selon la version de Windows installée):

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

Parmi ces options,% SystemRoot% (qui est généralement C:/) semble être le meilleur choix pour vous en lecture / écriture et il sera facile de s'y référer plus tard.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.