Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Powershell进行NTFS报告_Powershell_Scripting_Ntfs - Fatal编程技术网

通过Powershell进行NTFS报告

通过Powershell进行NTFS报告,powershell,scripting,ntfs,Powershell,Scripting,Ntfs,我想报告用户对文件夹对象(而不是文件)的权限。我正试图使用get-acl powershell cmdlet来实现这一点,但是我遇到了一个问题,我注意到我的代码没有正确地获取所有权限。我还可以在检查用户权限时将其降低一个级别,并希望在用户权限可能会更改一个文件夹时获得异常 if ($ComputerName -eq '.'){ $Path = $Folder } else { $Path = "\\$ComputerName\$Folder" }ls if ($OutputFile){ gc

我想报告用户对文件夹对象(而不是文件)的权限。我正试图使用get-acl powershell cmdlet来实现这一点,但是我遇到了一个问题,我注意到我的代码没有正确地获取所有权限。我还可以在检查用户权限时将其降低一个级别,并希望在用户权限可能会更改一个文件夹时获得异常

if ($ComputerName -eq '.'){
$Path = $Folder
}

else {
$Path = "\\$ComputerName\$Folder"
}ls

if ($OutputFile){
gci c:\|%{if($_.PSIsContainer){GCI $_.FullName|get-acl};$_|get-acl}| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | sort PSParentPath|Export-CSV $OutputFile -NoType
}

else{
gci c:\|%{if($_.PSIsContainer){GCI $_.FullName|get-acl};$_|get-acl}| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | sort PSParentPath|FT -Auto
}

随机文件夹报告数字,而不是给我文件系统权限。我的代码有问题吗?

您的脚本没有问题

请看一下这个以获得解释

简言之:

内置\管理员允许完全控制

内置\管理员允许268435456


你应该可以把它们过滤掉,我和这里的ManyRootsofAllEvil不一样。。。你不想把它们过滤掉。数值结果是由于ACE中应用了特定的权限,而不是读、写或完全控制等分组权限。请阅读所有详细信息,但该数字代表所有指定权利的最高点。例如,通用读访问组显示如下:

指定以只读方式打开和复制文件夹或文件的权限。 此权限包括ReadData权限、ReadExtendedAttributes权限、, ReadAttributes权限和ReadPermissions权限

是的,如果有人拥有完全的控制权,那么深入到特定的权限可能并不重要,但可能很重要,因为这些权限可能会传播到子文件夹和文件

因此,如果有人具有读取权限,您将看到读取。如果某人只有ReadData、ReadExtendedAttributes和ReadAttributes(但没有ReadPermissions),则会产生数字响应

按位标志的工作原理是(仅示例,而非实际值!): 0-无 1-读取数据 2-再版赠品 5-读取属性 9-读取权限

你知道他们有什么,加上与之相关的数字,这就是按位响应。因此,如果他们有ReadData(1)和ReadPermissions(9),则响应为10(1+9)。如果它们有ReadData(1)、ReadExtendedAttributes(2)和ReadAttributes(5),则得到8(1+2+5)。数字很快就会变大,因为任何单个项目都不能将以前的项目组合在一起,这样,任何数量的项目组合在一起都会创建一个唯一的数字

您最终要做的是查看继承和传播类型,以了解它们在异常方面的差异