2

Windows サービスを作成し、ローカル システム アカウントで実行しました。このサービスは、ユーザー ファイルを読み取り、その所有者を見つけています。ファイルのアクセス権を取得して所有者を見つけると、以下の例外がスローされます:

メソッドは予期しないエラー コード 3 で失敗しました。

StackTrace : System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType、Boolean isContainer、文字列名、SafeHandle ハンドル、AccessControlSections includeSections、Boolean createByName、ExceptionFromErrorCode exceptionFromErrorCode、Object exceptionContext) at System.Security.AccessControl.FileSystemSecurity..ctor(Boolean System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections) の isContainer、String name、AccessControlSections includeSections、Boolean isDirectory)

以下は、ファイルの所有者を取得するために使用しているサンプル C# コードです。

IdentityReference sid = null;
 string owner = null;
FileSecurity fileSecurity = File.GetAccessControl(foundFile);
                            sid = fileSecurity.GetOwner(typeof(SecurityIdentifier));
                            NTAccount ntAccount = sid.Translate(typeof(NTAccount)) as NTAccount;
                            owner = ntAccount.Value;

foundFile には、ディレクトリから読み取られたファイル パスが含まれます。以下のリンクを通過しましたが、私の問題とは異なるようです: DirectoryInfo.GetAccessControl メソッドは常に失敗します

多くのユーザーでこの問題に直面しており、他のユーザーでも機能しているため、親切に助けてください。

4

1 に答える 1