提问人:LemongrabThree 提问时间:7/4/2023 最后编辑:LemongrabThree 更新时间:8/11/2023 访问量:142
设置 Update-Help 在 PowerShell 中安装帮助文件的位置?
Set the Location where Update-Help Installs Help Files in PowerShell?
问:
我刚刚安装了 PowerShell 7 并运行了所有帮助文件。这一切都运行良好,只是我后来注意到它将它们安装在 .我不想要OneDrive中的文件,我希望它们位于pwsh安装文件夹中。Update-Help -Force -UICulture en-us
C:/Users/<me>/OneDrive/Documents/PowerShell/Help
首先,我认为更改可能也会影响帮助文件的存储位置。我检查了(在 pwsh 窗口中)并发现,事实上,第一个条目是 .
的系统值为 。我尝试更改它并尝试编辑,但两者都不会改变 pwsh 启动时“PS7 用户、系统和$PSHOME路径”在变量前面的事实。PSModulePath
$env:PSModulePath
C:/Users/<me>/OneDrive/Documents/PowerShell/Modules
PSModulePath
C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;
powershell.config.json
我尝试手动设置然后从 pwsh 中运行,但这也不起作用。在此之后,我在相同的 pwsh 窗口中运行,唯一显示的地方是 和 变量。这些也是引用 的唯一系统环境变量。那么显然,PowerShell 被显式配置为使用 OneDrive 作为安装模块的第一个位置?不然怎么会这样呢?启动程序是一个可执行文件,所以我也无法真正查看它。PSModulePath
Update-Help
gci $env
C:/Users/<me>/OneDrive/Documents
OneDrive
OneDriveCommercial
C:/Users/<me>/OneDrive/Documents
pwsh
我还尝试让它在我的 OneDrive 文件夹中安装帮助文件,然后将它们复制到 .但是无论我把它们放在哪里,一旦它们从OneDrive文件夹中消失,就会说通常的“”消息。<entry>/Modules
<entry>/en-US
PSModulePath
get-help get-help
Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
我开始认为,帮助文件的存储和搜索位置之间实际上根本没有关系。PSModulePath
似乎有多种选项可用于确定从何处获取帮助文件,但没有用于决定保存它们的位置。Update-Help
所以是的:如果不是更改,我如何决定帮助文件的安装位置?我现在也会满足于一些解决方法。PSModulePath
答:
我希望它们在 pwsh 安装文件夹中。
将 -Scope AllUsers
传递给 Update-Help
(仅适用于 PowerShell (Core) 7+),以避免以特定于用户的位置为目标。
请注意,此选项[1]通常需要提升权限(使用管理员权限运行)。
注意:
PowerShell 7+ 中的 -
Scope CurrentUser
与-Scope AllUsers
(这是 Windows PowerShell 中始终隐含的默认值)允许你在用户级别和所有用户位置之间进行抽象选择,但无法控制作为目标的特定目录。- 实际上,您似乎无法通过
$env:PSModulePath
控制目标目录。
- 实际上,您似乎无法通过
具体说来:
使用
-Scope CurrentUser
(v7+ 中的默认值):- 对任何模块的更新(无论是否为第三方)都存储在以下用户级位置,即与实际模块文件夹平行的文件夹中:
- 视窗:
"$(Split-Path $PROFILE)\Help"
- 类 Unix 平台:
"$HOME/.local/share/powershell/Help"
- 视窗:
- 对任何模块的更新(无论是否为第三方)都存储在以下用户级位置,即与实际模块文件夹平行的文件夹中:
使用
-Scope AllUsers
(通常需要 _elevation):对 PowerShell 中内置或附带的模块的帮助内容的更新将针对 PowerShell 安装文件夹的子文件夹进行更新。
$PSHOME
支持可更新帮助内容的第三方模块将就地更新,无论它们安装在何处,都假定它们可以通过
$env:PSModulePath
发现。
[1] 鉴于可以在特定于用户的位置安装 PowerShell (Core),在这种情况下不需要提升。
评论