为什么 PowerShell 不能访问其自己的帮助目录?
PS C:\WINDOWS\system32> Update-Help
Update-Help : Failed to update Help for the module(s) 'Microsoft.PowerShell.Operation.Validation' with UI culture(s) {en-US} : Access to the path 'C:\Program
Files\WindowsPowerShell\Modules\Microsoft.PowerShell.Operation.Validation\1.0.1\en-US' is denied.
At line:1 char:1
+ Update-Help
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : UnknownErrorId,Microsoft.PowerShell.Commands.UpdateHelpCommand
en-US
这是 Windows 10 安装的 PowerShell。下面没有目录
C:\Program Files\WindowsPowerShell\Modules\Microsoft.PowerShell.Operation.Validation\1.0.1\
还有其他几个en-US
目录。
C:\Program Files\WindowsPowerShell>dir en-us /s /b /a:d
C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\en-US
C:\Program Files\WindowsPowerShell\Modules\Pester\3.3.5\en-US
C:\Program Files\WindowsPowerShell\Modules\Pester\3.4.0\en-US
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\en-US
C:\Program Files\WindowsPowerShell\Modules\PSReadline\1.1\en-US
C:\Program Files\WindowsPowerShell\Modules\PSReadline\1.2\en-US
答案1
如果以管理员身份运行时 PowerShell 仍然遇到访问被拒绝错误,则管理员对该文件夹没有足够的访问权限。
打开您指定路径上的最低级目录的属性窗口。转到“安全”选项卡并单击“高级”。如果所有内容都呈灰色,请使用顶部的“更改”链接获取所有权,然后单击“确定”高级安全设置对话框,然后重新打开它。您现在将能够编辑其访问控制列表。
正确的权限1.0.1
是:
- 完全控制在此文件夹及其子文件夹到 TrustedInstaller
- 除以下所有基本权限外完全控制在仅限此文件夹至系统
- 完全控制在仅限子文件夹和文件至系统
- 前两个问题同样存在,但对于管理员来说,这是关键
- 读取并执行,列出文件夹内容, 和读在此文件夹、子文件夹和文件致用户
- 再次回到上一个,但适用于所有应用程序包以及所有受限应用程序包
- 完全控制在仅限子文件夹和文件致创作者所有者
完成后,它看起来应该像这样:
一般来说,如果某个项目的权限看起来不正确,请尝试从正常运行的机器上复制它们。
完成后,提升的 PowerShell 将能够创建适当的文件和文件夹。
答案2
我遇到了这个问题。对我来说,文化子文件夹 (en-US) 不存在。我手动创建了 en-US 子文件夹,并将 1.0.1 文件夹中的所有文件夹和文件复制到 en-US 文件夹中(有些文件夹被锁定)。此后,Update-Help 就可以正常工作了。
似乎有些东西被改变了,想要一种文化,但这个模块不符合这个标准。这个模块中的文件和文件夹的日期是 2017 年 3 月 18 日,而 op 在 2017 年 4 月 18 日发布了这个问题。