最近、私はストレージ会社の1人と協力して、長年会社で使用されてきた大きなファイル共有の調査を伴うプロジェクトに取り組んでいます。多くの場合、次の1つ以上の理由により、(ドメイン管理者アカウントで)アクセスできないディレクトリまたはファイルに遭遇します。
このような状況に役立つツールの一握りは、マイクロソフト(例えばTAKEOWN.EXEとICALCS.EXE)、または第三者からの(例えば、存在するSETACL.EXE)。PSEXEC.EXEで SYSTEMアカウントの下でコマンドの1つを実行するなど、他のトリックが必要になる場合があります。どのステップをどのような順序で実行するかを理解するだけでも、課題です...
たとえば、次のようなフローでトラブルシューティングできるようにしたいと思います。
- パスが長すぎませんか?その場合は、
\\?\
プレフィックス付きのパスを作成してから、もう一度テストしてください。 - ACLは壊れていますか?その場合は、ACEを正しく並べ替え、不明なものをすべて削除してから、もう一度テストします。
- Administratorsグループはアクセスを拒否されていますか?その場合は、所有権を取得し、AdministratorsグループとSYSTEMアカウントのアクセス許可を元に戻し、もう一度テストします。
- まだ失敗していますか?その場合は、すべてのACEを削除し、継承されたアクセス許可のみを適用してから、もう一度確認してください。(これは、より制限的であるはずの権限を頻繁に開くため、これは最後の手段の一種です。)
- ディレクトリですか?もしそうなら、プロセスは内部のファイルに対して再帰的に継続する必要があります...
上記の手順を手動で実行するのは面倒であり、何百ものディレクトリを修正する必要がある場合は不合理です。私はこれらを支援するスクリプトを作成してみましたが、スクリプトが行う決定についてスクリプトを「スマート」にすることは難しいため、継承されたアクセス許可のみを復元するなど、全体的な修復方法を実行する方が簡単であることがよくあります。
誰かがこのプロセスに役立つ他のソフトウェアやスクリプトを推奨できますか?または、このような権限の問題をどのように修正しますか?