Impor-Modul Azure gagal

18

Saya mencoba untuk bekerja dengan modul Windows Azure PowerShell pada Windows 8.1. Saya telah mengunduh dan menginstal modul Azure dan pada awalnya saya dapat menjalankan dan menggunakan "Windows Azure PowerShell" yang merupakan PS yang hanya memuat Azure. Ketika saya membuka hanya jendela PS biasa dan melakukan Import-Module Azure gagal dengan:

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

Saya menduga itu ada hubungannya dengan versi PowerShell atau versi 64 \ 32 bit.

Adakah yang punya pengalaman dengan ini?

itaysk
sumber

Jawaban:

19

Binari Windows Azure SDK dan cmdlet PowerShell yang terkait semuanya 32-bit, itulah sebabnya pintasan "Windows Azure Powershell" selalu meluncurkan shell 32-bit.

Anda bisa mengimpor modul Azure ke sesi PowerShell yang ada dengan merujuk jalur sistem file ke manifes modul:

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

[Perbarui] Di Azure terbaru, gunakan

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

Untuk mengakses modul dengan nama saja, Anda harus memasukkan lokasinya dalam PSModulePathvariabel lingkungan (di sini, dalam detail yang luar biasa, untuk pengembang):

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

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

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

Dan ekspresi singkat untuk kekuatanmu

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

Anda bisa memasukkan yang di atas dalam profil PowerShell Anda

Mathias R. Jessen
sumber
2
Terima kasih, itu bekerja juga untuk 64 bit PS. Apakah ada cara untuk membuat pintasan bekerja di 64 bit PS juga?
itaysk
2
Bagi saya perintah yang harus saya jalankan adalah: Import-Module "C: \ Program Files (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
Kai G
7

Jika Anda baru saja menginstal Azure PowerShell SDK, lalu nyalakan ulang komputer terlebih dahulu. Restart diperlukan setelah instalasi, jika tidak pengecualian ini akan dibuang.

Chris Pietschmann
sumber
1
Tepat seperti itu !!!
Luis Gouveia
1

Di Windows 10, jalur telah berubah. Lihat versi yang benar di bawah ini:

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

Untuk modul mode Azure Resource Manager (2015/09/11), gunakan yang berikut ini:

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

Coba juga menjalankan penginstal sebagai Administrator, dengan mengklik kanan pada penginstal yang dapat dieksekusi dan memilih Jalankan sebagai Administrator. Setelah selesai, reboot. Anda juga dapat menjalankan impor seperti yang disebutkan di atas, tetapi Anda tidak perlu melakukannya dengan installer yang lebih baru.

Tommy Patterson
sumber
0

Bergantung pada versi SDK yang telah Anda instal, Anda mungkin memiliki folder "Windows Azure" atau hanya "Azure" di jalurnya.

Untuk pengaturan saya, saya menggunakan ini:

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

Untuk AzureRM 4.2.1 (pada saat jawaban ini). Module Path-nya berbeda dalam kasus saya

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

Saya menggunakannya pada mesin x64, windows 10 OS.

Anda mungkin memerlukan kebijakan Eksekusi karena PowerShell meminta konfirmasi sebelum mengimpor modul di sini adalah tautan untuk kebijakan minyak eksekusi.

Jawand Singh
sumber
0

Saya mengalami masalah persis seperti yang tercantum dalam pertanyaan. Tapi saya menggunakan Powershell Core. Gejala saya sedikit berbeda (dan sangat membingungkan)

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.

Setelah beberapa daysberkeliaran di kegelapan saya menemukan masalah ini di github untuk Powershell Core: https://github.com/PowerShell/PowerShell/issues/4090 dan terkubur di dalamnya adalah komentar dari pengguna anonim. Untuk wit: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Sementara diskusi tentang linux, realisasi saat bola lampu sudah cukup. Ada beberapa modul baru untuk azure powershell core.

Profil PS Startup saya sekarang menampilkan pernyataan ini

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