Bu, "bazı kullanıcının" kullanıcının C sürücüsünde yerleşik Windows icacls komutunu kullanarak erişebildiği tüm klasörleri bulmak için hile yapıyor olabilir (belki de bir uyarı ile):
icacls c:\*. /findsid someuser /t /c /l
/ T'nin dizinleri yinelemesini söylemek için gereklidir. / C, hatalarla karşılaşsa bile devam etmesini söylemek için gereklidir. / L sembolik bağlarla (varsa) çalışmasını sağlar. (Bu sonuncusu bir L'dir ve bu bayraklar büyük veya küçük harf olabilir.)
*.
"Dizinler için, dosyaları değil bak" demek için bir yol olarak DOS eski sayaçlarını tarafından tanınacaktır. Tabii ki, klasörleri değil dosyaları bulmak istiyorsanız, bunu olarak değiştirin *.*
ve tabii ki herhangi bir sürücüye yönlendirebilir veya herhangi bir klasörden çalıştırabilir ve sürücü / klasör yolunu bırakıp buna göre arama yapmasını sağlayabilirsiniz. yalnızca klasör.
OP ile aynı cevabı aradım ve bu girişi buldum, ancak sadece indirilebilir bir araca dayalı bir teklif görmek için yanıldım. Diğerleri gibi, bu icacls aracında yerleşik bir şey kullanmayı tercih ettim ve buldum.
Ve Windows Server 2012, 2008 ve Windows 7'de çalıştığını onayladım, bu yüzden Server 2003, Windows 8 ve benzerlerinde de çalışacağından şüpheleniyorum.
Sonuçta ortaya çıkan liste, satır satır gösterilen klasörler olacaktır, örneğin:
SID Bulundu: c: \ somedir \ somesubdir.
Bunu, bazı dizinler için kendi izinleri olmayan bir kullanıcı olarak çalıştırırsanız, aşağıdaki gibi sonuçlarda araya eklenmiş hatalar alacağınızı unutmayın:
c: \ Sistem Birimi Bilgisi: Erişim reddedildi.
Ve tüm bir sürücüyü arıyor olsanız, bu yüzlerce hataya neden olabilir, bu da onların içinde sonuçları bulmayı zorlaştırabilir.
Bazıları cevabın komut satırını yönetici olarak çalıştırmak olduğunu düşünebilir, ancak bu, daha önce gizlenmiş klasörleri dolaşacağınız için bu tür hataların ortaya çıkmasına neden olacaktır.
Şimdi, bu hataları gizlemekle ilgileniyorsanız, yalnızca başarılı olan sonuçları ("SID bulundu" ifadesine atıfta bulunanları) iletmek için bir find komutu kullanamazsınız, çünkü hatalar filtrelenmeyecektir boru tarafından find komutuna. Bunun yerine, tüm hataları kaldırmak istiyorsanız, hata akışını (stderr) kullanarak "bit kepçesine" yeniden yönlendirmenin oldukça belirsiz bir hilesini kullanmanız gerekir 2>nul:
. Yani yukarıdaki örnek şöyle olacaktır:
icacls c:\*. /findsid someuser /t /c /l 2>nul:
Sadece bu tür hatalar üreten, bu hatalar artık gizlenmiş olan bazı klasörlerin, "someuser" adlı klasörlerin erişebildiği ancak SİZİN sahip olmadığı klasörler olabileceğine dikkat edin. Bu yüzden, sadece bu hataları görmezden gelmeyi düşünmek isteyebilirsiniz. ama eğer istersen, bunu böyle yapabilirsin.
Bu olasılığın potansiyel olarak bu cevabın değerini sınırladığını anlıyorum. Bir şeylere daha fazla aşina olan biri cevabımı genişletmek veya düzeltmek isterse hoş geldiniz.