Le module d'importation Azure échoue


18

J'essaie de travailler avec le module Windows Azure PowerShell sur Windows 8.1. J'ai téléchargé et installé le module Azure et au début, je peux exécuter et utiliser le "Windows Azure PowerShell" qui est un PS qui charge simplement Azure. Lorsque j'ouvre simplement une fenêtre PS ordinaire et que j'utilise Azure Import-Module, il échoue avec:

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

Je soupçonne que cela a quelque chose à voir avec les versions PowerShell ou les versions 64 \ 32 bits.

Quelqu'un a-t-il une expérience avec cela?

Réponses:


19

Les fichiers binaires du Kit de développement logiciel (SDK) Windows Azure et les applets de commande PowerShell correspondantes sont tous 32 bits, c'est pourquoi le raccourci «Windows Azure Powershell» lance toujours un shell 32 bits.

Vous pouvez importer le module Azure dans une session PowerShell existante en référençant le chemin du système de fichiers vers le manifeste du module:

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

[Mise à jour] Dans la dernière version d'Azure, utilisez

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

Pour accéder au module uniquement par son nom, vous devrez inclure son emplacement dans la PSModulePathvariable d'environnement (ici en détail atroce, pour les développeurs):

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

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

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

Et une expression abrégée pour votre PowerShell

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

Vous pouvez inclure ce qui précède dans votre profil PowerShell


2
Merci, cela fonctionne aussi pour PS 64 bits. Existe-t-il un moyen de faire fonctionner le raccourci sur PS 64 bits également?
itaysk

2
Pour moi, la commande que j'ai dû exécuter était: Import-Module "C: \ Program Files (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
Kai G

7

Si vous venez d'installer le SDK Azure PowerShell, redémarrez d'abord l'ordinateur. Un redémarrage est requis après l'installation, sinon cette exception sera levée.


1
C'était exactement ça !!!
Luis Gouveia

1

Sous Windows 10, le chemin a changé. Voir la version correcte ci-dessous:

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

1

Pour le module du mode Azure Resource Manager (2015/09/11), utilisez ce qui suit:

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

0

Essayez également d'exécuter le programme d'installation en tant qu'administrateur, en cliquant avec le bouton droit sur l'exécutable du programme d'installation et en choisissant Exécuter en tant qu'administrateur. Une fois terminé, redémarrez. Vous pouvez également exécuter l'importation comme indiqué ci-dessus, mais vous ne devriez pas avoir à le faire avec les nouveaux installateurs.


0

Selon la version du SDK que vous avez installée, vous pouvez avoir un dossier «Windows Azure» ou simplement «Azure» sur le chemin.

Pour ma configuration, j'utilise ceci:

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

0

Pour AzureRM 4.2.1 (au moment de cette réponse). Son chemin de module est différent dans mon cas, il est

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

Je l'utilisais sur une machine x64, Windows 10 OS.

vous pourriez avoir besoin de politiques d'exécution car powershell demande une confirmation avant d'importer des modules. Voici le lien pour les huileries d'exécution.


0

J'ai le problème exact répertorié dans la question. Mais j'utilise Powershell Core. Mon symptôme était légèrement différent (et très déroutant)

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.

Après quelques dayserrances dans le noir, j'ai trouvé ce problème sur github pour Powershell Core: https://github.com/PowerShell/PowerShell/issues/4090 et enterré profondément était un commentaire d'un utilisateur anonyme. À savoir: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Alors que la discussion portait sur Linux, la réalisation du moment de l'ampoule était suffisante. Il existe de nouveaux modules pour le noyau PowerShell azur.

Mon profil de démarrage PS comprend désormais cette déclaration

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.