为何Get-Acl.Access与Active Directory显示的文件夹权限不一致?
问题原因及解决方案
核心差异:NTFS权限 vs 共享权限
你看到的结果差异,本质是混淆了两种完全独立的权限体系:
(Get-Acl -Path "D:\ADMIN_FOLDER").Access获取的是NTFS权限:这是文件/文件夹本身在本地存储卷上的权限,ReadAndExecute权限本身就包含了List folder contents的功能,还额外赋予了执行文件的权限。- 你提到的“通过Active Directory查看该文件夹权限”,实际查看的是共享权限:这是针对网络用户访问共享文件夹时的权限限制,共享权限的
List folder contents仅允许用户列出文件夹内的内容,没有执行文件的权限。
注意:Active Directory本身并不存储文件或文件夹的权限信息,你看到的应该是通过AD相关工具(比如AD用户和计算机)查看的文件服务器上的共享权限设置。
正确的权限查看命令
- 查看NTFS权限:继续使用
Get-Acl即可,这个命令返回的是本地/挂载卷上文件/文件夹的准确NTFS权限。 - 查看共享权限:使用PowerShell命令
Get-SmbShareAccess -Name "ADMIN_FOLDER"(替换为实际共享名称),这个命令会返回该共享的网络访问权限设置。
权限生效逻辑
当用户通过网络访问共享文件夹时,实际生效的权限是NTFS权限和共享权限的交集(取两种权限中更严格的那一个)。比如你这里,共享权限是List folder contents,NTFS是ReadAndExecute,那么网络用户实际只能获得List folder contents的权限。
内容的提问来源于stack exchange,提问作者Jav_Py
相关产品推荐
相关产品推荐

