mit*_*mit 8 powershell powershell-module powershellget
目前我们正在使用下面的命令安装一些模块,但它在C:\Program Files\WindowsPowerShell\Modules.
Install-Module -Name XXX -RequiredVersion XXX -Repository XXX -Scope AllUsers
Run Code Online (Sandbox Code Playgroud)
我们的要求是在E:\Modules文件夹中安装这个模块。为此,我更新了PSModulePath环境变量,如下所示。( https://msdn.microsoft.com/en-us/library/dd878350(v=vs.85).aspx )
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
$p += ";E:\Modules"
[Environment]::SetEnvironmentVariable("PSModulePath",$p)
Run Code Online (Sandbox Code Playgroud)
但它仍然安装在C:\Program Files\WindowsPowerShell\Modules.
如何更新PSModulePath到E:\Modules安装模块之前?
Har*_*son 10
您可以使用该Save-Module命令手动下载模块 zip 。
Find-Module -Name 'XXX' -Repository 'PSGallery' | Save-Module -Path 'E:\Modules'
Run Code Online (Sandbox Code Playgroud)
从这里您可以使用完全限定名称导入模块,如下所示:
Import-Module -FullyQualifiedName 'E:\Modules\XXX'
Run Code Online (Sandbox Code Playgroud)
或者PSModulePath像以前一样将目标文件夹添加到。
$modulePath = [Environment]::GetEnvironmentVariable('PSModulePath')
$modulePath += ';E:\Modules'
[Environment]::SetEnvironmentVariable('PSModulePath', $modulePath)
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用Get-Modulecmdlet检查模块是否已导入。
如果您正在使用该Import-Module命令,它可能会有点痛苦,尤其是当您有很多模块时。因此,您可以将这种方法包装在这样的函数中:
function Install-ModuleToDirectory {
[CmdletBinding()]
[OutputType('System.Management.Automation.PSModuleInfo')]
param(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
$Name,
[Parameter(Mandatory = $true)]
[ValidateScript({ Test-Path $_ })]
[ValidateNotNullOrEmpty()]
$Destination
)
# Is the module already installed?
if (-not (Test-Path (Join-Path $Destination $Name))) {
# Install the module to the custom destination.
Find-Module -Name $Name -Repository 'PSGallery' | Save-Module -Path $Destination
}
# Import the module from the custom directory.
Import-Module -FullyQualifiedName (Join-Path $Destination $Name)
return (Get-Module)
}
Install-ModuleToDirectory -Name 'XXX' -Destination 'E:\Modules'
Run Code Online (Sandbox Code Playgroud)
Pra*_*n V -1
$env:PSModulePath 是一个环境变量,用于搜索模块Import-Module,以及从 PS V3 开始自动加载模块。
如果您查看 的帮助文件Install-Module,我看不到提供模块安装路径的选项。
因此,作为解决方法,您可以根据模块名称(每个模块的文件夹名称相同)将作业复制到自定义路径。
问候,
奎巴顺
| 归档时间: |
|
| 查看次数: |
7582 次 |
| 最近记录: |