it-swarm.com.de

Import-Module Azure schlägt fehl

Ich versuche, mit dem Windows Azure PowerShell-Modul unter Windows 8.1 zu arbeiten. Ich habe das Azure-Modul heruntergeladen und installiert und kann zu Beginn die "Windows Azure PowerShell" ausführen und verwenden, eine PS, die nur Azure lädt. Wenn ich nur ein einfaches PS-Fenster öffne und Import-Module Azure ausführe, schlägt dies fehl mit:

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

Ich vermute, dass es etwas mit Powershell-Versionen oder 64\32-Bit-Versionen zu tun hat.

Hat jemand irgendwelche Erfahrungen damit?

18
itaysk

Die Windows Azure SDK-Binärdateien und die zugehörigen PowerShell-Cmdlets sind alle 32-Bit, weshalb die Verknüpfung "Windows Azure Powershell" immer eine 32-Bit-Shell startet.

Sie können das Azure-Modul in eine vorhandene PowerShell-Sitzung importieren, indem Sie auf den Dateisystempfad zum Modulmanifest verweisen:

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

[Update] Verwenden Sie in der neuesten Version von Azure

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

Um nur namentlich auf das Modul zugreifen zu können, müssen Sie seine Position in die Umgebungsvariable PSModulePath aufnehmen (hier für Entwickler in äußerst detaillierten Details):

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

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

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

Und eine Abkürzung für Ihre Powershell

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

Sie können die oben genannten Elemente in Ihr PowerShell-Profil aufnehmen

19

Wenn Sie gerade das Azure PowerShell SDK installiert haben, starten Sie zuerst den Computer neu. Nach der Installation ist ein Neustart erforderlich, andernfalls wird diese Ausnahme ausgelöst.

7

Verwenden Sie für das Azure Resource Manager-Modusmodul (11.09.2015) Folgendes:

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

In Windows 10 hat sich der Pfad geändert. Siehe korrekte Version unten:

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

Abhängig von der von Ihnen installierten SDK-Version befindet sich möglicherweise ein Ordner "Windows Azure" oder nur "Azure" im Pfad.

Für mein Setup verwende ich Folgendes:

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

Für AzureRM 4.2.1 (zum Zeitpunkt dieser Antwort). Sein Modulpfad ist in meinem Fall anders

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

Ich habe es auf einem x64-Computer unter Windows 10 verwendet.

möglicherweise benötigen Sie Ausführungsrichtlinien, da Powershell vor dem Importieren von Modulen eine Bestätigung anfordert. Hier ist der Link für Ausführungs-Oilicies.

0
Jawand Singh

Versuchen Sie auch, das Installationsprogramm als Administrator auszuführen, indem Sie mit der rechten Maustaste auf die ausführbare Datei des Installationsprogramms klicken und Als Administrator ausführen auswählen. Sobald Sie fertig sind, starten Sie neu. Sie können den Import auch wie oben angegeben ausführen, dies sollte jedoch nicht mit den neueren Installationsprogrammen erforderlich sein.

0
Tommy Patterson

Ich habe das genaue Problem in der Frage aufgeführt. Aber ich benutze Powershell Core. Mein Symptom war etwas anders (und sehr verwirrend)

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.

Nach ein paar days Wandern im Dunkeln fand ich dieses Problem auf Github für Powershell Core: https://github.com/PowerShell/PowerShell/issues/409 und tief darin vergraben war ein Kommentar eines anonymen Benutzers. Das heißt: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Während die Diskussion über Linux war, war die Realisierung des Glühbirnenmoments ausreichend. Es gibt neue Module für den Azure-Powershell-Kern.

Mein PS-Startprofil enthält jetzt diese Anweisung

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