none
ACL情報のコピーについて RRS feed

  • 質問

  • ルートディレクトリに設定しているACLを他のディレクトリに適用したいのですが
    ACL情報が適用されなくて困っています。

    ソースは下記になります。

      'ディレクトリ先
      Dim DirName As String = "C:\Share\User\hoge"
      
        'ACLを追加するディレクトリ先
        Dim DirInfo As New DirectoryInfo(DirName)

       'DirectorySecurity作成
       Dim DirSecurity As DirectorySecurity = DirInfo.GetAccessControl

       'ルートのパス
       Dim RootName As String = "C:\Share\User"

       'ACLの元になるディレクトリ先
       Dim RootInfo As New DirectoryInfo(RootName)

       'DirectorySecurity作成
       Dim RootSecurity As DirectorySecurity = RootInfo.GetAccessControl

       'ディレクトリ元のACL情報を取得
       Dim SecurityValue As String = aSecurity.GetSecurityDescriptorSddlForm(AccessControlSections.Access)

       Try

         'ディレクトリ先にACL情報をコピー
         DirSecurity.SetSecurityDescriptorSddlForm(SecurityValue)

         'ディレクトリ先に適用
         DirInfo.SetAccessControl(DirSecurity)

      Catch ex As Exception
         'エラーだったらエラーメッセージを表示      
         MessageBox.Show(ex.Message)
           
       End Try

    SecurityValueにはACLの情報(ID?)が代入されていました。
    Try ~ Catch ではエラーとなりませんでした。

    ACLのコピーの手順に問題はないでしょうか?
    自信がないので、本当にこれでいいのか分りません。

    ご教授ください。
    お願いいたします。

    2009年6月5日 3:49

すべての返信

  • 追加:
     ACL情報を適用するディレクトリ内にAdministrator権限のユーザーが
     削除されていると、ACL情報が適用されないことが分りました。

     適用先のディレクトリにAdministrator権限のユーザーがいなくても
     ACL情報を適用する方法はありますか?

     よろしくお願いいたします。

    2009年6月5日 5:02