Импортировать модуль 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.

Я подозреваю, что это как-то связано с версиями powershell или 64 \ 32-битными версиями.

У кого-нибудь есть опыт работы с этим?

itaysk
источник

Ответы:

19

Все двоичные файлы Windows Azure SDK и соответствующие командлеты 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)

И стенографическое выражение для вашего PowerShell

$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

Если вы только что установили Azure PowerShell SDK, сначала перезагрузите компьютер. После установки требуется перезагрузка, в противном случае будет выдано это исключение.

Крис Питчманн
источник
1
Это было именно так !!!
Луис Гувейя,
1

В Windows 10 путь изменился. Смотрите правильную версию ниже:

$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")
$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement"
$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";" 
Рахим
источник
1

Для модуля режима Azure Resource Manager (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
ozkary
источник
0

Для AzureRM 4.2.1 (на момент этого ответа). Его путь модуля отличается в моем случае это

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

Я использовал его на машине x64, Windows 10 OS.

вам могут понадобиться политики выполнения, поскольку powershell запрашивает подтверждение, прежде чем импортировать модули. Вот ссылка для выполнения политик выполнения.

Джаванд Сингх
источник
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/issues/4090 и глубоко скрыл в ней комментарий анонимного пользователя. А именно: @LaurentPrat how are you importing AzureRM on linux? O_O you are supposed to load azurerm.netcore. Пока речь шла о Linux, реализации момента лампочки было достаточно. Появились новые модули для ядра Azure PowerShell.

Мой профиль запуска PS теперь имеет это заявление

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
Нет возврата Нет возврата
источник