Powershell 安装和加载模块

Powershell 安装和加载模块,powershell,powershell-4.0,azure-powershell,Powershell,Powershell 4.0,Azure Powershell,我希望我的脚本能够发现用户是否安装了模块,以及是否没有安装模块来执行安装和加载模块。我有执行发现模块的命令,但没有在模块不存在时如何安装并加载模块的命令 任何帮助都将不胜感激!见下面的代码 if((获取模块|选择名称,版本|其中{$\名称-类似“*AzureRM*”}).Count-lt 1) { 导入模块-名称AzureRM } 这是我用来导入新Azure模块的: # This script will not function without the Azure Modules if (-no

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

任何帮助都将不胜感激!见下面的代码

if((获取模块|选择名称,版本|其中{$\名称-类似“*AzureRM*”}).Count-lt 1)
{
导入模块-名称AzureRM
}

这是我用来导入新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,您可以根据上述示例导入所需的组件。

这是我用于导入新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,您可以根据上述示例导入所需的组件。

Hello@Newbie77,欢迎使用。到目前为止,您尝试了什么来让安装件工作?嗨,到目前为止,我还没有尝试任何东西…有什么想法吗?您好@Newbie77,欢迎光临。到目前为止,您尝试了什么来让安装件工作?嗨,到目前为止,我还没有尝试任何东西…有什么想法吗?