Akhir-akhir ini saya telah bekerja dengan salah satu orang penyimpanan kami pada sebuah proyek yang telah melibatkan beberapa pengawasan terhadap file saham besar yang telah digunakan oleh perusahaan selama bertahun-tahun. Seringkali, kami mengalami direktori atau file yang tidak dapat diakses oleh kami (dengan akun admin domain) karena satu atau lebih alasan berikut:
- ACL rusak
- akses telah dicabut atau ditolak untuk grup Administrator (atau pengguna SISTEM)
- nama file + jalur terlalu panjang (di luar MAX_PATH )
Ada beberapa alat yang dapat membantu dalam situasi ini, dari Microsoft (mis. TAKEOWN.EXE dan ICALCS.EXE) atau pihak ketiga (mis. SETACL.EXE ). Kadang-kadang diperlukan trik lain seperti menjalankan salah satu perintah di bawah akun SYSTEM dengan PSEXEC.EXE . Bahkan hanya mencari tahu langkah-langkah apa yang harus dilakukan dan dalam urutan apa adalah sebuah tantangan ...
Misalnya, saya ingin dapat memecahkan masalah dengan aliran seperti ini:
- Apakah jalannya terlalu panjang? Jika demikian, buat jalur dengan
\\?\
awalan, lalu uji lagi. - Apakah ACL rusak? Jika demikian, pesan ulang ACE dengan benar dan hapus semua yang tidak diketahui, lalu uji lagi.
- Apakah grup Administrator ditolak akses? Jika demikian, ambil kepemilikan, tambahkan kembali izin untuk grup Administrator dan akun SISTEM, lalu uji lagi.
- Apakah masih gagal? Jika demikian, hapus semua ACE dan terapkan hanya izin yang diwarisi, lalu periksa kembali. (Ini semacam jalan terakhir, karena sering membuka izin yang dimaksudkan untuk lebih membatasi.)
- Apakah ini direktori? Jika demikian, maka proses perlu melanjutkan secara rekursif untuk file di dalam ...
Melakukan langkah-langkah di atas secara manual adalah menyakitkan, dan tidak masuk akal ketika kita memiliki ratusan direktori untuk diperbaiki. Saya telah mencoba menulis skrip untuk membantu dengan ini, tetapi menemukan bahwa sulit untuk membuat skrip "pintar" tentang keputusan yang dibuatnya, dan karenanya seringkali lebih mudah untuk melakukan metode perbaikan kotor seperti mengembalikan izin yang diwarisi saja.
Adakah yang bisa merekomendasikan perangkat lunak dan / atau skrip lain yang akan membantu dalam proses ini? Atau, bagaimana Anda memperbaiki masalah izin seperti ini?
sumber
/force
pilihan benar-benar bekerja, tidak seperti beberapa orang lain (seperti berjalan di bawah account sistem dengan psexec.exe, atau mirip pilihan penggunaan-backup-dan / atau-SYSTEM-izin). Saya memang harus menulis skrip PowerShell untuk menggali melalui filesystem dan memperbaiki semuanya, tapi itu mengagumkan bahwa satu-satunya alat eksternal yang dibutuhkan adalah ini. Terima kasih atas tipnya, @ syneticon-dj!