Не вдалося імпортувати модуль Azure


18

Я намагаюся працювати з модулем Windows Azure PowerShell в Windows 8.1. Я завантажив і встановив модуль Azure, і на початку я можу запустити і використовувати "Windows Azure PowerShell", який є PS, який просто завантажує Azure. Коли я відкриваю просто звичайне вікно PS і роблю Import-Module Azure, це не вдається:

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

Я підозрюю, що це має щось спільне з версіями shellhell або 64 \ 32 бітовими версіями.

Хтось має з цим досвід?

Відповіді:


19

Бінарні файли SDK для Windows Azure і командлети PowerShell - це 32-розрядні, ось чому ярлик Windows Azure Powershell завжди запускає 32-бітну оболонку.

Ви можете імпортувати модуль Azure до існуючого сеансу PowerShell, посилаючи шлях файлової системи на маніфест модуля:

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

[Оновлення] Використовуйте в останній Azure

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

Щоб отримати доступ до модуля лише за назвою, вам потрібно буде включити його розташування в PSModulePathзмінну оточення (тут, на жаль, для розробників):

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

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

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

І короткий вираз для вашої сили

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

Ви можете включити вищезазначене у свій профіль PowerShell


2
Дякую, що працює і для 64-бітного PS. Чи є спосіб зробити так, щоб ярлик працював і в 64-бітному PS?
ітайськ

2
Для мене команда, яку мені довелося запустити: Import-Module "C: \ Program Files (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
Kai G

7

Якщо ви тільки що встановили SDK Azure PowerShell, спочатку перезавантажте комп'ютер. Після установки потрібен перезапуск, інакше цей виняток буде скинуто.


1
Це було саме це !!!
Луїс Гувейя

1

У Windows 10 шлях змінився. Дивіться правильну версію нижче:

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

1

Для модуля режиму диспетчера ресурсів Azure (2015/09/11) використовуйте наступне:

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

0

Також спробуйте запустити інсталятор як адміністратор, клацнувши правою кнопкою миші на виконуваний файл інсталятора та вибравши Запустити як адміністратор. Після завершення перезавантажте. Ви також можете запустити імпорт, як зазначено вище, але вам не потрібно робити це з новішими інсталяторами.


0

Залежно від встановленої версії SDK, у вас може бути папка "Windows Azure" або просто "Azure".

Для моєї установки я використовую це:

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

0

Для AzureRM 4.2.1 (на час цієї відповіді). Шлях його модуля в моєму випадку інший

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

Я використовував його на машині x64, Windows 10 OS.

Вам може знадобитися політики виконання , як PowerShell запитує підтвердження перед імпортом модулів тут є посиланням для виконання oilicies.


0

У мене є точна проблема, перелічена у питанні. Але я використовую Powershell Core. Мій симптом був дещо іншим (і дуже заплутаним)

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.

Після декількох daysблукань у темряві я знайшов цю проблему на github для Powershell Core: https://github.com/PowerShell/PowerShell/isissue/4090 і поховав у ній глибоко коментар анонімного користувача. А саме: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Поки дискусія йшла про Linux, реалізації моменту лампочки було достатньо. Існують нові модулі для ядра лазерної оболонки.

У моєму стартовому профілі PS тепер є ця заява

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.