ฉันจะเมานท์ ISO ผ่าน PowerShell / โดยทางโปรแกรมได้อย่างไร


28

ฉันจะเมานต์และแยกรูปอิมเมจ ISO จาก PowerShell ใน Windows 8 โดยไม่ใช้โปรแกรมของ บริษัท อื่นได้อย่างไร

การแก้ไขดั้งเดิมของคำถามนี้ทำให้ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเมานต์ ISO ผ่าน PowerShell ใน Windows 8

คำตอบ:


46

เมานต์ ISO จากพรอมต์คำสั่ง (Windows 8/2012 ขึ้นไปเท่านั้น)

หากคุณกำลังนั่งที่พรอมต์คำสั่งและต้องการเมานต์ ISO ให้รันคำสั่งต่อไปนี้:

PowerShell Mount-DiskImage

สิ่งนี้จะเรียกใช้ PowerShell cmdlet คุณจะได้รับแจ้งเส้นทางของ ISO ที่คุณต้องการเมานต์ Enterเมื่อคุณทำออกคนสุดท้ายที่ว่างเปล่าและผลักดัน

เรียกใช้ Mount-DiskImage cmdlet

Tada! มันติดตั้ง:

Tada!  ติดตั้งแล้ว -“ อุปกรณ์พร้อมที่เก็บข้อมูลแบบถอดได้”

dismount ISO

หากต้องการยกเลิกการติดตั้ง ISO จาก PowerShell ให้เรียกใช้Dismount-DiskImageแล้วทำตามพรอมต์ หากคุณรู้เพียงอักษรระบุไดรฟ์ที่อยู่ด้านบนของหัวไม่ใช่เส้นทางภาพให้ใช้คำสั่งนี้:

Get-Volume [Drive Letter] | Get-DiskImage | Dismount-DiskImage

คำสั่งนี้จะจับไดรฟ์ที่คุณระบุค้นหาอิมเมจของดิสก์และยกเลิกการติดตั้ง

“ อุปกรณ์ที่มีที่เก็บแบบถอดได้” หลังจากแยก ISO

ติดตั้ง ISO หลายอันและแสดงตัวอักษรไดรฟ์

คุณยังสามารถใช้การ-PassThruตั้งค่าสถานะเพื่อเก็บข้อมูลที่ส่งผ่านไปยังคำสั่ง ลองเมานต์ ISO สักสองสามตัวแสดงอักษรระบุไดรฟ์เรียกใช้ไฟล์บนไดรฟ์ตัวใดตัวหนึ่งจากนั้นยกเลิกการเมานต์ ISO ทั้งหมด

เมานต์ ISO

 $MountedISOs=Mount-DiskImage -PassThru D:\Downloads\Ubuntu.iso,D:\Downloads\Windows8.iso,D:\Downloads\Server2012.iso

แสดงข้อมูลปริมาณสำหรับแต่ละ ISO ที่เมาท์โดยใช้การforeachวนซ้ำ

 foreach($iso in $MountedISOs){Get-Volume -DiskImage $iso}     

รายการไดรฟ์ J

 ls J:\

เปิดไฟล์

 start wubi.exe

ผลลัพธ์ของ foreach / Get-Volume และ ls

หากต้องการ dismount ISOs ให้ใช้คำสั่งต่อไปนี้:

 Dismount-DiskImage $MountedISOs.ImagePath

ทดสอบ ISO

ในการสร้างสคริปต์ง่าย ๆ ที่ตรวจสอบว่า ISO นั้นเชื่อมต่อหรือไม่และในความเป็นจริงแล้วเป็น ISO (เทียบกับ VHD) ฉันต้องการใช้-PassThruเพื่อจัดเก็บวัตถุชั่วคราวและใช้Get-DiskImageคำสั่งเพื่ออัปเดตสถานะของวัตถุ DiskImage สิ่งนี้จะอัพเดทAttachedคุณสมบัติ StorageTypeทรัพย์สินจะบอกคุณว่าไฟล์เป็น ISO หรือ VHD ตามนามสกุลไฟล์

ใช้ <code> -PassThru </code> และ <code> Get-DiskImage </code>

StorageTypeของ VHD เป็นที่ 2 ซึ่งเป็น ISO จะกลับมาที่นี่ 1. การส่งออกของ$UbuntuISO:
นี่คือผลลัพธ์ของ <code> $ UbuntuISO </code>

นี่คือผลลัพธ์ของ$tempหลังจากติดตั้ง VHD: ( Mount-DiskImageยังสามารถเมานต์ VHDs!)
ผลลัพธ์ของ <code> $ temp </code> หลังจากติดตั้ง VHD

โปรดทราบว่าAttachedคุณสมบัติข้างต้นคือFalseแม้จะมีMount-DiskImageคำสั่งที่ทำงานโดยไม่ต้องผูกปม

โปรดทราบว่า$UbuntuISOตัวแปรจะไม่อัปเดตอยู่เสมอ:
ตัวแปร <code> $ UbuntuISO </code> ไม่ได้รับการปรับปรุง


Technet: Mount-DiskImage

Technet: Dismount-DiskImage


6
ประณาม cmdlet ใหม่ทั้งหมดใน PowerShell Windows 8 เริ่มจั๊กจี้
sinni800

1
เราสามารถเมานท์รูปภาพได้อย่างง่ายดายผ่านคำสั่งC:\>explorer.exe imagepathที่นี่เราไม่ต้องการ PS แต่สำหรับ unmount ที่นั่นเราต้องการ PS
avirk

3
อยู่ใน Windows 8 หรือไม่ ฉันหมายถึงคุณไม่จำเป็นต้องติดตั้งโปรแกรมอื่น ๆ ???
Searush

2
+1 ดีมากจริงๆ! นี้เป็นอย่างแม่นยำสิ่งที่ผมหวังที่จะหาใน Win8 ดังนั้นฉันในที่สุดก็สามารถเพิ่มไปยังจุดสิ้นสุดของคำตอบของฉันที่นี่แต่คุณบันทึกฉันปัญหา ฉันต้องเริ่มต้นพัฒนาทักษะการปล. ของฉันให้ดีขึ้น :) แก้ไข: มี cmdlet ใด ๆ เพื่อทดสอบเครื่องในและรายงานว่าไฟล์นั้นเป็น ISO หรือ VHD หรืออย่างอื่นที่ไม่รองรับทั้งหมด? หรืออาจเป็นวิธีการทดสอบค่าส่งคืนของMount-DiskImageบางทีรหัสสามารถแยกสาขาได้หรือไม่
Karan

1
@ Karan ในที่สุดก็มีการหา out = D มันจะไม่ทดสอบความกล้าและตรงไปตรงมาฉันคิดว่า overkill แต่จะแจ้งให้เราทราบหากติดตั้งอยู่และ ISO VS VHD โดยไม่ต้องดำน้ำในการจัดการข้อผิดพลาด PowerShell
แทนเนอร์ฟอล์กเนอร์

3

โดยปกติหากคุณต้องการทำสิ่งนี้ผ่านบรรทัดคำสั่งคุณต้องมีวิธีการที่ไม่ต้องมีการโต้ตอบ คุณจะต้องใช้-ImagePathสวิตช์ในการทำเช่นนี้

ดังนั้นคำสั่งคือ:

PowerShell Mount-DiskImage -ImagePath \"C:\AbsolutePathTo\Image.iso\"

โปรดจำไว้ว่าหากคุณพูดถึงเส้นทางที่แน่นอน (สำหรับการเว้นวรรคและอักขระพิเศษอื่น ๆ ) คุณจะต้องหลีกเลี่ยงคำพูด

หากต้องการลงภาพ iso อย่าลืมอ้างอิง:

PowerShell "Get-Volume G | Get-DiskImage | Dismount-DiskImage"

โปรดทราบว่าเราไม่จำเป็นต้องอ้างอิงคำสั่งในกรณีแรก แต่เราจะทำในวินาทีเพราะ|ไพพ์จะทำให้บรรทัดคำสั่งคิดว่ามันอยู่ในบริบทของบรรทัดคำสั่งแทนที่จะเพิ่มอาร์กิวเมนต์เข้าด้วยกันPowerShell(ซึ่ง PowerShell โดยอัตโนมัติ ต่อกันเป็นคำสั่งเดียว)

ตรวจสอบให้แน่ใจว่าสะกดDismount-DiskImageอย่างถูกต้อง (ไม่มีkใน Dismount)


สวิตช์ -Command ทำหน้าที่อะไรและเหตุใดจึงไม่ทำงานแบบไม่มีการโต้ตอบ
แทนเนอร์ฟอล์กเนอร์

1
โอ๊ะไม่จำเป็นต้องมีคำสั่งก็จะปรากฏขึ้นที่จะทำโดยอัตโนมัติไม่โต้ตอบเพราะโอกาสที่สคริปต์จะทำมันมากกว่ามนุษย์ (ซึ่งก็สามารถใช้งาน GUI)
ronalchn

อย่าลืมลงจากหลังม้าที่ง่ายขึ้นโดยใช้ชื่อไฟล์ด้วย:PowerShell Dismount-DiskImage \"C:\AbsolutePathTo\Image.iso\"
juanitogan

สำหรับเมานต์ dir ปัจจุบัน:PowerShell Mount-DiskImage \"%CD%\Image.iso\"
juanitogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.