私は何かに興味がありました。特定のフォルダーのサブフォルダーのACLアクセス許可をスキャンし、最初のフォルダーのACLアクセス許可とは異なるものを見つける必要があるC++を使用してコードを記述しています。これを行うには、 FindFirstFileとFindNextFileを使用してフォルダー内のすべてのフォルダーを再帰的にチェックし、見つかった各サブフォルダーでGetNamedSecurityInfoを呼び出してACLのアクセス許可をチェックします。
この方法は、特にネットワーク共有をスキャンするときに非常に遅く動作することを除いて、動作します。accesschkというツールでも同じことができることは知っていますが、同じフォルダー(-dsqvli
スイッチを使用)で再帰的に実行すると、上記の手順よりも速く結果が返されます。
それで、どうすればこのACL権限の検索プロセスを高速化できるのでしょうか。
私が最初に考えたのは、ACEで継承を使用することでしたが、それを実装する方法がわかりません...
編集2:提案をありがとう@arx。このACL/ACEのものは、ほとんど文書化されていません。彼が以下に投稿したコードは私のために働いた。ACLの継承をチェックするための私の元のコードは、彼の投稿で以下に概説されている理由の@arxのために、信頼できる結果を生成しなかったことに注意してください。