Dove installare piccoli programmi senza programmi di installazione su Windows?


30

Sulla piattaforma Windows, la maggior parte delle applicazioni di grandi dimensioni ha un proprio programma di installazione che imposta le cartelle sotto C:\Program Files, forse altri posti, e forse aggiungendo alcune chiavi di registro, ecc.

Ma ci sono ancora alcuni strumenti in giro che consistono solo di un .exe o forse anche a README e a .dll o due.

Come dovrei installare questi strumenti? Direttamente in C:\Program Files? Tutto in una sottocartella sotto C:\Program Files? Da qualche parte sotto C:\Users\Me? Da qualche parte totalmente diverso?

O forse approcci diversi per gli strumenti con solo un .exe a quelli che hanno anche altri file, o forse solo quelli con .dll s devono essere trattati in modo diverso ...

C'è un modo standard accettato per farlo? Una "migliore pratica"? Se la risposta dipende dalla versione di Windows, sto usando Windows 7.

In particolare, ciò che potrebbe colpire le persone come risposta ovvia sembra avere una presa:

Ho provato a creare manualmente nuove sottocartelle sotto C:\Program Files. In effetti pensavo di averlo già fatto prima, ma Windows apre un dialogo Accesso alla cartella di destinazione negato . Questo mi ha indotto a pensarci due volte piuttosto che cliccare ciecamente Continua .

Destination Folder Access Denied

Partendo dal presupposto che menti più grandi delle mie si sono imbattute in questo molte volte nel corso degli anni, vorrei chiedere alla comunità se una sorta di "buona pratica" è stata accettata.


3
Da che punto di vista stai ponendo questa domanda? In particolare, si tratta di un'applicazione che stai scrivendo o stai cercando di installare le applicazioni di qualcun altro?
Harry Johnston

2
@HarryJohnston: È per l'installazione di applicazioni di altre persone. Ho scaricato diversi programmi progettati per visualizzare o modificare file molto grandi l'altro giorno e un paio non aveva installatori. Ma lo stesso vale per la maggior parte degli strumenti da riga di comando anche su Windows, di cui ne ho diversi.
hippietrail

@UltraDEVV: voglio sapere se altri hanno preso in considerazione questo problema e deciso una "migliore pratica". Voglio sapere quali soluzioni sono disponibili prima di decidere se installare C:\Program Files o altrove e fornisco informazioni su un potenziale ostacolo C:\Program Files essendo una soluzione ovvia.
hippietrail


@UltraDEVV: Ho già letto il tuo e ho già votato per questo. È bello vedere questa domanda di sonno tornare in vita dopo un riposo di tre anni e mezzo!
hippietrail

Risposte:


20

Uso C:\Tools

o C:\Users\<user>\Tools

Sto usando molti piccoli programmi senza programma di installazione e sto raccomandando quanto segue:

  • Salvali tutti dentro C:\Tools
  • Se un programma è costituito da un singolo file, inserirlo direttamente sotto C:\Tools
  • Se un programma è costituito da più file, metterlo sotto C:\Tools\ProgramName
  • Gli strumenti SysInternals hanno una categoria speciale C:\Tools\_SysInternals perché ce ne sono molti

Mi sto semplicemente muovendo C:\Tools da macchina a macchina durante la migrazione, funziona come un fascino.

Esempio pratico (elenco abbreviato):

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\

Spero che questo dia un'idea.

EDIT: informazioni estese

Suppongo che sotto installare nella tua domanda Come dovrei installare questi strumenti? in realtà intendi l'impostazione manuale, qualcosa di simile copiatura i file.

Regola generale: utilizza le cartelle create manualmente per i file mantenuti manualmente. Consenti alle cartelle di sistema di essere utilizzate da processi (di installazione) che non controlli direttamente. Otterrai immediatamente il vantaggio del riconoscimento del contenuto che è "tuo" (e puoi copiarlo liberamente) e di quale applicazione è gestita dall'installatore.

Quindi, quando si installa manualmente (copiando), stare lontano da

  • C:\Program Files - i programmi trovati qui non possono essere semplicemente migrati, devono essere reinstallati (offre un ottimo suggerimento per la migrazione)
  • C:\Program Files (x86) - come sopra, ma su sistemi a 64 bit, i programmi a 32 bit vanno qui (può dare un suggerimento per determinare se una particolare app è a 32 o 64 bit)
  • C:\ProgramData - Gli archivi delle applicazioni qui trovati mostrano che questi programmi mantengono alcuni dei loro dati a modo loro. Ma hai chiesto di mettere il tuo programmi sotto Dati? Non è una buona idea.
  • C:\Users\Steven\AppData - di nuovo, mettendo programmi sotto Data non è una buona idea. Se hai chiesto informazioni sui dati, allora su questo percorso possono essere scritte diverse cose interessanti. Ma per i programmi semplicemente "no". :)

Percorso possibile

  • C:\Users\Steven - può essere la tua radice alternativa se si tratta di un computer condiviso e si desidera mantenerlo in ordine, quindi si decide di non creare alcuna directory globale. Puoi prendere in considerazione C:\Users\Steven\Tools per i tuoi programmi o anche C:\Users\Steven\Desktop\Tools se vuoi usare comodo Desktop accesso alla cartella disponibile tramite collegamento da molti posti in Windows. Ma meglio può essere il precedente e puoi comunque posizionare il collegamento a questa cartella sul desktop o quando necessario.

Modificare: Suggerimento utile aggiuntivo:

Se vuoi rendere alcuni dei tuoi piccoli programmi riconosciuti in Windows 10 Inizio menu (per la ricerca incrementale dei loro nomi o inizio immediato immediato utilizzando Ctrl + Cambio + accedere ), aggiungi le scorciatoie e avvialo una volta . (Quindi puoi rimuoverli.)


Questo suona bene, ma è supportato dalla documentazione delle migliori pratiche o qualcosa del genere? Se così fosse, migliorerebbe davvero la risposta.

@DoritoStyle: potrebbe essere necessario verificare la documentazione corrente sulle best practice nella propria azienda. Se sei a conoscenza di una documentazione più generica sulle migliori pratiche, faccelo sapere e la controllerò.
miroxlav

Io uso "C: \ Utility" ma altrimenti uso lo stesso approccio!
Jon Schneider

Qualunque altra cosa, invece degli "Strumenti" funzionerà altrettanto bene: se dovessi usare qualcosa del genere C:\Other o C:\Users\<user>\Other, sarebbe considerato "legittimo" come "Strumenti"?
Henrik

@ Henrik - dal momento che non esiste uno standard, usa quello che si adatta ai tuoi sentimenti ed è abbastanza chiaro. Ad esempio, ho provato C: \ Progs (il nome evoca piccoli programmi senza programma di installazione), ma alla fine della giornata non sembrava intuitivo, quindi ho ripristinato il nome in Strumenti.
miroxlav

9

Per quanto ne so non c'è un approccio universale.

Inserimento delle tue applicazioni C:\Program Files è un modo piuttosto standard. E otterrai il protezione di accesso : gli utenti normali (e non elevati) non possono scrivere C:\Program Files. Quindi non è possibile cancellare accidentalmente, sovrascrivere tali file; e sono meglio protetti dai virus.

Questo è il motivo per cui ricevi l'avviso - richiesta di elevazione - quando provi a creare una cartella C:\Program Files.

Quindi, C:\Program Files è il più sicuro posto per file eseguibili.

Tuttavia, non è adatto per le app (portatili) che memorizzano la loro configurazione vicino a .exe perché non saranno in grado di salvare le modifiche alla configurazione.


C:\ProgramData è per la memorizzazione dei dati dell'applicazione condivisi tra gli utenti. Per impostazione predefinita tutti gli utenti possono creare file e cartelle qui, ma solo l'utente che li ha creati può modificare i file.

Questa cartella può essere facilmente utilizzata per app / strumenti condivisi. Allo stesso tempo, non ho mai visto un'app in questa cartella.


Se posizioni app nel tuo profilo utente, C:\Users\<username>, gli altri utenti del sistema non potranno accedervi. Hai tutte le autorizzazioni per il tuo profilo, quindi non riceverai alcun avviso di sicurezza. Questo è il motivo per cui Chrome si installa nel profilo dell'utente: può aggiornarsi facilmente senza richiedere elevazione.

In modalità per utente, i pacchetti di Windows Installer, .msi file, installa su C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Quindi è abbastanza normale mantenere le app non condivise nel profilo dell'utente.

io ho utils cartella nel profilo del mio utente con app che sono utili solo a me. Questa cartella è stata aggiunta ai miei utenti PATH variabile d'ambiente per un facile accesso.

Io uso per le app condivise C:\tools o una directory simile, possibilmente su un'altra unità. È aggiunto al globale PATH variabile.


7

Sono d'accordo con le risposte già date ad un certo punto. Ma per i programmi veramente piccoli (utils) tendo a metterli nella cartella bin (nel mio caso E: \ bin). Questi programmi sono in genere singoli file exe o miei script python. Aggiungo questa cartella alla variabile PATH così posso usare questi programmi dalla riga di comando (che tendo ad usare parecchio).


Ho anche pensato di fare un generico C:\Program Files\bin per questi tipi di strumenti e utilità. Grazie per il feedback.
hippietrail

5

Per quanto ne so, non ci sono buone pratiche. Spetta a te decidere individualmente come vuoi gestirlo.

Tendo a seguire lo stesso standard di qualsiasi applicazione con un programma di installazione. Se è un eseguibile o una libreria che inserirò in entrambi \Program Files\ se è 64 Bit e Program Files (x86)\ se è 32 bit.

File di dati che tendo a memorizzare nel mio Users cartelle poiché sono normalmente specifiche per un utente.

Esistono anche applicazioni come Google Chrome e applicazioni Click-Once in cui vengono distribuite Users\AppData\, tuttavia questi non sono normalmente disponibili per più profili.

Preferisco il primo metodo, perché se devo accedere a un altro profilo o come amministratore, posso comunque accedere alle applicazioni.

Per quanto riguarda l'avviso di autorizzazione. È esattamente questo, a avvertimento . Si tratta semplicemente di avvertirti di non utilizzare la cartella per i motivi sbagliati, tuttavia non ti impedisce di utilizzarla.


4
Raccomando di non installare manualmente le applicazioni nella cartella Programmi, poiché le applicazioni senza installatori sono spesso anziane o porte di altri sistemi operativi, quindi non sempre gestiscono bene lo spazio nel percorso. YMMV.
Harry Johnston

3
Raccomando di non installare manualmente nulla su %ProgramFiles% anche, ma per un altro motivo: le applicazioni senza installatori sono spesso portatili e non hai i permessi di scrittura
kinokijuf

3

Se stai cercando di standardizzare queste applicazioni, ti suggerirei di usare il cioccolatoso standard del pacchetto. Questo è buono per molte ragioni diverse; principalmente perché ha un sacco di software già stato confezionato per te ed è pronto per l'installazione da qualsiasi luogo con pochi comandi.

È anche facile da fare il tuo possedere pacchetti per le applicazioni che non puoi distribuire liberamente. Probabilmente hai il diritto di distribuire tutto ciò che possiedi sulla tua rete; quindi per quelle applicazioni puoi configurare un repository locale . Se gestisci molti computer o hai una larghezza di banda internet limitata, ciò può essere utile anche per le cose gratis.


2

Se si prendono le scelte di installazione predefinite di cygwin, posiziona tutti i file in c: \ cygwin. Prenderò lo stesso approccio. Personalmente ho una cartella c: \ apps. In passato, ho usato c: \ utils e c: \ cli (abbreviazione di command line). Dipende davvero da come vuoi organizzare i tuoi file. Vorrei suggerire per le utilità single-off di metterli in una cartella di catchall. Per una suite di utilità (ad esempio cygwin, sysinternals, rktools), potrei suggerire una propria sottocartella. Ad esempio, potresti inserire tutti gli sysinternals all'interno di c: \ apps \ sysinternals. Se installi Cygwin, ciò richiederà la maggior parte (se non tutti) dei comandi Unix che hai imparato ad amare.

Ricordarsi di modificare le variabili ambientali (Start & gt; Pannello di controllo & gt; Sistema & gt; Avanzate & gt; Variabili ambientali) e aggiungere eventuali nuovi percorsi di app alla variabile di sistema PATH. Ciò consente di eseguirli su richiesta dal prompt dei comandi o utilizzando Windows + R (comando di esecuzione).


5
Penso che gli sviluppatori di Cygwin non si preoccupino degli standard di Windows ed è sbagliato copiare la loro cattiva abitudine (creando cartelle nella directory principale). Sento che è come creare \Program Files directory in linux.
Kamil

Non so perché sarebbe una brutta cosa. Cygwin è per un ambiente Unix. Perché Cygwin dovrebbe soddisfare gli standard di Windows, quando sono per le persone che vogliono usare gli strumenti Unix?
Sun

@Sun esattamente! OP ha chiesto le migliori pratiche di Windows.

1

C:\Users\Me\toolName (a.k.a% homepath% \ toolName) è il luogo corretto in cui inserire gli strumenti assumendo che lo si desideri per Me utente poiché alcuni di questi strumenti scrivono file (temporanei) e richiedono l'autorizzazione dell'utente per scrivere in Program files cartella. un altro vantaggio è che non ti dimenticherai di eseguire il backup perché è già nello spazio utente.


2
io userei %homepath%' rather than C: \ Users \ me`. Questo indica la posizione corretta anche se la posizione predefinita è stata spostata e quindi più portabile. +1 per la parte scritta / temp.
Hennes

sono stato corretto e modificato nel motivo per cui è stato aggiunto e non sostituito è quello di rispondere con gli stessi termini della domanda, grazie Hennes :)
Elazaron

0

Non ci sono regole a riguardo, puoi installarle dove vuoi, ma installarle sul tuo OSP (Operating System Partition) in una cartella non utente è generalmente una buona idea, perché otterrai le stesse protezioni di accesso hai su altre applicazioni; ciò rende più difficile la cancellazione accidentale o la modifica da parte di terzi (ad es. virus).

Personalmente, di solito inserisco il programma in "C: \ Programmi (x86)", perché la maggior parte dei programmi di questo tipo che ho incontrato sono a 32 bit, ma se si trattava di un programma a 64 bit, lo inserivo in C: \ Programmi ". Se si tratta di un programma relativo al sistema (ad esempio: Imagex.exe), lo inserirò in "C: \ Windows \ system32" per i programmi a 32 bit e "C: \ Windows \ system32" per i programmi a 64 bit per consentire un accesso più facile dal riga di comando quando si eseguono prompt di comando elevati, perché si inizia in C: \ Windows \ system32 "per impostazione predefinita; questo significa che puoi scrivere "nome.exe" invece di C: \ location \ name.exe "per eseguire il programma.

Alcune persone preferiscono separare i propri dispositivi portatili (non richiede installazione o eseguire alternamenti non supervisionati al di fuori della propria cartella) e programmi non basati sull'installatore (non portatili, ma non richiedono l'uso di un programma di installazione) da programmi regolari creando una nuova directory sul loro OSP (es .: C: \ Portable Program Files (x86), o C: \ Dumpable Program Files (x86). Consiglierei il 2 ° dei 2 dato che è più accurato, anche se non suona come bella.

Per riassumere, non ci sono regole, tuttavia se le installi nell'OSP (in una cartella non utente) sarai in grado di proteggere il programma da indesiderate modifiche / installazioni (incluse le modifiche dannose), e in alcune circostanze l'organizzazione può essere utile (ad esempio: la cartella system32 menzionata in precedenza per i programmi CLI di sistema).


1
Penso che tu abbia fondamentalmente frainteso la domanda. La prima parte della domanda iniziale è "Best practice", non "What are the rules".
Steven Penny

@StevenPenny Niente affatto, solo un fraseggio diverso. Il punto della domanda è i motivi per fare X o non fare X.
Robin Hood

Ho appena trovato qualcosa che mi piace: Etc o Etcetera se preferisci la vera fantasia pansy latina. In un secondo posto vicino, ho anche considerato Misc. Ma Etc sigillato l'affare per me. :)
Henrik

0

Penso che creare una scorciatoia per C:\Tools nel Send To menu in windows è l'opzione migliore in quanto è sempre accessibile da qualsiasi luogo. In questo modo è possibile "installare" rapidamente i piccoli programmi facendo clic con il pulsante destro del mouse e scegliendo Utensili dal menu Invia a da qualsiasi punto di Windows.

Ho ricevuto questo tutorial Come aggiungere al menu Invia a a partire dal HowToGeek
Incollo il riepilogo:

Per accedere alla cartella SendTo, è necessario aprire una finestra di Explorer e quindi incollare quanto segue nella barra degli indirizzi.

% Appdata% \ Microsoft \ Windows \ SendTo

Quindi incolla il collegamento della cartella in cui desideri copiare i tuoi programmi.

Quindi, ogni volta che scarichi una nuova app portatile, la estrai e la spedisci in quel posto.
L'unico problema è la creazione di scorciatoie che penso valga la pena di farlo manualmente.
Saluti.


Il Inviare a la cartella non è veramente adatta per l'uso come posizione installare un programma. Ha uno scopo specifico, vale a dire consentire l'invio di file / documenti per un'ulteriore gestione da parte di un programma (ad esempio, apertura di un file in Blocco note). Ulteriore, tutti i file posizionati nella cartella Invia a verranno visualizzati nel menu di scelta rapida di Windows, incluso il supporto di DLL. Ciò non è chiaramente auspicabile nella maggior parte dei casi.
Twisty Impersonator

1
No. Sembra che tu e tutti i downvoters non abbiano capito cosa intendevo. Voglio dire Aggiungi una scorciatoia per esempio C:\Tools\ a Send To cartella e accedervi da qualsiasi dove non si avrà il fastidio di far fronte a ciascuno dei vostri programmi manualmente. La mia risposta probabilmente renderà più veloce il processo di gestione di altre cose per leggere altre persone. Funziona per me alla grande.
UltraDEVV

Ho fatto una modifica possibile per includere questo chiarimento aggiuntivo nella tua risposta. Le risposte sono su / giù votate in base alla risposta, non necessariamente sui dettagli inclusi nei commenti, quindi si spera che ciò possa essere d'aiuto.
Twisty Impersonator

No, a partire da Windows Vista, il %APPDATA% la variabile è radicata nel %USERPROFILE%\AppData\Roaming cartella, quindi per Windows 7 il percorso sopra è corretto. In Windows XP, tuttavia, è necessario aggiungere la cartella Roaming come indicato.
Twisty Impersonator

Se ritieni che la tua domanda non sia chiara, dovresti chiarirla. Perché hai inviato due risposte?
Ramhound

0

La variabile di ambiente Path di sistema predefinita in windows è qualcosa di simile (A seconda della versione di Windows installata):

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

Di queste opzioni,% SystemRoot% (che di solito è C:/ ) sembra la scelta migliore per la tua lettura / scrittura e sarà facile fare riferimento più tardi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.