web-dev-qa-db-ja.com

Import-Module Azureが失敗する

Windows 8.1でWindows Azure PowerShellモジュールを操作しようとしています。 Azureモジュールをダウンロードしてインストールしました。最初に、AzureをロードするだけのPSである「Windows Azure PowerShell」を実行して使用できます。プレーンな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ビットバージョンと関係があると思います。

誰もがこれで何か経験がありますか?

18
itaysk

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プロファイルに含めることができます

19

Azure PowerShell SDKをインストールしたばかりの場合は、最初にコンピューターを再起動します。インストール後に再起動が必要です。再起動しないと、この例外がスローされます。

7

Azure Resource Managerモードモジュール(2015/09/11)の場合、以下を使用します。

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

Windows 10では、パスが変更されました。以下の正しいバージョンを参照してください。

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

インストールしたSDKのバージョンによっては、パスに「Windows Azure」または単に「Azure」フォルダーがある場合があります。

私のセットアップでは、これを使用します:

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

AzureRM 4.2.1の場合(この回答時点)。そのモジュールパスは私の場合は異なります

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

私はx64マシン、windows 10 OSで使用していました。

powershellがモジュールをインポートする前に確認を要求するため、実行ポリシーが必要になる場合があります。ここに link を実行します。

0
Jawand Singh

また、インストーラーの実行可能ファイルを右クリックし、「管理者として実行」を選択して、インストーラーを管理者として実行してみてください。完了したら、再起動します。上記のようにインポートを実行することもできますが、新しいインストーラーで実行する必要はありません。

0
Tommy Patterson

質問にリストされている正確な問題があります。ただし、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暗闇の中をさまようのカップルの後、私はこの問題をPowershell Coreのgithubで見つけました: https://github.com/PowerShell/PowerShell/issues/409 そしてそこに深く埋められたのは、匿名ユーザーからのコメントでした。ウィットするには:@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 
}