首页 > 解决方案 > 安装和加载模块

问题描述

我希望我的脚本能够发现用户是否安装了模块,以及是否没有安装它来执行安装和加载模块。我有执行发现模块的命令,但不知道如何安装它,如果它不存在并加载模块。

任何帮助,将不胜感激!请参阅下面的代码;

if ((Get-Module | Select Name, Version | Where {$_.Name -like "*AzureRM*"}).Count -lt 1)
{
        Import-Module -Name AzureRM
}

标签: powershellpowershell-4.0azure-powershell

解决方案


这是我用于导入新 Azure 模块的内容:

# This script will not function without the Azure Modules
if (-not (Get-Module -ListAvailable -Name "Az*" -Verbose:$false)) {
    if (Get-Module -ListAvailable -Name "Az" -Verbose:$false) {
        Uninstall-Az
    }
    Write-Output "Installing Azure modules"
    Install-Module -Name "Az" -ErrorAction Stop -Verbose:$false | Out-Null
}
else {
    Write-Verbose "Azure PowerShell module already installed."
}
# Import required modules
$Modules = @("Az.Accounts", "Az.Resources", "Az.Storage")
$SaveVerbosePreference = $global:VerbosePreference
$global:VerbosePreference = 'SilentlyContinue'
foreach ($Module in $Modules) {
    if (-not (Get-Module -Name $Module -Verbose:$false)) {
        Write-Output "Importing $Module module"
        Import-Module -Name $Module -ErrorAction Stop -Verbose:$false | Out-Null
    }
    else {
        Write-Verbose "$Module module already imported."
    }
}
$global:VerbosePreference = $SaveVerbosePreference

它也适用于较旧的模块。同样使用 Azure,您可以按照上述示例仅导入所需的组件。


推荐阅读