返回顶部
首页 > 资讯 > 精选 >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://lsjlt.com/news/253285.html(转载时请注明来源链接)

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

猜你喜欢
  • vbs怎么通过WMI修改文件文件夹的NTFS权限
    这篇文章主要介绍“vbs怎么通过WMI修改文件文件夹的NTFS权限”,在日常操作中,相信很多人在vbs怎么通过WMI修改文件文件夹的NTFS权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么通过WM...
    99+
    2023-06-08
  • linux怎么修改文件夹权限
    要修改文件夹的权限,可以使用以下命令:1. 使用chmod命令:chmod [权限模式] [文件夹路径]对于文件夹,常用的权限模式有...
    99+
    2023-10-20
    linux
  • linux怎么改变文件夹权限
    本文小编为大家详细介绍“linux怎么改变文件夹权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux怎么改变文件夹权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux可以改变文件夹权限。在lin...
    99+
    2023-06-29
  • ubuntu怎么给文件夹改权限
    要给一个文件夹改变权限,可以使用 chmod 命令。它可以用来改变文件或文件夹的权限。要给文件夹改变权限,可以使用以下命令:```s...
    99+
    2023-10-12
    ubuntu
  • 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+
    2024-04-02
  • linux怎么修改文件权限
    本篇内容介绍了“linux怎么修改文件权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux修改文件权限的命令是“chmod”,chm...
    99+
    2023-06-22
  • centos怎么修改文件权限
    要修改文件权限,可以使用chmod命令。以下是修改文件权限的一些常见用法:1. 修改文件所有者的权限:```chmod u+权限 文...
    99+
    2023-09-15
    centos
  • git怎么修改文件权限
    在使用Git进行代码管理的过程中,有时候需要修改文件权限。文件权限指的是文件的读、写、执行权限,可以通过chmod命令来修改。当需要修改Git仓库中的某个文件的权限时,可以通过以下步骤来完成:进入该文件所在的目录,使用ls命令查看文件的权限...
    99+
    2023-10-22
  • python修改linux中文件(文件夹)的权限属性操作
    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(Read,读取):...
    99+
    2022-06-03
    python linux 文件 权限属性
  • adb 修改文件权限
    1. adb 查看文件读写权限 可以使用 adb shell ls -l 命令查看文件或文件夹的读写权限。 例如,要查看文件夹 /sdcard/myfolder 的权限,可以使用如下命令: adb s...
    99+
    2023-09-05
    adb android
  • Linux文件权限修改
    1-文件/文件夹权限介绍 Linux是多用户操作系统,一个用户就是一个组,在 Linux 下,每一个用户都属于一个组,非当前用户就属于其他组,so一个文件就对应着三种权限——所有者、所在组和其他组。 如上图用命令 ls -ahl   查看...
    99+
    2023-09-01
    linux 运维 服务器
  • golang 修改文件权限
    Golang 是一种高效、可靠的编程语言,被越来越多的开发者所使用。在使用 Golang 进行文件操作时,有时候需要修改文件的权限,以实现更安全的文件管理。本篇文章将介绍如何使用 Golang 修改文件权限。首先,我们需要了解文件权限的概念...
    99+
    2023-05-14
  • Linux怎样修改文件权限
    小编今天带大家了解Linux怎样修改文件权限,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux怎样修改文件权限”的知识吧。Li...
    99+
    2023-06-28
  • ubuntu如何更改文件夹权限
    要更改文件夹的权限,您可以使用命令行工具`chmod`。下面是一些常见的用法:1. 更改所有者的权限:```chmod u=rwx ...
    99+
    2023-09-17
    ubuntu
  • 云主机怎么修改文件权限
    云主机修改文件权限的方法:使用chmod命令可以修改文件权限,它的基本格式为chmod [-R] 权限值 文件名,其中-R选项表示连同子目录中的所有文件,也都修改为设定的权限。具体内容如下:chmod命令使用数字修改文件权限Linux 系统...
    99+
    2024-04-02
  • linux怎么修改文件读写权限
    要在Linux上更改文件的读写权限,可以使用chmod命令。以下是更改权限的基本语法:chmod [权限模式] 文件名权限模式有两种...
    99+
    2023-09-28
    linux
  • Linux系统怎么修改文件权限
    小编今天带大家了解Linux系统怎么修改文件权限,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统怎么修改文件权限”的知识...
    99+
    2023-06-28
  • Magento中怎么设置文件与文件夹权限
    这期内容当中小编将会给大家带来有关Magento中怎么设置文件与文件夹权限,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SSH方式(适用于独立服务器或VPS) 代码如下:find . -type f -e...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作