none
通过powershell或者cmd命令清除共享权限 RRS feed

  • 問題

  • 你好

    我们公司目前共享权限比较混乱,重新规划整理又没有太多的存储空间,现在想清除某个共享访问权限,这样可以重新设置

    \\192.168.130.135\china\test\test01\test02\test03\test04\

    从china清除所有权限

    2021年6月21日 1:58

所有回覆

  • 您好,

    假设要清除\\192.168.130.135\china\这个目录上面用户CONTOSO\testuser的所有权限,那么可以这样

    $path = "\\192.168.130.135\china"
    $user = "CONTOSO\testuser"
    $acl = Get-Acl -Path $path
    $aceAllow = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"allow")
    $aceDeny = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"deny")
    $acl.RemoveAccessRuleall($aceAllow)
    $acl.RemoveAccessRuleall($aceDeny)
    $acl | Set-Acl -Path $path  

    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他有相同问题的社区成员快速找到有用的答复。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.


    • 已編輯 Ian Xue 2021年6月21日 3:24
    2021年6月21日 3:23
  • 你好

    CONTOSO\testuser 这个我也是这么写吗

    2021年6月21日 5:10
  • 你好

    你上面这个CONTOSO\testuser 这里我是需要修改为什么还是我也需要这么写的

    2021年6月21日 5:13
  • 您好,

    这里CONTOSO\testuser只是一个例子,需要修改成实际需要设置的用户。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月21日 5:40
  • 你好

    你说的这个设置为实际需要修改的用户我没太明白,我是想清除所有权限,你说的这个用户是管理员或者是有权限的用户吗

    2021年6月21日 9:01
  • 您好,

    这个CONTOSO\testuser指的是需要被清除权限的用户。比如下图中,当前testuser这个用户在目录上有读写等权限

    那么脚本执行后,testuser用户在目录上的所有权限就会被清除。下图可以看到已经没有了testuser用户。

    至于您说的管理员或者权限用户,应该是运行这个脚本的账户。

    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他有相同问题的社区成员快速找到有用的答复。


    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.



    • 已編輯 Ian Xue 2021年6月21日 10:17
    2021年6月21日 10:15
  • 你好

    这里可以用条命令清除所有用户权限吗?我这里一级目录有的有50多个用户,二级目录,三级目录下来一起用200多个用户

    我是想清除所有用户权限就跟刚刚部署共享服务一样,为用户全部重新规划相应的权限


    • 已編輯 dnake668 2021年6月22日 2:20 内容没有写完
    2021年6月22日 2:19
  • 试一下删除最顶级目录的所有用户,一般来说子目录的用户都会继承上级目录的权限,删除了最顶级目录的权限,子目录继承的权限也会被删除。除非特别设置过禁用继承。
    2021年6月22日 3:32
  • 您好,

    就像上面Chen.Chen2提出的,不知道这些二三级目录的权限是不是从顶层继承的。如果是的话,只需要删除顶层的\\192.168.130.135\china目录的权限。可以试下这个脚本,其中$ExcludeUser是需要继续保留权限的用户,您可以根据实际情况自行设置

    $path = "\\192.168.130.135\china"
    $ExcludeUser = ("CONTOSO\Administrator","NT AUTHORITY\SYSTEM","BUILTIN\Administrators")
    $acl = Get-Acl -Path $path
    $users = $acl.Access.IdentityReference | Where-Object {$_ -notin $ExcludeUser}
    foreach($user in $users){
        $AceAllow = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"allow")
        $AceDeny = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"deny")
        $acl.RemoveAccessRuleall($AceAllow)
        $acl.RemoveAccessRuleall($AceDeny)
    }  
    $acl | Set-Acl -Path $path

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月22日 4:21
  • 您好,

    请问上面的回复能否解决您的问题?

    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他社区成员快速找到有用的答复。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月23日 6:27
  • 您好,

    请问上面的回复能够解决您的问题吗?

    如果回答是有帮助的,请将其标记为答案。如您还有其他疑问,可以随时回帖与我们联系。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月24日 8:10
  • 你好

    这样确实可以删除根目录下的所有用户权限,但是子目录的权限都在的,能不能连同子目录权限一同删除的

    公司设置目录权限的时候根目录很少有继承,基本都是设置的此文件权限,然后二级目录三级目录都是次文件夹权限,特殊用户会给所有继承权限的

    2021年6月30日 7:00
  • 您好,

    可以试下这个。假设要清除\\192.168.130.135\china\这个一级目录下的二三级目录权限

    $path = "\\192.168.130.135\china"
    $ExcludeUser = ("CONTOSO\Administrator","NT AUTHORITY\SYSTEM","BUILTIN\Administrators")
    $dirs = Get-ChildItem $path -Directory
    $dirs += Get-ChildItem $path -Directory | Get-ChildItem -Directory 
    foreach($dir in $dirs){
        $acl = Get-Acl -Path $dir
        $users = $acl.Access.IdentityReference | Where-Object {$_ -notin $ExcludeUser}
        foreach($user in $users){
            $AceAllow = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"allow")
            $AceDeny = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"deny")
            $acl.RemoveAccessRuleall($AceAllow)
            $acl.RemoveAccessRuleall($AceDeny)
        }  
        $acl | Set-Acl -Path $dir
    }

    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他社区成员快速找到有用的答复。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月30日 7:43
  • 你好

    跑了这个之后发现一级目录权限都清除不掉,而且说找不到里面目录,而且3级目录权限都在的

    2021年6月30日 8:45
  • 您好,

    上面这个没有操作一级目录。下面这个加上了一级目录,请重新试下。

    $path = "\\192.168.130.135\china"
    $ExcludeUser = ("CONTOSO\Administrator","NT AUTHORITY\SYSTEM","BUILTIN\Administrators")
    $dirs = @()
    $dirs += Get-Item -Path $path 
    $dirs += Get-ChildItem -Path $path -Directory
    $dirs += Get-ChildItem -Path $path -Directory | Get-ChildItem -Directory 
    foreach($dir in $dirs){
        $acl = Get-Acl -Path $dir.FullName
        $users = $acl.Access.IdentityReference | Where-Object {$_ -notin $ExcludeUser}
        foreach($user in $users){
            $AceAllow = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"allow")
            $AceDeny = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"deny")
            $acl.RemoveAccessRuleall($AceAllow)
            $acl.RemoveAccessRuleall($AceDeny)
        }  
        $acl | Set-Acl -Path $dir.FullName
    }


    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他社区成员快速找到有用的答复。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年6月30日 9:14
  • 你好

    现在是可以清除目录权限一级二级三级目录,但是四级目录的权限还是存在,这个是不是只能清除到三级目录呢,是否可以清除所有目录权限呢,我们这里最多有8级目录,常规也有5级目录的

    2021年7月1日 6:25
  • 您好,

    假设要清除\\192.168.130.135\china\这个目录以及下面所有的子目录的话,可以试下这个

    $path = "\\192.168.130.135\china"
    $ExcludeUser = ("CONTOSO\Administrator","NT AUTHORITY\SYSTEM","BUILTIN\Administrators")
    $dirs = @()
    $dirs += Get-Item -Path $path 
    $dirs += Get-ChildItem -Path $path -Recurse -Directory
    foreach($dir in $dirs){
        $acl = Get-Acl -Path $dir.FullName
        $users = $acl.Access.IdentityReference | Where-Object {$_ -notin $ExcludeUser}
        foreach($user in $users){
            $AceAllow = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"allow")
            $AceDeny = New-Object System.Security.AccessControl.FileSystemAccessRule ($user,1,"deny")
            $acl.RemoveAccessRuleall($AceAllow)
            $acl.RemoveAccessRuleall($AceDeny)
        }  
        $acl | Set-Acl -Path $dir.FullName
    }

    如您还有其他疑问,请随时与我们联系。如果回答是有帮助的,请将其标记为答案,可以帮助其他社区成员快速找到有用的答复。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年7月1日 8:07
  • 你好

    这个操作清除目录权限知道三级目录,四级以下目录权限没有被清除掉

    2021年7月2日 3:07
  • 您好,

    如果是这样那需要检查

    1.脚本运行是否有报错

    2.运行脚本的用户是否能修改四级以下的目录权限

    3.运行$dirs检查输出结果中是否包含四级以下的目录

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.


    • 已編輯 Ian Xue 2021年7月2日 6:57
    2021年7月2日 4:10
  • 您好,

    请问您的问题解决了吗?如果还有其他疑问,请随时与我们联系。

    祝好

    Ian Xue


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2021年7月6日 2:57