VBSCript之GenerateSDDL函数(权限设置)

所属分类: 脚本专栏 / vbs 阅读数: 972
收藏 0 赞 0 分享

复制代码 代码如下:

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

更多精彩内容其他人还在看

支持断点下载的VBS代码

VBS真是妙用无穷。会的程序语言不用太多,也不用太复杂,精通一门就好
收藏 0 赞 0 分享

VBS中的SetLocale函数到底有什么用?

写了这么多VBS,从来都没有使用过SetLocale函数,似乎也没有见过谁的代码使用过,这个SetLocale函数到底有什么用呢
收藏 0 赞 0 分享

VBS中CreateObject和WScript.CreateObject的区别介绍

很多VBS新手都很困惑CreateObject和WScript.CreateObject有什么区别,为什么一些代码中用CreateObject,而另一些却用WScript.CreateObject
收藏 0 赞 0 分享

用VBS实现的凯撒密码算法

在密码学中,恺撒密码(或称恺撒加密、恺撒变换)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向後(或向前)按照一个固定数目进行偏移後被替换成密文
收藏 0 赞 0 分享

通过vbs修改目录名称与快捷方式名称的实现代码

这篇文章主要是分享了如果用vbs修改目录名与快捷方式名称的代码,需要的朋友可以参考下
收藏 0 赞 0 分享

用VBScript制作QQ自动登录的脚本代码

有时候我们在个人电脑上,每次输入密码比较麻烦,可以自动登录,但如果qq账号多了,就可以使用这个脚本了
收藏 0 赞 0 分享

VBSCript之GenerateSDDL函数(权限设置)

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

去掉RAR右键解压菜单的VBS代码

前两天写了个批处理的,效率不高,百度、谷歌后找到一个更好的办法
收藏 0 赞 0 分享

vbs 批量修改文件,bat 批处理文件调用执行vbs,并在cmd窗口打印返回值(vbs运行结果)

使用vbs 脚本对工作目录下的字符串进行替换并统计被修改的文件数主调的批处理方法将捕捉该vbs脚本运行后的结果并打印在cmd窗口。
收藏 0 赞 0 分享

用vbs产生的若干个随机数并写入到一个.txt中的代码

用vbs产生的若干个随机数并写入到一个.txt中的代码,需要的朋友可以参考下。
收藏 0 赞 0 分享
查看更多