Windows'ta yükleyici olmayan küçük programlar nereye yüklenir?


35

Windows platformunda, büyük uygulamaların çoğu C:\Program Files, muhtemelen başka yerlerin altında klasörler kuran ve bazı kayıt defteri anahtarları vb. Ekleyen kendi yükleyicileriyle birlikte gelir .

Ancak hala sadece bir .exeveya belki bir READMEve .dlliki veya birinden oluşan birkaç araç var .

Böyle araçları nasıl kurmalıyım? Doğrudan içeri C:\Program Filesmi? Hepsi bir alt klasörde C:\Program Filesmi? Altında bir yerde C:\Users\Memi? Tamamen farklı bir yer mi?

Ya da belki sadece .exebaşka dosyalara sahip olanlara yönelik araçlar için farklı yaklaşımlar , ya da belki sadece .dllfarklı olanlara tedavi edilmesi gerekenler ...

Bunu yapmanın standart bir yolu var mı? Bir "en iyi uygulama"? Cevap Windows sürümüne bağlıysa, Windows 7 kullanıyorum.

Özellikle, bariz cevap olarak insanları neyin etkileyebileceği bir anlaşmaya varmış gibi görünüyor:

El altında yeni alt klasörler oluşturmayı denemiştim C:\Program Files. Aslında daha önce yaptığımı sanıyordum, ancak Windows Hedef Klasör Erişimi Reddedildi iletişim kutusunu açtı . Bu, sadece Devam Et'i tıklamak yerine sadece iki kere düşünmeme neden oldu .

Hedef Klasöre Erişim Reddedildi

Benimkinden daha büyük beyinlerin yıllar boyunca buna karşı geldiği varsayımına dayanarak, topluluğa bir çeşit "en iyi uygulama" nın kabul edilip edilmediğini sormak istiyorum.


3
Bu soruya hangi açıdan bakıyorsunuz? Özellikle, bu yazdığınız bir uygulama mı, yoksa başka birinin uygulamalarını kurmaya mı çalışıyorsunuz?
Harry Johnston,

2
@HarryJohnston: Başkalarının uygulamalarını yüklemek için. Geçen gün çok büyük dosyaları görüntülemek veya düzenlemek için tasarlanmış birkaç program indirdim ve bir çiftin kurucusu yoktu. Fakat aynı şey, Windows'taki çoğu komut satırı araçları için de geçerlidir.
hippietrail

@UltraDEVV: Başkalarının bu problemi göz önünde bulundurup etmediğini ve "en iyi uygulama" ya karar verdiğini bilmek istiyorum. C:\Program FilesBaşka bir yere veya başka bir yere kurulup kurulmayacağına karar vermeden önce hangi çözümlerin bulunduğunu bilmek istiyorum ve C:\Program Filesbariz bir çözüm olmasının olası bir engelleri hakkında bilgi veriyorum .
hippietrail


@UltraDEVV: Sizinkini okudum ve çoktan oy kullandım. Bu uyuyan sorunun üç buçuk yıllık bir dinlenmeden sonra tekrar hayata döndüğünü görmek harika!
hippietrail

Yanıtlar:


25

kullanım C:\Tools

veya C:\Users\<user>\Tools
 

Yükleyici olmadan birçok küçük program kullanıyorum ve aşağıdakileri tavsiye ediyorum:

  • Hepsini kaydet C:\Tools
  • Bir program tek bir dosyadan oluşuyorsa, doğrudan altına yerleştirin C:\Tools
  • Bir program birden fazla dosyadan oluşuyorsa, altına yerleştirin C:\Tools\ProgramName
  • SysInternals araçları özel bir kategoriye sahiptir C:\Tools\_SysInternalsçünkü birçoğu vardır.

Sadece C:\Toolsmakineden makineye geçerken, bir cazibe gibi çalışıyorum.

Pratik örnek (kısaltılmış liste):

C: \ Araçlar \ kendçalış-elevated.bat
C: \ Araçlar \ Cleanup.bat
C: \ Araçlar \ BabelMap.exe
C: \ Araçlar \ Netmon.exe
C: \ Araçlar \ notifu.exe
C: \ Araçlar \ putty.exe
C: \ Araçlar \ UDPixel.exe
C: \ Tools \ battery.vbs

C: \ Araçlar \ 3dclip-1.5.1 \
C: \ Araçlar \ AlternateStreamView \
C: \ Araçlar \ blender-2,71-windows64 \
C: \ Tools \ Notepad ++ \
C: \ Araçlar \ QueryExpress \
C: \ Araçlar \ 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 \

Umarım bu bir fikir verir.

EDIT: Genişletilmiş bilgi

Ben bunun altında varsayalım yüklemek sorunuzu bu tarz programları yüklemek nasıl yorumlanmalı? Aslında manuel kurulum, dosyaları kopyalamak gibi bir şey demek istiyorsun .

Temel kural: El ile tutulan dosyalar için el ile oluşturulan klasörleri kullanın. Doğrudan kontrol etmediğiniz (kurulum) işlemlerde kullanılacak sistem klasörlerinin kullanılmasına izin verin. Hangi içeriğin 'sizin' olduğunu (ve serbestçe kopyalayabilirsiniz) ve hangi uygulamanın yükleyici tarafından yönetildiğini tanımanın hemen avantajlarından yararlanacaksınız.

Bu yüzden el ile kurarken (kopyalayarak), uzak durun.

  • C:\Program Files - Burada bulunan programlar taşınamaz, yeniden yüklenmelidir (geçiş için harika bir ipucu verir)
  • C:\Program Files (x86) - yukarıdaki gibi, ancak 64 bit sistemlerde, 32 bit programlar buraya gider (belirli bir uygulamanın 32 bit mi yoksa 64 bit mi olduğunu belirlemek için bir ipucu verebilir)
  • C:\ProgramData- Burada bulunan uygulama depoları, bu programların verilerinin bir kısmını kendi yöntemleriyle koruduğunu göstermektedir. Fakat programlarınızı Veri'nin altına yerleştirmeyi sordunuz ? İyi bir fikir değil.
  • C:\Users\Steven\AppData- yine, Veri'nin altındaki programları koymak iyi bir fikir değildir. Verileri sorduysanız, bu yol hakkında birkaç ilginç şey yazılabilir. Ancak programlar için basitçe 'hayır'. :)

Olası yol

  • C:\Users\Steven- bu paylaşılan bir bilgisayarsa ve onu düzenli tutmak istiyorsanız alternatif bir kök olabilir, bu nedenle herhangi bir global dizin oluşturmamaya karar verirsiniz. C:\Users\Steven\ToolsProgramlarınızı düşünebilir veya Windows'taki birçok yerden kısayolla erişilebilen C:\Users\Steven\Desktop\Toolsrahat Masaüstü klasörüne erişim kullanmak istiyorsanız bile . Ama daha iyisi eskisi olabilir ve hala bu klasöre kısayolu masaüstüne veya gerektiğinde yerleştirebilirsiniz.

Düzenleme: Ek yararlı ipucu:

Küçük programlarınızdan bazılarının Windows 10 Başlat menüsünde tanınmasını istiyorsanız (adlarının artımlı olarak aranması veya Ctrl+ Shift+ kullanarak anında yükseltilmiş başlatılması için Enter), kısayollarını buraya ekleyin ve bir kez başlatın . (Sonra bunları kaldırabilirsiniz.)


Bu kulağa hoş geliyor, ancak en iyi uygulama dokümantasyonu veya bunun gibi bir şeyle destekleniyor mu? Eğer öyleyse, cevabı gerçekten iyileştirirdi.

@DoritoStyle - Kurumunuzdaki mevcut en iyi uygulamalar dokümantasyonunu kontrol etmeniz gerekebilir. Bazı daha genel en iyi uygulamaların dokümantasyonunu biliyorsanız, lütfen bana bildirin, ben de kontrol edeyim.
miroxlav

1
"C: \ Utility" kullanıyorum, ancak aksi halde bu aynı yaklaşımı kullanın!
Jon Schneider

'Araçlar' yerine başka bir şey de işe yarayacak mı: Eğer C:\Otherya da gibi bir şey kullanacak olsaydım C:\Users\<user>\Other, bu 'Araçlar' kadar "okunaklı" sayılır mı?
Henrik,

@Henrik - standart olmadığından, hislerinize uyan her şeyi kullanın ve yeterince açık. Örneğin, C: \ Progs (isim yükleyici olmadan küçük programları uyandırır) denedim, ama günün sonunda bu, anlamsız hissettim, bu yüzden adı tekrar Araçlar'a geri döndürdüm.
miroxlav

11

Bildiğim kadarıyla evrensel bir yaklaşım yok.

Uygulamalarınızı yerleştirmek C:\Program Filesoldukça standart bir yoldur. Ve erişim korumasını elde edersiniz : normal (ve yükseltilmemiş) kullanıcılar yazamaz C:\Program Files. Böylece yanlışlıkla silemez, üzerine yazamaz; ve virüslerden daha iyi korunurlar.

Bu nedenle bir klasör oluşturmaya çalıştığınızda uyarı - yükseklik isteği - alırsınız C:\Program Files.

Dolayısıyla, C:\Program Filesbir en güvenli çalıştırılabilir dosyalar için yer.

Ancak, .exekonfigürasyon değişikliklerini kaydedemeyecekleri için konfigürasyonlarını saklayan (taşınabilir) uygulamalar için uygun değildir.


C:\ProgramDatakullanıcılar arasında paylaşılan uygulama verilerini depolamak içindir. Varsayılan olarak, tüm kullanıcılar burada dosya ve klasör oluşturabilir, ancak yalnızca onları oluşturan kullanıcı dosyaları değiştirebilir.

Bu klasör paylaşılan uygulamalar / araçlar için kolayca kullanılabilir. Aynı zamanda, bu klasörde hiçbir zaman bir uygulama görmedim.


Uygulamaları kullanıcı profilinize yerleştirirseniz, C:\Users\<username>sistemin diğer kullanıcıları buna erişemez. Profilinizde tüm izinleriniz var, bu nedenle herhangi bir güvenlik uyarısı almazsınız. Chrome'un kullanıcı profiline yüklenmesinin nedeni budur: yükseklik istemeden kendini kolayca güncelleyebilir.

Kullanıcı başına modunda, Windows Installer paketleri, .msidosyaları yükleyin C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Bu yüzden paylaşılmayan uygulamaları kullanıcının profilinde tutmak oldukça standart.

utilsKullanıcımın profilinde sadece benim için yararlı olan uygulamaların bulunduğu bir klasör var . Bu klasör, PATHkolay erişim için kullanıcı ortam değişkenime eklendi

Paylaşılan uygulamalar için, C:\toolsmuhtemelen başka bir sürücüde veya benzeri bir dizin kullanıyorum. Global PATHdeğişkene eklendi .


7

Şimdiden bir noktaya verilen cevaplara katılıyorum. Ama gerçekten küçük programlar için (utils) onları bin klasörüne koyma eğilimindeyim (benim durumumda E: \ bin). Bu programlar genellikle tek bir exe dosyası veya kendi python komut dosyalarımdır. Bu klasörü PATH değişkenine ekliyorum, böylece bu programı komut satırından (oldukça fazla kullanmaya meyilli olduğumdan) kullanabiliyorum.


Ayrıca C:\Program Files\binbu tür araç ve gereçler için jenerik yapmayı da düşündüm . Geri dönüşünüz için teşekkür ederiz.
hippietrail

5

Bildiğim kadarıyla en iyi uygulama yok. Bununla nasıl başa çıkmak istediğinize karar vermek bireysel olarak size bağlıdır.

Bir yükleyici ile herhangi bir uygulama ile aynı standardı takip etme eğilimindeyim. Bir çalıştırılabilir dosya veya kütüphane \Program Files\ise 64Bit ise ve Program Files (x86)\32Bit ise yerleştiririm.

Veri dosyaları Users, normalde bir kullanıcıya özgü olduklarından klasörlerimde saklama eğilimindedir .

Ayrıca, dağıtılan Google Chrome ve Tıkla Bir Kez Uygulamaları gibi uygulamalar da vardır Users\AppData\, ancak bunlar normalde birden fazla profil için kullanılamaz.

İlk yöntemi tercih ediyorum çünkü başka bir profile veya yönetici olarak giriş yapmam gerekirse uygulamalara erişebiliyorum.

İzin uyarısı ile ilgili olarak. Bu tam olarak bir uyarı . Sadece klasörü yanlış nedenlerden dolayı kullanmanız konusunda sizi uyarmakla birlikte, onu kullanmanızı engellememektedir.


4
Program Dosyaları klasörüne uygulamaları el ile yüklememeyi öneririm, çünkü yükleyicileri olmayan uygulamalar genellikle eski ya da diğer işletim sistemlerinden gelen bağlantı noktaları olduğundan, yoldaki alanla her zaman iyi baş edemezler. YMMV.
Harry Johnston,

3
Hiçbir şeyi el ile de yüklememeyi öneririm %ProgramFiles%, ancak başka bir nedenden ötürü: kurucuları olmayan uygulamalar genellikle taşınabilir ve orada yazma izniniz yok
kinokijuf

4

Bu uygulamaları standart hale getirmek istiyorsanız, Chocolatey paket standartlarını kullanmanızı öneririm . Bu birçok farklı sebepten dolayı iyidir; temelde yazılımın çoğu sizin için zaten paketlenmiş olduğundan ve yalnızca birkaç komutla her yerden kuruluma hazır olduğundan.

Ayrıca, özgürce dağıtamayacağınız uygulamalar için kendi paketlerinizi oluşturmak da kolaydır . Muhtemelen sahip olduğunuz herhangi bir şeyi kendi ağınızda dağıtma hakkınız vardır; bu yüzden bu uygulamalar için yerel bir depo kurabilirsiniz . Çok sayıda bilgisayarı yönetiyorsanız veya sınırlı internet bant genişliğiniz varsa, bu ücretsiz şeyler için bile yardımcı olabilir.


2

Eğer cygwin'in varsayılan kurulum seçeneklerini kullanırsanız, tüm dosyalarınızı c: \ cygwin'e yerleştirir. Ben de aynı yaklaşımı kullanırdım. Şahsen ac: \ apps klasörü var. Geçmişte, c: \ utils ve c: \ cli kullandım (komut satırı için kısa). Bu gerçekten dosyalarınızı nasıl düzenlemek istediğinize bağlı. Tek bir yardımcı program için onları bir arama klasörüne yerleştirmelerini öneririm. Bir dizi yardımcı program için (örneğin, cygwin, sysinternals, rktools), kendi alt klasörünü önerebilir miyim? Örneğin, tüm sysinternals c: \ apps \ sysinternals içine koyabilirsiniz. Eğer cygwin'i kurarsanız, sevdiğiniz Unix komutlarının çoğunu (hepsi değilse de) alır.

Çevresel değişkenlerinizi değiştirmeyi unutmayın (Başlat> Denetim Masası> Sistem> Gelişmiş> Çevresel Değişkenler) ve PATH sistem değişkeninize yeni uygulama yolları ekleyin. Bu, komut isteminden talep üzerine veya Windows + R (run komutu) kullanarak çalıştırmanızı sağlar.


5
Cygwin geliştiricilerinin Windows standartlarını umursamadıklarını ve kötü alışkanlıklarını kopyalamanın yanlış olduğunu (kök dizinde klasör oluşturma) düşünüyorum. \Program FilesLinux'ta dizin oluşturmak gibi hissediyorum .
Kamil

Bunun neden kötü bir şey olacağını bilmiyorum. Cygwin bir Unix ortamı içindir. Cygwin, Unix araçlarını kullanmak isteyen insanlar için neden Windows standartlarına uyuyor?
Paz

@Sun tam olarak! OP, Windows'tan en iyi uygulamaları istedi.

1

C:\Users\Me\toolName(aka% homepath% \ toolName), Mebu araçların bazıları (temp) dosyalarını yazdığından ve kullanıcının Program filesklasöre yazabilmesi için kullanıcının iznini gerektirdiğinden , kullanıcı için istediğini varsayacağınız araçları koymak için doğru yerdir . Başka bir artı, zaten kullanıcı alanında olduğundan yedeklemeyi unutmayacağınızdır.


2
Ben kullanacağı %homepath%' rather than c: \ kullanıcıların \ me`. Bu, varsayılan konum taşınsa bile doğru yere işaret eder ve dolayısıyla daha taşınabilirdir. Yazma / geçici kısım için +1.
Hennes

eklendiği ve değiştirilmediği için düzeltilmiş ve düzenlenmiş duruyorum, soru ile aynı şartlara cevap vereceğim, teşekkürler Hennes :)
Elazaron

0

Bu konuda hiçbir kural yoktur, istediğiniz yere onları kurabilirsiniz, ancak bunları kullanıcı olmayan bir klasöre OSP'nize (İşletim Sistemi Bölümü) yüklemek genellikle iyi bir fikirdir, çünkü aynı erişim korumalarını alacaksınız. başka uygulamalarınız var mı; bu, yanlışlıkla silmeyi veya üçüncü bir tarafça değiştirilmesini zorlaştırır (örneğin: virüs).

Şahsen, genellikle programı "C: \ Program Files (x86)" içine koyarım, çünkü karşılaştığım bu tür programların çoğu 32bit, ancak 64 bit ise, C: \ Program Files'a yerleştirirdim " Sistemle ilgili bir programsa (örn: Imagex.exe), 32bit programlar için "C: \ Windows \ system32" 'ye, 64bit programlar için ise "C: \ Windows \ system32" ye ve 64bit programlar için daha kolay erişime izin vereceğim. yükseltilmiş komut çalıştırırken komut satırı ister, çünkü varsayılan olarak C: \ Windows \ system32 "ile başlarsınız; Bu, programı çalıştırmak için C: \ location \ name.exe "yerine" name.exe "yazabileceğiniz anlamına gelir.

Bazı insanlar taşınabilirlerini ayırmayı (yükleme gerektirmez veya klasörünün dışında denetlenmeyen değişiklikler yapabilir) ve yükleyici temelli olmayan (taşınabilir değil, yükleyici kullanımını gerektirmez) programları yeni bir dizin oluşturarak normal programlardan ayırmayı tercih eder. OSP’lerinde (örneğin: C: \ Portable Program Files (x86) veya C: \ Dumpable Program Files (x86). Verildiği gibi ses çıkarmasa bile, verilen 2’nin 2’sine daha yüksek doğruluk seviyesi öneririm. güzel.

Özetlemek gerekirse, kural yoktur, ancak bunları OSP'ye (kullanıcı olmayan bir klasörde) yüklerseniz, programı istenmeyen kurulum / değişikliklerden (kötü amaçlı değişiklikler de dahil olmak üzere) ve bazı durumlarda korumaya yardımcı olacaksınız. organizasyon faydalı olabilir (örneğin: sistem CLI programları için daha önce bahsedilen system32 klasörü).


1
Sanırım soruyu temelden yanlış anladınız. Asıl sorunun ilk kısmı "Kurallar nelerdir" değil, "En iyi uygulama" dır.
Steven Penny

@StevenPenny Hiç de değil, sadece farklı bir kelime öbeği. Sorunun amacı X yapmak ya da X yapmak için sebepler değil.
Robin Hood

Sevdiğim bir şeyle geldim: Etcya Etceterada gerçek süslü homo latinini tercih edersen. Yakın bir ikinci sırada, ben de düşündüm Misc. Ama Etcbenim için anlaşmayı imzaladım. :)
Henrik

0

Ben kısayol oluşturma düşünüyorum C:\Toolsiçinde Send Toher zaman her yerde erişilebilir olduğu gibi pencerelerde menü iyi seçenektir. Bu şekilde, küçük programlarınızı sağ tıklayıp Windows’un herhangi bir yerinden Gönder menüsünden Araçlar’ı seçerek hızlı bir şekilde "kurabilirsiniz" .

HowToGeek'ten Gönder menüsüne nasıl eklenir hakkında bu Öğreticiyi anladım : Özeti
yapıyorum:

SendTo klasörüne ulaşmak için bir Explorer penceresi açmanız ve ardından aşağıdakileri adres çubuğuna yapıştırmanız gerekir.

% APPDATA% \ Microsoft \ Windows \ SendTo

Ardından, programlarınızın kopyalanmasını istediğiniz klasörün kısayolunu buraya yapıştırın.

Sonra ne zaman yeni bir taşınabilir uygulama indirirsen, onu aç ve o yere gönder.
Tek sorun, elle yapmayı düşündüğüm kısayollar oluşturmak.
Saygılarımızla.


To Gönder klasörüne bir konum olarak kullanılmak üzere gerçekten uygun değildir yüklemek bir program. Bir programla daha ileri işlemler için dosya / belge gönderilmesini sağlamak için özel bir amacı vardır (örn. Not Defteri'nde bir dosyayı açmak). Ayrıca, Gönder klasörüne yerleştirilen tüm dosyalar Windows Destek menüsünde (.DLL'ler dahil) görünecektir. Bu açıkça çoğu durumda istenmez.
Ben

1
Hayır. Görünüşe göre siz ve tüm seçmenler ne demek istediğimi anlamadılar. Örneğin C:\Tools\ , Send Toklasöre bir kısayol ekle ve herhangi bir yerden erişerek herhangi bir programdan manuel olarak baş etme zorunluluğunuz olmayacak. Benim cevabım, başkalarını okuduğu diğer şeyler için başa çıkma sürecini daha hızlı hale getirme olasılığı yüksek. Bu benim için harika çalışıyor.
UltraDEVV

Cevabınıza bu ek açıklamayı dahil etmek için olası bir düzenleme yaptım. Cevaplar, yorumlara dahil edilen ayrıntılara değil, cevaba dayalı olarak yukarı / aşağı oylanır, bu yüzden umarım bu yardımcı olacaktır.
Ben

Hayır, Windows Vista'dan başlayarak, %APPDATA%değişken %USERPROFILE%\AppData\Roamingklasörde bulunur, bu nedenle Windows 7 için yukarıdaki yol doğrudur. Bununla birlikte, Windows XP'de Dolaşım klasörünü belirttiğiniz gibi eklemeniz gerekir.
Ben,

Sorunuzun net olmadığını düşünüyorsanız, açıklığa kavuşturmalısınız. Neden iki cevap verdin?
Ramhound

0

Windows'taki varsayılan sistem Yolu ortamı değişkeni şunun gibidir (Yüklü pencerelerin sürümüne bağlı olarak):

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

Bu seçeneklerin dışında% SystemRoot% (genellikle C:/) okuduğunuz / yazdığınız için en iyi seçenek gibi görünüyor ve daha sonra başvurmanız kolay olacak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.