O módulo de importação Azure falha

18

Estou tentando trabalhar com o módulo Windows Azure PowerShell no Windows 8.1. Fiz o download e instalei o módulo do Azure e, no início, posso executar e usar o "Windows Azure PowerShell", que é um PS que apenas carrega o Azure. Quando abro apenas uma janela PS simples e faço o Import-Module Azure, ela falha com:

import-module : The specified module 'Azure' was not loaded because no valid module file was found in any module directory.

Eu suspeito que ele tenha algo a ver com versões do PowerShell ou versões de 64 \ 32 bits.

Alguém tem alguma experiência com isso?

itaysk
fonte

Respostas:

19

Os binários do SDK do Windows Azure e os cmdlets do PowerShell pertencentes são todos de 32 bits, e é por isso que o atalho "Windows Azure Powershell" sempre inicia um shell de 32 bits.

Você pode importar o módulo do Azure para uma sessão existente do PowerShell referenciando o caminho do sistema de arquivos para o manifesto do módulo:

Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"

[Atualização] No Azure mais recente, use

Import-Module "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1"

Para acessar o módulo apenas pelo nome, você precisará incluir sua localização na PSModulePathvariável de ambiente (aqui em detalhes excruciantes, para desenvolvedores):

$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")

$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\"

$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";" 
[Environment]::SetEnvironmentVariable("PSModulePath",$newPSModulePath)

E uma expressão abreviada para o seu PowerShell

$env:PSModulePath += ";C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\"
Import-Module Azure # <-- Now you can do this!

Você pode incluir o acima em seu perfil do PowerShell

Mathias R. Jessen
fonte
2
Obrigado, isso também funciona para PS de 64 bits. Existe uma maneira de fazer o atalho funcionar em PS de 64 bits também?
itaysk
2
Para mim comandar eu tive que correr era: Import-Module "C: \ Program Files (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
Kai G
7

Se você acabou de instalar o Azure PowerShell SDK, reinicie o computador primeiro. Uma reinicialização é necessária após a instalação, caso contrário, essa exceção será lançada.

Chris Pietschmann
fonte
11
Foi exatamente isso !!!
Luis Gouveia
1

No Windows 10, o caminho mudou. Veja a versão correta abaixo:

$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")
$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement"
$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";" 
Rahim
fonte
1

Para o módulo do modo Azure Resource Manager (11/09/2015), use o seguinte:

import-module "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager\AzureResourceManager.psd1"
Jonathan Gao
fonte
0

Tente também executar o instalador como administrador, clicando com o botão direito do mouse no executável do instalador e escolhendo Executar como administrador. Depois de concluído, reinicie. Você também pode executar a importação conforme indicado acima, mas não precisará fazer isso com os instaladores mais recentes.

Tommy Patterson
fonte
0

Dependendo da versão do SDK que você instalou, você pode ter uma pasta "Windows Azure" ou apenas "Azure" no caminho.

Para minha configuração, eu uso este:

C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure
ozkary
fonte
0

Para o AzureRM 4.2.1 (no momento desta resposta). Seu caminho do módulo é diferente no meu caso, é

$env:PSModulePath += ";C:\Program Files\WindowsPowerShell\Modules\"
Import-module AzureRM

Eu estava usando-o em uma máquina x64, sistema operacional Windows 10.

você pode precisar de políticas de execução, pois o powershell solicita confirmação antes de importar os módulos. Aqui está o link para os oilicies de execução.

Jawand Singh
fonte
0

Estou tendo o problema exato listado na pergunta. Mas estou usando o Powershell Core. Meu sintoma era um pouco diferente (e altamente confuso)

Import-Module : Could not load file or assembly 'System.Windows.Forms,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system
cannot find the file specified.

Após algumas daysperambulações no escuro, encontrei esse problema no github do Powershell Core: https://github.com/PowerShell/PowerShell/issues/4090 e enterrado nele profundamente, foi um comentário de um usuário anônimo. A saber: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Enquanto a discussão era sobre linux, a realização do momento da lâmpada foi suficiente. Existem novos módulos para o núcleo do Azure PowerShell.

Meu perfil de inicialização do PS agora apresenta esta declaração

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
Sem Reembolsos Sem Devoluções
fonte