Import-Module Azureが失敗する


18

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ビットバージョンと何か関係があるのではないかと思います。

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

回答:


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)

そして、あなたのパワーシェルの省略表現

$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でもショートカットを機能させる方法はありますか?
イタイスク14年

2
私は実行する必要がありましたコマンドのだった:インポートモジュール「C:\プログラムファイル(x86の)\マイクロソフトのSDK \アズール\ PowerShellの\た。servicemanagement \アズール\ Azure.psd1」
甲斐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

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暗闇の中で数回さまよった後、Powershell Coreのgithubでこの問題を見つけました: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 
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.