
No.1ベストアンサー
- 回答日時:
以前、私が作成したVBSです。
参考になれば。
c:\scripts\test.txt
のアクセス許可を変更します。
Option Explicit
Dim instance
Dim strMoniker
Dim objDescriptor
Dim retval
Dim DACL
Dim controlFlags
Dim accessmask
Dim Group
Dim Owner
Dim SACL
Dim number_of_trustees
Dim trustee_Domain
Dim trustee_Name
Dim trustee_Sidstring
Dim i
Dim strACL
'' アクセス権のマスク
Const FULLACCESS = 2032127 '' フルアクセス(All)
Const READ = 1179817 '' 読み取り(RX)
Const UPDATE = 1245631 '' 変更(RWXD)
Const R = 1179785 '' 特殊なアクセス権(R)
Const W = 1179926 '' 特殊なアクセス権(W)
Const X = 1179808 '' 特殊なアクセス権(X)
Const D = 65536 '' 特殊なアクセス権(D)
Const P = 262144 '' 特殊なアクセス権(P)
Const O = 524288 '' 特殊なアクセス権(O)
Const ImpLevel = "{impersonationLevel=impersonate}"
Const namespace = "!root\cimv2:"
Const objectpath = _
"Win32_LogicalFileSecuritySetting=""c:\\scripts\\test.txt"""
strMoniker = "winmgmts:" & ImpLevel & namespace & objectpath
Set instance = GetObject(strMoniker)
If instance Is Nothing Then
MsgBox ("インスタンスを取得出来ません。")
WSCript.Quit
End If
retval = instance.getsecuritydescriptor(objDescriptor)
Set DACL = objDescriptor.Properties_.Item("dacl") ' get dacl
controlFlags = objDescriptor.Properties_.Item("controlflags")
Set Group = objDescriptor.Properties_.Item("Group")
Set Owner = objDescriptor.Properties_.Item("Owner")
Set SACL = objDescriptor.Properties_.Item("Sacl")
number_of_trustees = UBound(DACL.Value)
WScript.Echo "ドメイン名\ユーザ名:SID\アクセス権\アクセスマスク"
For i = 0 To number_of_trustees
Set trustee_Domain = DACL.Value(i).Properties_.Item _
("trustee").Value.Properties_.Item("Domain")
Set trustee_Name = DACL.Value(i).Properties_.Item _
("trustee").Value.Properties_.Item("Name")
Set trustee_Sidstring = DACL.Value(i).Properties_.Item _
("trustee").Value.Properties_.Item("Sidstring")
accessmask = DACL.Value(i).Properties_.Item _
("AccessMask").Value ' Save the accessmask
Select Case accessmask
Case FULLACCESS
strACL = "フルコントロール(All)"
Case READ
strACL = "読み取り(RX)"
Case UPDATE
strACL = "変更(RWXD)"
Case Else
strACL = accessmask
End Select
WScript.Echo trustee_domain & "\" & trustee_name & ":" & trustee_Sidstring & ":" & strACL & ":" & accessmask
If trustee_name = "Administrators" Then
'アクセス許可の設定
'Administratorsを「読み取り」にする
objDescriptor.Properties_.Item("dacl").Value(i).Properties_.Item _
("AccessMask").Value = R
End If
Next
retval = instance.setsecuritydescriptor(objDescriptor)
If retval = 0 Then
MsgBox "成功しました。"
Else
MsgBox "セキュリティ設定を変更できませんでした。"
End If
Set instance = Nothing
WSCript.Quit
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
高速道路を降りずに友人を拾う...
-
ネットカフェでUSBを使用し、そ...
-
高速道路の途中で人と待ち合わ...
-
HDAをMP3に変換
-
エクセルから現在起動している...
-
渋滞時、携帯トイレとおむつど...
-
神戸(三宮周辺)~福井県(敦...
-
【車】国立府中IC(近辺)から...
-
羽田空港へのリムジンバス
-
何でだろう?
-
愛知から青森までドライブした...
-
通勤経路の変更について
-
埼玉県道51号線(川越上尾線)...
-
平日朝の246の渋滞について
-
WSH(VBS)でNTFSのアクセス...
-
名古屋港から大阪まで、車での...
-
高速道路に乗らない夫
-
東京から白馬まで、関越+上信...
-
湘南から和歌山まで車で移動!
-
群馬県の伊香保から軽井沢
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
高速道路を降りずに友人を拾う...
-
HDAをMP3に変換
-
平日朝6時台の環八の混雑具合を...
-
諏訪市から軽井沢に車で行くの...
-
ネットカフェでUSBを使用し、そ...
-
環八はなぜ混む?
-
エクセルから現在起動している...
-
通勤経路の変更について
-
平日朝の246の渋滞について
-
高速道路の途中で人と待ち合わ...
-
群馬県の伊香保から軽井沢
-
日光東照宮から伊香保への移動
-
環八から中央道への入り口
-
羽田空港へのリムジンバス
-
柏に詳しい方、教えてください!
-
三軒茶屋近辺から羽田空港へ~...
-
今度 東京へ行くんですが 東...
-
名古屋から草津温泉にマイカー...
-
豊田市、主にトヨタ本社、トヨ...
-
埼玉近郊で超初心者にもオスス...
おすすめ情報