Bana Windows hakkında sonu olmayan bir şey eski paylaşım ihlali hatasıdır. Genellikle onu neyin açık tuttuğunu belirleyemezsiniz. Genellikle sadece bir editör veya Explorer sadece ilgili bir dizini işaret eder, ancak bazen makinemi yeniden başlatmak için başvurmak zorunda kaldım.
Suçluyu nasıl bulacağınıza dair herhangi bir öneriniz var mı?
SysinternalsProcess Explorer ile başarılı oldum. Bununla, bir dosyada hangi işlemlerin açık olduğunu bulmak için arama yapabilir ve isterseniz tutamaçları kapatmak için kullanabilirsiniz. Tabii ki, tüm süreci kapatmak daha güvenlidir. Dikkatli olun ve karar verin.
Belirli bir dosyayı bulmak için
Find->Find Handle or DLL... Dosya yolunun bir kısmını yazın. İşlemlerin listesi aşağıda görünecektir.
Komut satırını tercih ederseniz, Sysinternals Suite açık tanıtıcıları listeleyen komut satırı aracını Handle içerir. Nasıl kullanılacağına dair birkaç örnek:
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\- E sürücüsünden açılan tüm dosyaları bul:
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question
Windows 7, 8 ve 10 ile birlikte yerleşik gelen Kaynak İzleyicisi'ni kullanabilirsiniz.
Tanıtıcıyı bulduğunuzda, Görüntü ve/veya PID sütununa bakarak işlemi tanımlayabilirsiniz.
Daha sonra uygulamayı normalde yaptığınız gibi kapatmayı deneyebilirsiniz veya bu mümkün değilse, tutamacı sağ tıklayın ve işlemi doğrudan oradan öldürün. Çantada keklik!
Orijinal cevabımdan kopyalandı: https://superuser.com/a/643312/62
openfiles komutunu deneyin.
Sadece kapatma kollarına çok dikkat edin; tanıtıcı geri dönüşüm nedeniyle düşündüğünüzden daha da tehlikelidir - dosya tanıtıcısını kapatırsanız ve program başka bir şey açarsa, kapattığınız özgün dosya tanıtıcısı "başka bir şey" için yeniden kullanılabilir. Ve şimdi tahmin et, program devam ederse, aslında dosya tanıtıcısı başka bir şeye işaret ettiğinde dosya üzerinde çalıştığını (kimin kapandığını) düşünürse ne olacağını tahmin edin.
Raymond Chen'in gönderisi bu konu hakkında
Bir arama dizini hizmetinin dizine ekleme için açık bir dosyaya sahip olduğunu, ancak geçici olarak takıldığını ve dosyayı silmek istediğinizi varsayalım, böylece (akıllıca) tanıtıcıyı kapatmaya zorlarsınız. Arama dizini hizmeti, bazı bilgileri kaydetmek için günlük dosyasını açar ve silinen dosyanın tanıtıcısı, günlük dosyasının tanıtıcısı olarak geri dönüştürülür. Sıkışmış işlem sonunda tamamlanır ve arama dizini hizmeti sonunda açık olan bu tutamacı kapatmaya çalışır, ancak istemeden günlük dosyası tutamacını kapatır.
Arama dizin hizmeti başka bir dosya açar, yazmak için bir yapılandırma dosyası diyelim, böylece bazı kalıcı durumları güncelleyebilir. Günlük dosyasının tanıtıcısı, yapılandırma dosyasının tanıtıcısı olarak geri dönüştürülür. Arama dizini hizmeti bazı bilgileri günlüğe kaydetmek ister, böylece günlük dosyasına yazar. Maalesef, günlük dosyası tanıtıcısı kapatıldı ve tanıtıcı yapılandırma dosyası için yeniden kullanıldı. Günlüğe kaydedilen bilgiler, yapılandırma dosyasına girerek onu bozar.
Bu arada, kapatmaya zorladığınız başka bir tutamaç, verilerin bozulmasını önlemeye yardımcı olmak için kullanılan bir muteks tutamacı olarak yeniden kullanıldı. Orijinal dosya tanıtıcısı kapatıldığında, muteks tanıtıcısı kapatılır ve veri bozulmasına karşı korumalar kaybolur. Hizmet ne kadar uzun süre çalışırsa, dizinleri o kadar bozulur. Sonunda, birisi dizinin yanlış sonuçlar verdiğini fark eder. Hizmeti yeniden başlatmaya çalıştığınızda, yapılandırma dosyaları bozulmuş olduğu için başarısız olur.
Sorunu, arama dizini hizmetini yapan şirkete bildirirsiniz ve dizinin bozuk olduğunu, günlük dosyasının gizemli bir şekilde günlüğe kaydetmeyi durdurduğunu ve yapılandırma dosyasının üzerine çöp yazıldığını belirlerler. Bazı fakir teknisyenlere, yolsuzluğun kaynağının bir tanıtıcıyı kapatmaya zorladığınızdan habersiz olarak hizmetin neden dizinlerini ve yapılandırma dosyalarını bozduğunu bulmanın umutsuz görevi verilir.
Geçmişte bu tür süreçleri bulmak için Handle ile başarılı bir şekilde kullandım.
Lockhunter ( http://lockhunter.com/ ) 32 ve 64bit sistemlerde çalışır.
Açıklığa kavuşturmak için, bunun, üçüncü taraf uygulamalarının CreateFile API çağrısını doğru bir şekilde kullanmadığı, Windows'taki herhangi bir şeyden daha doğru bir şekilde sonuçlanması daha olasıdır. Belki de CreateFile tasarımının bir sonucudur, ancak yapılır ve geri dönemeyiz.
Temel olarak bir Windows programında bir dosya açarken, paylaşılan erişime izin veren bir bayrak belirtme seçeneğiniz vardır. Bayrağı belirtmezseniz, program dosyanın özel erişimini alır.
Şimdi, Explorer burada suçlu gibi görünüyorsa, bu sadece yüzeyde olabilir ve gerçek suçlu, bir klasördeki tüm dosyaları kendi amaçları için açan bir Shell uzantısı yükleyen ancak aynı zamanda gung-ho yapıyor, ya da kendinden sonra düzgün bir şekilde temizlenmiyor. Symantec AV bunu daha önce yaptığım bir şey ve diğer AV programları da suçlayacak olsaydı şaşırmazdım. Kaynak kontrol eklentileri de hatalı olabilir.
Bu yüzden gerçekten bir cevap değil, ancak kötü yazılmış bir 3. taraf programın ne olabileceği konusunda Windows'u her zaman suçlamamak için bazı tavsiyeler (örtük dosya kilitleme olan herhangi bir işletim sisteminde de olabilecek bir şey, ancak herhangi bir unix tabanlı işletim sistemi tarafından paylaşılan erişim varsayılan).
Beni Kilitleyen iyi çalışıyor ve insanları adıyla eğlendiriyor!
Bir dosyayı açık tutan Apropos Explorer: "Bu, silmeniz gereken bir dosyada olduğunda, tutamacı kapatmaya veya yeniden başlatmaya zorlama seçeneğiniz vardır."
Explorer'ı sonlandırabilirsiniz.
Bu bir kerelik bir şeyse (Explorer normalde bu dosyayı açık tutmazsa) o zaman oturumu kapatmayı tahmin ediyorum ve tekrar oturum açmak hile yapacaktır.
Aksi takdirde, masaüstü Explorer işlemini öldürün ve yokken istediğinizi yapın. İlk olarak cmd.exe dosyasının bir kopyasını başlatın (amaçlanan temizlemeyi yapmak için bir kullanıcı arayüzüne ihtiyacınız vardır). Masaüstü olmayan Kaşiflerin çalışmadığından emin olun. Ardından, son Gezgini örneğin Görev Yöneticisi ile öldürün. Sor komutunda ne istersen yap. Son olarak, Komut İstemi komutundan Explorer'ı çalıştırın ve masaüstü haline gelecektir.
Bazı systray programları Shell'in yeniden başlatılmasıyla başa çıkamazsa, bazı hoş olmayan durumlar olabilir.
Uzak sunucuda, bir ağ paylaşımını denetlerken, Bilgisayar Yönetimi konsolu kadar basit bir şey bu bilgileri görüntüleyebilir ve dosyayı kapatabilir.
Dosyalar yerel işlemler ( nlocker kullanmak için bir araçtır) ve paylaşımlardan gelen dosya erişimi ile kilitlenebilir.
Windows'ta, yerel bilgisayardaki hangi dosyaların uzak bilgisayar tarafından açıldığını/kilitlendiğini (dosyayı bir dosya paylaşımı yoluyla açık olan) gösteren yerleşik bir işlev vardır:
* Select "Manage Computer" (Open "Computer Management") * click "Shared Folders" * choose "Open Files"
Orada dosyayı zorla kapatabilirsiniz.
Process Hacker ile hangi işlemlerin dosyalarınızı kolayca tuttuğunu belirleyebilirsiniz:
NirSoft's Open Files View da var.
Yukarıda belirtilen cevaplar, bir program işleminin dosya tanıtıcısını açık tuttuğu durumları kapsar (ki bu da neyse ki) çoğu zaman - ancak bazı durumlarda (şu anda bu sistemde olduğu gibi), sistemin kendisi bir dosya tanıtıcısı tutar açık.
Yukarıdaki işlem Gezgini ile dosya tanıtıcısı tutma işlemini bulmak için yönergeleri izleyerek ve işlem adının 'sistem' olarak listelendiğini belirterek veya kaynak izleyicisi kullanan yönergeleri izleyerek ve hiçbir görüntünün gösterilmediğini belirterek bu durumu tanımlayabilirsiniz. İlgilenilen dosya üzerinde bir dosya tanıtıcısı açık olması (Her ne kadar belli ki bir şey yapamaz/dosyayı silemez gibi).
Bu durumda, seçeneğiniz (bildiğim kadarıyla) yeniden başlatmak veya bu dosyayla herhangi bir şey yapmayı unutmaktır.
Bir dosya FILEMON vardır ve açık dosyaları ve tanıtıcıları gösterir. Canlı olarak izlerseniz ekranına yetişmek zor, bunu hızlı bir şekilde yapıyor. Ancak canlı görüntülenmesini durdurabilir ve tüm dosya açma/yazma etkinliğini izleyebilirsiniz. Şimdi Microsoft'a ait ama aslen Sysinternals'a ait
Jeremy Zawodny'nin blogu tarafından zatılmış Görev Yöneticisi bir süre önce açıldım ve süreçler hakkında daha fazla bilgi izlemek için harika. Yukarıdaki işlem Gezgini için +1, özellikle standart Görev Yöneticisi'nin bitmeyeceği işlemleri öldürmek için.