web-dev-qa-db-fra.com

Échec du module d'importation Azure

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?

18
itaysk

Les 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 variable d'environnement PSModulePath (ici dans les moindres détails, 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

19
Mathias R. Jessen

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.

7
Chris Pietschmann

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"
1
Jonathan Gao

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
Rahim

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
ozkary

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
Jawand Singh

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 besoin de le faire avec les nouveaux installateurs.

0
Tommy Patterson

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 days d'errance dans le noir, j'ai trouvé ce problème sur github pour Powershell Core: https://github.com/PowerShell/PowerShell/issues/409 et profondément enfoui était un commentaire d'un utilisateur anonyme. En être témoin: @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 Azure PowerShell.

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

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
0