是否可以更改PowerShell模块安装文件夹(将模块放置在Install-Module之后的文件夹)? 这就是为什么我要这样做:
Documents\WindowsPowerShell\Modules
,
符号(公司政策)的位置,
(类似于this issue)的.ps1时出错。我尝试过的事情:
$env:PSModulePath
中。启动PowerShell时,它会自动添加到变量上。答案 0 :(得分:0)
无法更改Install-Module
的行为,因此它将模块安装在自定义路径中。
但是,您可以使用Install-Module [...] -Scope AllUsers
为所有用户安装模块。这样会将模块安装在$env:ProgramFiles\PowerShell\Modules
中,但是此操作需要提升的权限(也就是本地管理员权限)。
如果您自己下载模块并将其安装到自定义路径(或使用Install-Module
的替代实现),则可以根据需要修改$env:PSModulePath
。
您可以在每次启动PowerShell会话时使用配置文件来修补$env:PSModulePath
,方法是将其添加到其中一个配置文件中:
# Prepend custom module path.
$env:PSModulePath = ((@("C:\mymodulepath") + ($env:PSModulePath -split ";")) -join ";")
来自Modifying the PSModulePath Installation Path
要向此变量添加路径,请使用以下方法之一:
要添加仅适用于当前会话的临时值,请在命令行中运行以下命令:
$env:PSModulePath = $env:PSModulePath + ";c:\ModulePath"
要添加在每次打开会话时都可用的持久值,请在Windows PowerShell配置文件中添加以下命令:
$env:PSModulePath = $env:PSModulePath + ";c:\ModulePath"
有关配置文件的更多信息,请参阅 Microsoft TechNet库。
要将持久性变量添加到注册表,请使用环境创建一个名为
PSModulePath
的新用户环境变量。 “系统属性”对话框中的“变量编辑器”。要使用脚本添加持久变量,请使用Environment类上的
SetEnvironmentVariable
方法。例如, 以下脚本添加了"C:\Program Files\Fabrikam\Module"
路径 到PSModulePath
环境变量的值 电脑。向用户PSModulePath
环境添加路径 变量,将目标设置为"User"
。$CurrentValue = [Environment]::GetEnvironmentVariable("PSModulePath", "Machine") [Environment]::SetEnvironmentVariable("PSModulePath", $CurrentValue + ";C:\Program Files\Fabrikam\Modules", "Machine")