を使用してこれを実行しようとしましたがGetEffectiveRightsFromAcl
、所属しているグループのために拒否されたファイルの正しいアクセス マスクが返されません。
たとえば、ファイルがありますunreadable.txt
。現在のユーザーの書き込みアクセスを拒否するunreadable.txt
と、アクセス マスクは書き込みアクセス権がないことを正しく示します。ただし、代わりに「Authenticated Users」グループの書き込みアクセスを拒否すると、アクセス マスクは私がフル アクセス権を持っていることを意味します (私は持っていません)。
別の方法として、Ace リストを手動で繰り返し、SID を各エントリと比較することもできましたが、Ace がグループ用であるかどうか、および現在のユーザーがそのグループの一部であるかどうかを確認するためのクリーンで簡単な方法を見つけることができません。
拡張子として、ファイルが存在しない可能性があります (つまり、新しいファイルであり、書き込まれようとしている)。この場合、ディレクトリへのアクセスを確認する必要があります。
これに対する良い解決策はありますか?問題のファイルを実際に読み書きしようとせずに、これを行うためのより簡単な方法が存在するはずです。