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 บิต

ใครมีประสบการณ์เกี่ยวกับเรื่องนี้บ้าง?

คำตอบ:


19

ไบนารี Windows Azure SDK และการรับ cmdlet ของ 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 ด้วยหรือไม่
itaysk

2
สำหรับฉันคำสั่งที่ฉันต้องเรียกใช้คือ: นำเข้าโมดูล "ไฟล์ C: \ Program (x86) \ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1 SDK \ Azure \ PowerShell \ ServiceManagement \ Azure \ Azure.psd1"
ไก่ G

7

หากคุณเพิ่งติดตั้ง Azure PowerShell SDK ให้รีสตาร์ทคอมพิวเตอร์ก่อน จำเป็นต้องรีสตาร์ทหลังจากการติดตั้งมิฉะนั้นข้อผิดพลาดนี้จะถูกโยนทิ้ง


1
นั่นมันตรง !!!
Luis Gouveia

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 (ในเวลาที่คำตอบนี้) Path Module นั้นแตกต่างกันในกรณีของฉัน

$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 การตระหนักถึงช่วงเวลาของหลอดไฟก็เพียงพอแล้ว มีโมดูลใหม่สำหรับคอร์เซลล์สีฟ้า

โปรไฟล์การเริ่มต้น PS ของฉันตอนนี้มีข้อความนี้

if ($PSVersionTable.PSEdition -ieq "core") { 
    Import-Module AzureRM.Netcore 
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.