展会信息港展会大全

VBSCript之GenerateSDDL函数(权限设置)
来源:互联网   发布日期:2016-01-26 10:07:20   浏览:2341次  

导读:自己写的一个函数和应用实例,用于设置对象的相关权限,需要的朋友可以参考下复制代码 代码如下:Function GenerateSDDL(AccountName, AccessFlag, AccessType, AccessMask)Dim Accounts, ObjWMI, ObjSID ...

自己写的一个函数和应用实例,用于设置对象的相关权限,需要的朋友可以参考下

复制代码 代码如下:

Function GenerateSDDL(AccountName, AccessFlag, AccessType, AccessMask)

Dim Accounts, ObjWMI, ObjSID, ObjTru, ObjACE

Const SET_DACL_PRESENT = &H8004

Set ObjWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate, (Security)}!.rootcimv2")

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)}!.rootcimv2")

Set ObjSec = ObjWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & strPath & "'")

ObjSec.SetSecurityDescriptor(GenerateSDDL("everyone", &H0, &H1, &H100E0))

赞助本站

人工智能实验室
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港