ITグループの生産変更実装者は、グループ内のさまざまなオブジェクトすべてのセキュリティを確認することが義務づけられています。私たちは雇用しているか、他のグループに譲渡して、サーバ共有、ウェブディレクトリ、SQLデータベースなどにアクセスできなくなった。我々は最近SQL部分を完成させ、毎年実行できる再利用可能なスクリプトを持っている私たちは思いつきます)。すばらしい成果を収め、数十分のうちに10台ほどのサーバーに20データベースを監査しました。C#を使用してサーバーとマップされたドライブのACLリストを取得
今、サーバー用のものです。私は、.NET 2.0を使用してC#で書いたアプリケーションを持っています。このアプリケーションは、ディレクトリのリストを再帰的にスキャンし、ACLをテキストファイルにダンプします。これは優れた作品です。ローカルマシン上。 UNCとマップされたパスが機能しない場合、次の例外メッセージが表示されます。この処理に必要な 'SeSecurityPrivilege'特権を所有していません。このラインで
:
ジDirectoryInfo []アレイから列挙DirectoryInfoオブジェクトであるDirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All);
。
SeSecurityPrivilege特権を付与することはできません。しかし、私はこれが必要であるとは思わない。私はフォルダを開いてプロパティを右クリックし、セキュリティタブをクリックしてGUIで表示することができます。私はをにもプログラムでアクセスできるはずです。
対象のフォルダのアクセス許可を取得するためにこのセクションをどのように変更することができますか?
private void CheckSecurity(DirectoryInfo[] DIArray)
{
foreach (DirectoryInfo di in DIArray)
{
DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All);
string sAccessInfo = string.Empty;
foreach (FileSystemAccessRule FSAR in DirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
sAccessInfo += GetAceInformation(FSAR);
}
if (sAccessInfo != string.Empty)
{
// Write info to text file
}
}
}
private string GetAceInformation(FileSystemAccessRule ace)
{
StringBuilder info = new StringBuilder();
string line = string.Format("Account: {0}", ace.IdentityReference.Value);
info.AppendLine(line);
line = string.Format("Type: {0}", ace.AccessControlType);
info.AppendLine(line);
line = string.Format("Rights: {0}", ace.FileSystemRights);
info.AppendLine(line);
line = string.Format("Inherited ACE: {0}", ace.IsInherited);
info.AppendLine(line);
return info.ToString();
}
編集:それは、ルートフォルダの「GetAccessControl()」メソッドを得ることに失敗したとき、私はACLで読み取りATTRIBのリモートフォルダを確認する方法を ? (\ server \ pathを渡すと、\ server \ pathの情報を取得する際にエラーが発生します)。
ユーザーアカウントはドメインアカウントで、ファイル構造を読み取る権限があります。私はフォルダ/ファイルのプロパティからセキュリティを見ることができます。
私はプロセスモニターをチェックアウトしますが、私はサーバー上で実行できるとは思っていません(私は問題のサーバーの管理者ではありません)。
を取得して停止する必要があり
に
を変更してみてください。私はこのコードを使用して、私たちの内部システムの1つにファイル許可モニタを構築しました。 –