![为什么 PowerShell 对目录上的 Get-Content 给出“访问被拒绝”?](https://linux22.com/image/1442874/%E4%B8%BA%E4%BB%80%E4%B9%88%20PowerShell%20%E5%AF%B9%E7%9B%AE%E5%BD%95%E4%B8%8A%E7%9A%84%20Get-Content%20%E7%BB%99%E5%87%BA%E2%80%9C%E8%AE%BF%E9%97%AE%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D%EF%BC%9F.png)
偶然间,我最近尝试Get-Content
在一个目录上运行。我最初以为这是一个文件,因为它的名称与我预期位于该位置的常见文件非常相似。因此,当我在一个我应该完全控制的位置收到“访问被拒绝”错误时,我更加困惑了。
当然,我最终意识到了自己的错误。一旦我实际指向Get-Content
同一区域或该路径的子文件夹中的某些文件,它就可以正常工作。但这个错误仍然让我感到奇怪。至少,我认为显示一个错误会更加用户友好和明智,它实际上说(尽管更礼貌)“这不是您要查看的文件,天才!”。
为什么在这种情况下“拒绝访问”是有意义的?
答案1
原因在于,PowerShell、记事本等进程试图将目录像文件一样打开。
因为无法读取文件的“文件权限”(我知道可以设置 NTFS 权限并且看起来相同,但在本质上它们不是) - 它会生成“访问被拒绝”消息,该消息会传递给您尝试使用的任何程序。