为什么 PowerShell 无法更新其自己的目录?

为什么 PowerShell 无法更新其自己的目录?

为什么 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 日发布了这个问题。

相关内容