jquery教程

推荐列表 站点导航

当前位置:首页 > jquery > jquery教程 >

vbs使用WMI修改文件与文件夹 NTFS权限的代码

来源:网络整理  作者:fen  发布时间:2020-12-26 12:08
分享一段vbs代码,通过wmi修改文件夹与文件的ntfs权限,很好用,有需要的朋友作个参考。...

C-读写,C) 0 Then objNewACE.AccessMask = 1245631 If InStr(UCase(strAccess),2-路径不存在 'strUser表示用户名或组名 'strPath表示文件夹路径或文件路径 'strAccess表示允许权限设置的字符串。

这时所有权限都不设置 '当自动继承位置位为0时,strPath, 使用WMI修改文件与文件夹的NTFS权限,自动继承位置位 End If objOldDacl = objSD.Dacl ReDim objNewDacl(0) Set objNewDacl(0) = objNewACE If IsArray(objOldDacl) Then '权限为空时objOldDacl不是集合不可遍历 For Each objACE In objOldDacl If (blSE_DACL_AUTO_INHERITED=False And blInherit=True) Or ((objACE.AceFlags And 16)0 And (blInherit=True) Or (LCase(objACE.Trustee.Name)=LCase(strUser))) Then 'Do nothing '当自动继承位置位为0时即使时继承的权限也会显示为非继承,R) 0 Then objNewACE.AccessMask = 1179817 If InStr(UCase(strAccess)。

字符串中带有相应字母表示允许相应权限: R-读,blInherit) Set objWMIService = GetObject(winmgmts:\\.\root\Cimv2) Set fso = CreateObject(Scripting.FileSystemObject) '得到Win32_SID并判断用户/组/内置账户是否存在 Set colUsers = objWMIService.ExecQuery(SELECT IT之家 FROM Win32_Account WHERE) If colUsers.count0 Then For Each objUser In colUsers strSID = objUser.SID Next Else AddPermission = 1 Exit Function End If Set objSID = objWMIService.Get(Win32_SID.SID='strSID') '判断文件/文件夹是否存在 pathType = If fso.fileExists(strPath) Then pathType = FILE If fso.folderExists(strPath) Then pathType = FOLDER If pathType = Then AddPermission = 2 Exit Function End If '设置Trustee Set objTrustee = objWMIService.Get(Win32_Trustee).SpawnInstance_() objTrustee.Domain = objSID.ReferencedDomainName objTrustee.Name = objSID.AccountName objTrustee.SID = objSID.BinaryRepresentation objTrustee.SidLength = objSID.SidLength objTrustee.SIDString = objSID.Sid '设置ACE Set objNewACE = objWMIService.Get(Win32_ACE).SpawnInstance_() objNewACE.Trustee = objTrustee objNewACE.AceType = 0 If InStr(UCase(strAccess),R,需要置位 End If If blInherit = True Then objSD.ControlFlags = (objSD.ControlFlags And HEFFF) '阻止继承复位 Else objSD.ControlFlags = (objSD.ControlFlags Or H1400) '阻止继承位置位,F) 0 Then objNewACE.AccessMask = 2032127 If pathType = FILE And blInherit = True Then objNewACE.AceFlags = 16 If pathType = FILE And blInherit = False Then objNewACE.AceFlags = 0 If pathType = FOLDER And blInherit = True Then objNewACE.AceFlags = 19 If pathType = FOLDER And blInherit = False Then objNewACE.AceFlags = 3 '设置SD Set objFileSecSetting = objWMIService.Get(Win32_LogicalFileSecuritySetting.Path='strPath') Call objFileSecSetting.GetSecurityDescriptor(objSD) blSE_DACL_AUTO_INHERITED = True If (objSD.ControlFlags And H400) = 0 Then blSE_DACL_AUTO_INHERITED = False objSD.ControlFlags = (objSD.ControlFlags Or H400) '自动继承位置位,F-完全控制 'blInherit表示是否继承父目录权限.True为继承,strAccess,True) '---------- '用于给文件和文件夹添加一条权限设置.返回值: 0-成功,1-账户不存在,代码如下: 复制代码 代码示例: strUser = guests strPath = D:\\abc.txt RetVal = AddPermission(strUser,在继承父目录权限的情况下不设置继承的权限.账户和需要加权限的账户一样时不设置权限 Else Ubd = UBound(objNewDacl) ReDim preserve objNewDacl(Ubd+1) Set objNewDacl(Ubd+1) = objACE End If Next End If objSD.Dacl = objNewDacl '提交设置修改 Call objFileSecSetting.SetSecurityDescriptor(objSD) AddPermission = 0 Set fso = Nothing End Function ,strPath,False为不继承 Function AddPermission(strUser,如果是刚创建的目录或文件该位是不置位的,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jq/jc/9262.shtml

相关文章
最新文章
PHP识别相片是否是颠倒的 PHP识别相片是否是颠倒的

时间:2020-12-28

python编程有哪些ide python编程有哪些ide

时间:2020-12-28

python开发工程师是做什么 python开发工程师是做什么

时间:2020-12-28

php构造函数的作用 php构造函数的作用

时间:2020-12-28

php怎么跟数据库连接 php怎么跟数据库连接

时间:2020-12-28

php实现顺序线性表 php实现顺序线性表

时间:2020-12-28

Python多重继承中的菱形继 Python多重继承中的菱形继

时间:2020-12-28

php中break的作用 php中break的作用

时间:2020-12-28

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

vbs使用WMI修改文件与文件夹 NTFS权限的代码

2020-12-26 编辑:fen

C-读写,C) 0 Then objNewACE.AccessMask = 1245631 If InStr(UCase(strAccess),2-路径不存在 'strUser表示用户名或组名 'strPath表示文件夹路径或文件路径 'strAccess表示允许权限设置的字符串。

这时所有权限都不设置 '当自动继承位置位为0时,strPath, 使用WMI修改文件与文件夹的NTFS权限,自动继承位置位 End If objOldDacl = objSD.Dacl ReDim objNewDacl(0) Set objNewDacl(0) = objNewACE If IsArray(objOldDacl) Then '权限为空时objOldDacl不是集合不可遍历 For Each objACE In objOldDacl If (blSE_DACL_AUTO_INHERITED=False And blInherit=True) Or ((objACE.AceFlags And 16)0 And (blInherit=True) Or (LCase(objACE.Trustee.Name)=LCase(strUser))) Then 'Do nothing '当自动继承位置位为0时即使时继承的权限也会显示为非继承,R) 0 Then objNewACE.AccessMask = 1179817 If InStr(UCase(strAccess)。

字符串中带有相应字母表示允许相应权限: R-读,blInherit) Set objWMIService = GetObject(winmgmts:\\.\root\Cimv2) Set fso = CreateObject(Scripting.FileSystemObject) '得到Win32_SID并判断用户/组/内置账户是否存在 Set colUsers = objWMIService.ExecQuery(SELECT IT之家 FROM Win32_Account WHERE) If colUsers.count0 Then For Each objUser In colUsers strSID = objUser.SID Next Else AddPermission = 1 Exit Function End If Set objSID = objWMIService.Get(Win32_SID.SID='strSID') '判断文件/文件夹是否存在 pathType = If fso.fileExists(strPath) Then pathType = FILE If fso.folderExists(strPath) Then pathType = FOLDER If pathType = Then AddPermission = 2 Exit Function End If '设置Trustee Set objTrustee = objWMIService.Get(Win32_Trustee).SpawnInstance_() objTrustee.Domain = objSID.ReferencedDomainName objTrustee.Name = objSID.AccountName objTrustee.SID = objSID.BinaryRepresentation objTrustee.SidLength = objSID.SidLength objTrustee.SIDString = objSID.Sid '设置ACE Set objNewACE = objWMIService.Get(Win32_ACE).SpawnInstance_() objNewACE.Trustee = objTrustee objNewACE.AceType = 0 If InStr(UCase(strAccess),R,需要置位 End If If blInherit = True Then objSD.ControlFlags = (objSD.ControlFlags And HEFFF) '阻止继承复位 Else objSD.ControlFlags = (objSD.ControlFlags Or H1400) '阻止继承位置位,F) 0 Then objNewACE.AccessMask = 2032127 If pathType = FILE And blInherit = True Then objNewACE.AceFlags = 16 If pathType = FILE And blInherit = False Then objNewACE.AceFlags = 0 If pathType = FOLDER And blInherit = True Then objNewACE.AceFlags = 19 If pathType = FOLDER And blInherit = False Then objNewACE.AceFlags = 3 '设置SD Set objFileSecSetting = objWMIService.Get(Win32_LogicalFileSecuritySetting.Path='strPath') Call objFileSecSetting.GetSecurityDescriptor(objSD) blSE_DACL_AUTO_INHERITED = True If (objSD.ControlFlags And H400) = 0 Then blSE_DACL_AUTO_INHERITED = False objSD.ControlFlags = (objSD.ControlFlags Or H400) '自动继承位置位,F-完全控制 'blInherit表示是否继承父目录权限.True为继承,strAccess,True) '---------- '用于给文件和文件夹添加一条权限设置.返回值: 0-成功,1-账户不存在,代码如下: 复制代码 代码示例: strUser = guests strPath = D:\\abc.txt RetVal = AddPermission(strUser,在继承父目录权限的情况下不设置继承的权限.账户和需要加权限的账户一样时不设置权限 Else Ubd = UBound(objNewDacl) ReDim preserve objNewDacl(Ubd+1) Set objNewDacl(Ubd+1) = objACE End If Next End If objSD.Dacl = objNewDacl '提交设置修改 Call objFileSecSetting.SetSecurityDescriptor(objSD) AddPermission = 0 Set fso = Nothing End Function ,strPath,False为不继承 Function AddPermission(strUser,如果是刚创建的目录或文件该位是不置位的,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jq/jc/9262.shtml

相关文章

风云图片

推荐阅读

返回jquery教程频道首页