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ビットバージョンと関係があると思います。
誰もがこれで何か経験がありますか?
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プロファイルに含めることができます
Azure PowerShell SDKをインストールしたばかりの場合は、最初にコンピューターを再起動します。インストール後に再起動が必要です。再起動しないと、この例外がスローされます。
Azure Resource Managerモードモジュール(2015/09/11)の場合、以下を使用します。
import-module "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager\AzureResourceManager.psd1"
Windows 10では、パスが変更されました。以下の正しいバージョンを参照してください。
$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")
$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement"
$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";"
インストールしたSDKのバージョンによっては、パスに「Windows Azure」または単に「Azure」フォルダーがある場合があります。
私のセットアップでは、これを使用します:
C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure
AzureRM 4.2.1の場合(この回答時点)。そのモジュールパスは私の場合は異なります
$env:PSModulePath += ";C:\Program Files\WindowsPowerShell\Modules\"
Import-module AzureRM
私はx64マシン、windows 10 OSで使用していました。
powershellがモジュールをインポートする前に確認を要求するため、実行ポリシーが必要になる場合があります。ここに link を実行します。
また、インストーラーの実行可能ファイルを右クリックし、「管理者として実行」を選択して、インストーラーを管理者として実行してみてください。完了したら、再起動します。上記のようにインポートを実行することもできますが、新しいインストーラーで実行する必要はありません。
質問にリストされている正確な問題があります。ただし、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
}