Import-Module Azure non riesce


18

Sto cercando di lavorare con il modulo PowerShell di Windows Azure su Windows 8.1. Ho scaricato e installato il modulo Azure e all'inizio posso eseguire e usare "Windows Azure PowerShell" che è un PS che carica solo Azure. Quando apro solo una semplice finestra PS e eseguo Import-Module Azure non riesce con:

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

Ho il sospetto che abbia qualcosa a che fare con le versioni di PowerShell o versioni a 64 \ 32 bit.

Qualcuno ha qualche esperienza con questo?

Risposte:


19

I binari di Windows Azure SDK e i relativi cmdlet di PowerShell sono tutti a 32 bit, motivo per cui il collegamento "Windows Azure Powershell" avvia sempre una shell a 32 bit.

È possibile importare il modulo di Azure in una sessione di PowerShell esistente facendo riferimento al percorso del filesystem al manifest del modulo:

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

[Aggiorna] Nell'ultima versione di Azure, usare

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

Per accedere al modulo solo per nome, dovrai includere la sua posizione nella PSModulePathvariabile d'ambiente (qui in dettaglio lancinante, per gli sviluppatori):

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

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

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

E un'espressione abbreviata per la tua PowerShell

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

È possibile includere quanto sopra nel profilo di PowerShell


2
Grazie, funziona anche con PS a 64 bit. C'è un modo per far funzionare il collegamento anche in PS a 64 bit?
Itaysk,

2
Per me il comando che dovevo eseguire era: Modulo di importazione "C: \ Programmi (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
Kai G

7

Se hai appena installato Azure PowerShell SDK, riavvia prima il computer. È richiesto un riavvio dopo l'installazione, altrimenti verrà generata questa eccezione.


1
Era esattamente così !!!
Luis Gouveia,

1

In Windows 10, il percorso è cambiato. Vedi la versione corretta di seguito:

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

1

Per il modulo della modalità Azure Resource Manager (2015/09/11), usare quanto segue:

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

0

Prova anche a eseguire il programma di installazione come amministratore, facendo clic con il pulsante destro del mouse sul file eseguibile del programma di installazione e selezionando Esegui come amministratore. Una volta completato, riavvia. Puoi anche eseguire l'importazione come indicato sopra, ma non dovresti farlo con i programmi di installazione più recenti.


0

A seconda della versione dell'SDK installata, è possibile che nel percorso sia presente una cartella "Windows Azure" o solo "Azure".

Per la mia configurazione, utilizzo questo:

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

0

Per AzureRM 4.2.1 (al momento di questa risposta). Il suo percorso del modulo è diverso nel mio caso

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

Lo stavo usando su una macchina x64, Windows 10 OS.

potresti aver bisogno di politiche di esecuzione poiché powershell richiede conferma prima di importare i moduli qui è il link per l'esecuzione delle politiche.


0

Sto riscontrando il problema esatto elencato nella domanda. Ma sto usando Powershell Core. Il mio sintomo era leggermente diverso (e molto 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.

Dopo un paio di daysvagabondaggi nell'oscurità ho trovato questo problema su github per Powershell Core: https://github.com/PowerShell/PowerShell/issues/4090 e seppellito profondamente in esso è stato un commento di un utente anonimo. Vale a dire: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Mentre la discussione riguardava Linux, la realizzazione del momento della lampadina era sufficiente. Ci sono nuovi moduli per il core powerhell azzurro.

Il mio profilo di avvio PS ora presenta questa affermazione

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.