手机
当前位置:查字典教程网 >脚本专栏 >vbs >VBSCript之GenerateSDDL函数(权限设置)
VBSCript之GenerateSDDL函数(权限设置)
摘要:复制代码代码如下:FunctionGenerateSDDL(AccountName,AccessFlag,AccessType,Access...

复制代码 代码如下:

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))

文章来源: http://www.enun.net/?p=1255

【VBSCript之GenerateSDDL函数(权限设置)】相关文章:

VBS教程:函数-Log 函数

VBScript:Join 函数一个不太常用,却很有用的函数

VBS教程:函数-派生数学函数

用VBScript批量安装网络打印机和设置默认打印机

VBS脚本也有GUI图形界面 日志清除功能

VBScript 常用函数总结

VBS教程:函数-Hour 函数

VBS教程:函数-Tan 函数

VBS教程:函数-Sqr 函数

VBS教程:函数-Date 函数

精品推荐
分类导航