iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vbs怎么通过WMI修改文件文件夹的NTFS权限
  • 938
分享到

vbs怎么通过WMI修改文件文件夹的NTFS权限

2023-06-08 09:06:59 938人浏览 泡泡鱼
摘要

这篇文章主要介绍“vbs怎么通过WMI修改文件文件夹的NTFS权限”,在日常操作中,相信很多人在vbs怎么通过WMI修改文件文件夹的NTFS权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么通过WM

这篇文章主要介绍“vbs怎么通过WMI修改文件文件夹的NTFS权限”,在日常操作中,相信很多人在vbs怎么通过WMI修改文件文件夹的NTFS权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么通过WMI修改文件文件夹的NTFS权限”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用WMI修改文件文件夹的NTFS权限, 代码:

复制代码 代码如下:


strUser = "guests"
strPath = "D:\\abc.txt"
RetVal = AddPermission(strUser,strPath,"R",True)

'-------------------------------------------------------------------------

'用于给文件和文件夹添加一条权限设置.返回值: 0-成功,1-账户不存在,2-路径不存在
'strUser表示用户名或组名
'strPath表示文件夹路径或文件路径
'strAccess表示允许权限设置的字符串,字符串中带有相应字母表示允许相应权限: R-读,C-读写,F-完全控制
'blInherit表示是否继承父目录权限.True为继承,False为不继承

Function AddPermission(strUser,strPath,strAccess,blInherit)
        Set objWMIService = GetObject("winmgmts:\\.\root\Cimv2")
        Set fso = CreateObject("Scripting.FileSystemObject")
        '得到Win32_SID并判断用户/组/内置账户是否存在
        Set colUsers = objWMIService.ExecQuery("SELECT * FROM Win32_Account WHERE Name='"&strUser&"'")
        If colUsers.count<>0 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") > 0 Then objNewACE.AcceSSMask = 1179817
        If InStr(UCase(strAccess),"C") > 0 Then objNewACE.AccessMask = 1245631
        If InStr(UCase(strAccess),"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)               
    '自动继承位置位,如果是刚创建的目录或文件该位是不置位的,需要置位
        End If
        If blInherit = True Then
                objSD.ControlFlags = (objSD.ControlFlags And &HEFFF)       
    '阻止继承复位
        Else
                objSD.ControlFlags = (objSD.ControlFlags Or &H1400)               
    '阻止继承位置位,自动继承位置位
        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时即使时继承的权限也会显示为非继承,这时所有权限都不设置
                                '当自动继承位置位为0时,在继承父目录权限的情况下不设置继承的权限.账户和需要加权限的账户一样时不设置权限
                        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

到此,关于“vbs怎么通过WMI修改文件文件夹的NTFS权限”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: vbs怎么通过WMI修改文件文件夹的NTFS权限

本文链接: https://www.lsjlt.com/news/253285.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vbs怎么通过WMI修改文件文件夹的NTFS权限
    这篇文章主要介绍“vbs怎么通过WMI修改文件文件夹的NTFS权限”,在日常操作中,相信很多人在vbs怎么通过WMI修改文件文件夹的NTFS权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么通过WM...
    99+
    2023-06-08
  • linux怎么修改文件夹权限
    要修改文件夹的权限,可以使用以下命令:1. 使用chmod命令:chmod [权限模式] [文件夹路径]对于文件夹,常用的权限模式有...
    99+
    2023-10-20
    linux
  • ubuntu怎么给文件夹改权限
    要给一个文件夹改变权限,可以使用 chmod 命令。它可以用来改变文件或文件夹的权限。要给文件夹改变权限,可以使用以下命令:```s...
    99+
    2023-10-12
    ubuntu
  • linux怎么改变文件夹权限
    本文小编为大家详细介绍“linux怎么改变文件夹权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux怎么改变文件夹权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux可以改变文件夹权限。在lin...
    99+
    2023-06-29
  • Linux下怎么查看文件权限、修改文件权限
    本篇内容主要讲解“Linux下怎么查看文件权限、修改文件权限”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么查看文件权限、修改文件权限”吧!查看权限命令查看目录的相关权限可以采用命...
    99+
    2023-06-13
  • ubuntu怎么给文件夹改777权限
    要将文件夹的权限更改为777,可以使用chmod命令。以下是在Ubuntu上更改文件夹权限的步骤: 打开终端。 使用cd命令导航到...
    99+
    2023-10-25
    ubuntu
  • python怎么修改文件权限
    使用python修改文件权限的方法:1.新建python项目;2.导入os模块;3.定义文件路径;4.使用os.chmod()方法修改文件权限;具体步骤如下:首先,打开python,并新建一个python项目;python项目创建好后,在项...
    99+
    2022-10-13
  • centos怎么修改文件权限
    要修改文件权限,可以使用chmod命令。以下是修改文件权限的一些常见用法:1. 修改文件所有者的权限:```chmod u+权限 文...
    99+
    2023-09-15
    centos
  • git怎么修改文件权限
    在使用Git进行代码管理的过程中,有时候需要修改文件权限。文件权限指的是文件的读、写、执行权限,可以通过chmod命令来修改。当需要修改Git仓库中的某个文件的权限时,可以通过以下步骤来完成:进入该文件所在的目录,使用ls命令查看文件的权限...
    99+
    2023-10-22
  • linux怎么修改文件权限
    本篇内容介绍了“linux怎么修改文件权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux修改文件权限的命令是“chmod”,chm...
    99+
    2023-06-22
  • python修改linux中文件(文件夹)的权限属性操作
    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(Read,读取):...
    99+
    2022-06-03
    python linux 文件 权限属性
  • linux怎么修改文件读写权限
    要在Linux上更改文件的读写权限,可以使用chmod命令。以下是更改权限的基本语法:chmod [权限模式] 文件名权限模式有两种...
    99+
    2023-09-28
    linux
  • 云主机怎么修改文件权限
    云主机修改文件权限的方法:使用chmod命令可以修改文件权限,它的基本格式为chmod [-R] 权限值 文件名,其中-R选项表示连同子目录中的所有文件,也都修改为设定的权限。具体内容如下:chmod命令使用数字修改文件权限Linux 系统...
    99+
    2022-10-18
  • Linux系统怎么修改文件权限
    小编今天带大家了解Linux系统怎么修改文件权限,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统怎么修改文件权限”的知识...
    99+
    2023-06-28
  • linux系统中怎么修改文件权限
    这篇文章给大家介绍linux系统中怎么修改文件权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问...
    99+
    2023-06-28
  • windows hosts文件怎么修改管理权限
    这篇文章主要讲解了“windows hosts文件怎么修改管理权限”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows hosts文件怎么修改管理权限”吧!hosts文件修改管理权限...
    99+
    2023-06-30
  • windows系统怎么修改hosts文件的权限?
    修改hosts文件的权限,使之可以用记事本。 1、hosts文件默认情况下只能查看不能编辑。这里给出解决方法。首先打开系统盘:/Windows/System32/drivers/etc/文件夹 2、在hosts文件上...
    99+
    2023-06-15
    windows修改hosts windows8修改hosts windows修改hosts文 文件 hosts 系统 windows 权限
  • Linux中怎么修改文件的默认权限
    Linux中怎么修改文件的默认权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。方法/步骤第一首先在电脑上打开Linux系统。然后进入终端输入命令。第二然后创建一个文件夹new...
    99+
    2023-06-13
  • 通过修改Win7的系统权限来达到随意修改系统文件的方法(图文)
    Windows 7系统之所以比XP安全性更好,一个重要原因就是对系统文件的权限掌控,在未经授权的情况下不能随意修改系统文件。很多从XP升级到Win7的用户很不习惯这一点,在对系统文件进行操作时会遇到诸如“拒绝...
    99+
    2023-05-26
    WIN7权限 修改权限 权限 Win7 图文 系统文件 方法
  • 怎么通过PHP来实现文件大小限制的修改
    这篇“怎么通过PHP来实现文件大小限制的修改”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么通过PHP来实现文件大小限制的...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作