Windows 设置位置是否参见;“遍历/执行”;NTFS权限?
试图访问位于用户没有任何定义的NTFS访问权限的文件夹下的目录时,“设置位置”失败 将至少列表文件夹/读取数据授予父共享允许遍历和枚举Folder1,但如果不这样做,则无法使用Set location更改PWD(拒绝访问)。即使您可以通过资源管理器或Get-ChildItem cmdlet访问Folder1而不会出现问题,这也是正确的Windows 设置位置是否参见;“遍历/执行”;NTFS权限?,windows,powershell,Windows,Powershell,试图访问位于用户没有任何定义的NTFS访问权限的文件夹下的目录时,“设置位置”失败 将至少列表文件夹/读取数据授予父共享允许遍历和枚举Folder1,但如果不这样做,则无法使用Set location更改PWD(拒绝访问)。即使您可以通过资源管理器或Get-ChildItem cmdlet访问Folder1而不会出现问题,这也是正确的 Get-ChildItem "\\Server\Share\Folder1" succeeds Set-Location "\\Server\Share\Fol
Get-ChildItem "\\Server\Share\Folder1" succeeds
Set-Location "\\Server\Share\Folder1" fails
编辑:显然可以在低于文件夹1的目录上使用设置位置
Set-Location "\\Server\Share\Folder1\Folder2" succeeds
“设置位置”似乎不允许您将pwd设置为没有共享列表/读取权限的第一个嵌套文件夹
如何解释这种行为
编辑:此行为仅在使用UNC it时发生,在使用驱动器号时功能与预期相同。列出目录需要读取数据访问权限。将其设置为工作目录需要同步和执行访问。也就是说,用户可以将一个目录遍历到一个文件或子目录,而不考虑对该目录的访问权限,因为他们拥有默认启用的SeChangeNotifyPrivilege。显然,内部函数首先尝试通过
normalizerRelativePath
来规范路径,在UNC案例中,它尝试列出父目录以获取名称的规范化大小写(例如“FOLDER1”->“FOLDER1”)。如果我们没有对目录的读访问权限,这将失败,显然他们只是重新引发异常,而不是像他们显然应该的那样处理它(即,这是一个bug)。列出目录需要读取数据访问权限。将其设置为工作目录需要同步和执行访问。也就是说,用户可以将一个目录遍历到一个文件或子目录,而不考虑对该目录的访问权限,因为他们拥有默认启用的SeChangeNotifyPrivilege。显然,内部函数首先尝试通过normalizerRelativePath
来规范路径,在UNC案例中,它尝试列出父目录以获取名称的规范化大小写(例如“FOLDER1”->“FOLDER1”)。如果我们没有对目录的读访问权限,这将失败,而且很明显,他们只是重新引发异常,而不是像他们显然应该的那样处理它(即,这是一个bug)。