2

フォルダー A からフォルダー B にファイルをコピーしてから、ファイルのアクセス許可をコピーしようとしています。私が使用している基本的な手順は次のとおりです。

  1. CopyFile(ソース、ターゲット)
  2. GetNamedSecurityInfo (ソース、GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. ConvertSecurityDescriptorToStringSecurityDescriptor を使用してソース SD を印刷する
  4. SetNamedSecurityInfo(ターゲット、GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo(ターゲット、GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. ConvertSecurityDescriptorToStringSecurityDescriptor を使用してターゲット SD を出力する

#3で、このSDを取得します:

G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;FA;;;S-1-5-21-1454471165-1482476501-839522115-1004)

#6で私は得る

G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)

SetNamedSecurityInfo への呼び出しは ERROR_SUCCESS を返しますが、結果はソース ファイルとターゲット ファイルの SD が同じではありません。何故ですか?ここで何が間違っていますか?

4

2 に答える 2

2

SHFileOperationセキュリティ属性と一緒にファイルをコピーできますが、他の質問から、これがサービス内で機能しないことを懸念しているようです。おそらく、次のニュースグループのディスカッションが役立つ情報を提供してくれるでしょう:

于 2008-10-15T21:57:50.707 に答える
1

サーバー ツール キットの Robocopy http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
すべての NTFS 設定と ACL をコピーします。コピー/xcopy

于 2008-10-15T22:59:22.283 に答える