Ini tampaknya melakukan trik (dengan kemungkinan peringatan), untuk menemukan semua folder yang dapat diakses oleh pengguna "someuser", dalam contoh ini di drive C, menggunakan perintah icacls Windows bawaan:
icacls c:\*. /findsid someuser /t /c /l
/ T diperlukan untuk memerintahkannya untuk mengembalikan direktori. / C diperlukan untuk memerintahkannya agar tetap berjalan meskipun menemui kesalahan. / L membuatnya bekerja dengan tautan simbolik (jika ada). (Yang terakhir adalah huruf L, dan bendera ini bisa huruf besar atau kecil.)
Itu *.
akan dikenali oleh DOS old-timer sebagai cara untuk mengatakan "mencari direktori, bukan file". Tentu saja, jika Anda TIDAK ingin menemukan file dan bukan folder, ubah ke *.*
, dan tentu saja Anda dapat mengarahkannya ke drive apa pun, atau menjalankannya dari folder apa saja dan meninggalkan jalur drive / folder dan membiarkannya mencari relatif terhadap itu folder saja.
Saya mencari jawaban yang sama dengan OP, dan menemukan entri ini, tetapi kecewa melihat hanya tawaran berdasarkan alat yang dapat diunduh. Seperti yang lain, saya lebih suka menggunakan sesuatu yang built-in, dan saya menemukannya, di alat icacls ini.
Dan saya telah mengkonfirmasi itu berfungsi pada Windows Server 2012, 2008, dan Windows 7, jadi saya curiga ini akan berfungsi juga di Server 2003, Windows 8, dan seterusnya.
Daftar yang dihasilkan akan berupa folder yang ditunjukkan baris demi baris, seperti:
SID Ditemukan: c: \ somedir \ somesubdir.
Perhatikan bahwa jika Anda menjalankan ini sebagai pengguna yang tidak sendiri memiliki izin untuk beberapa direktori yang dilalui, Anda akan mendapatkan kesalahan yang disisipkan dalam hasil seperti:
c: \ Informasi Volume Sistem: Akses ditolak.
Dan jika Anda mencari seluruh drive, itu bisa mengakibatkan ratusan kesalahan seperti itu, sehingga sulit untuk menemukan hasilnya.
Beberapa orang mungkin berpikir jawabannya adalah menjalankan baris perintah sebagai administrator, tetapi itu hanya akan menyebabkan lebih banyak kesalahan seperti itu muncul, karena Anda sekarang akan melintasi folder yang sebelumnya disembunyikan.
Sekarang, jika Anda tertarik untuk menyembunyikan kesalahan-kesalahan itu, Anda tidak akan dapat menggunakan perintah find untuk mem-pipe hanya hasil yang DO berhasil (yang DO merujuk ke "SID found"), karena kesalahan TIDAK akan disaring oleh pipa ke perintah find. Sebaliknya, jika Anda ingin menghapus semua kesalahan, Anda perlu menggunakan trik yang agak tidak jelas untuk mengarahkan aliran kesalahan (stderr) ke "bit bucket" dengan menggunakan 2>nul:
. Jadi contoh di atas akan menjadi:
icacls c:\*. /findsid someuser /t /c /l 2>nul:
Berhati-hatilah bahwa beberapa folder yang menghasilkan kesalahan seperti itu, yang kesalahannya sekarang disembunyikan, mungkin folder yang diberi nama "someuser" TIDAK memiliki akses tetapi yang ANDA tidak lakukan. Jadi, Anda mungkin ingin berpikir dua kali tentang mengabaikan kesalahan-kesalahan ini. tetapi jika Anda ingin, itulah cara Anda dapat melakukannya.
Kemungkinan itu memang berpotensi membatasi nilai jawaban ini, saya sadar. Jika ada orang yang lebih terbiasa dengan hal-hal yang ingin memperluas atau memperbaiki jawaban saya, saya akan menyambutnya.