VBSCript之GenerateSDDL函数(权限设置)
复制代码 代码如下:
Function GenerateSDDL(AccountName, AccessFlag, AccessTyPE, AccessMask)
Dim Accounts, ObjWMI, ObjSID, ObjTru, ObjACE
Const SET_DACL_PRESENT = &
H8004
Set ObjWMI = GetObject("winmgmts:" &
"{
impersonationLevel=impersonate, (SecurITy)}
!\\.\root\cimv2")
Set Accounts = ObjWMI.ExecQuery("SELECT * From Win32_Account WHERE Name='" &
AccountName &
"'")
For each Account In Accounts
StrSID = Account.SID
Next
Set ObjSID = ObjWMI.Get("Win32_SID.SID='"&
StrSID &
"'")
Set ObjTru = ObjWMI.Get("Win32_Trustee").SpawnInstance_()
ObjTru.Domain = ObjSID.ReferencedDomainName
ObjTru.Name = ObjSID.AccountName
ObjTru.SID = ObjSID.BinaryRepresentation
ObjTru.Sidlength = ObjSID.SidLength
ObjTru.SIDString = ObjSID.Sid
Set ObjACE = ObjWMI.Get("Win32_ACE").SpawnInstance_()
ObjACE.Trustee = ObjTru
ObjACE.AceType = AccessType
ObjACE.AccessMask = AccessMask
ObjACE.AceFlags = AccessFlag
Set GenerateSDDL = ObjWMI.Get("Win32_SecurityDescriptor").SpawnInstance_()
GenerateSDDL.Owner = ObjTru
GenerateSDDL.DACL = Array(ObjACE)
GenerateSDDL.ControlFlags = SET_DACL_PRESENT
End Function
例子:
复制代码 代码如下:
strPath = "d:\\1.txt"
Set ObjWMI = GetObject("winmgmts:" &
"{
impersonationLevel=impersonate, (Security)}
!\\.\root\cimv2")
Set ObjSec = ObjWMI.Get("Win32_LOGicalFileSecuritySetting.Path='" &
strPath &
"'")
ObjSec.SetSecurityDescriptor(GenerateSDDL("everyone", &
H0, &
h1, &
H100E0))
文章来源: http://www.enun.net/?p=1255
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: VBSCript之GenerateSDDL函数(权限设置)
本文地址: https://pptw.com/jishu/609953.html
