Windows2000/2003サーバーを利用しています。
フォルダのプロパティでセキュリティの詳細設定を開いたときに「子オブジェクトに適用するアクセス許可エントリを親から継承し、それらをここで明示的に定義されているものに含める」にチェックが入っているかどうか調べる方法です。(直接見る以外)
VBSで
strPath = Wscript.arguments(0) Set objSec = GetObject("winmgmts:Win32_LogicalFileSecuritySetting.path='" & strPath & "'") ' SE_DACL_PROTECTED(&h1000) = Prevents the DACL of an SD from being modified by inheritable ACEs. If objSec.ControlFlags And &h1000 Then WScript.Echo strPath &"は親のアクセス権を継承しません(アクセス権が保護されている)" Else WScript.Echo strPath &"は親のアクセス権を継承します(アクセス権は保護されていない)" End If
実行はコマンドラインで以下のようにしてください(c:\testの部分を任意に)
cscript //nologo hoge.vbs "c:\test"
回答ありがとうございます。
残念ながら、CACLSでは親フォルダに対してのチェックしか出来ません。
「あるフォルダが下位に継承しようとしているかどうか」のチェックしか出来ず、しかも実際に下位フォルダが継承しているかどうかも分かりません。
「上位から継承しているかどうか」を調べたいと思っています。
VBSで
strPath = Wscript.arguments(0) Set objSec = GetObject("winmgmts:Win32_LogicalFileSecuritySetting.path='" & strPath & "'") ' SE_DACL_PROTECTED(&h1000) = Prevents the DACL of an SD from being modified by inheritable ACEs. If objSec.ControlFlags And &h1000 Then WScript.Echo strPath &"は親のアクセス権を継承しません(アクセス権が保護されている)" Else WScript.Echo strPath &"は親のアクセス権を継承します(アクセス権は保護されていない)" End If
実行はコマンドラインで以下のようにしてください(c:\testの部分を任意に)
cscript //nologo hoge.vbs "c:\test"
回答ありがとうございます!
チェックできました!
vbsはよく分かりませんが、フォルダリストを読み込んで一括チェックするようなものを作りたいと思います。
大変参考になりました。
回答ありがとうございます!
チェックできました!
vbsはよく分かりませんが、フォルダリストを読み込んで一括チェックするようなものを作りたいと思います。
大変参考になりました。