วิธีถอนการติดตั้ง VHD ผ่านบรรทัดรับคำสั่งใน Windows 10


9

ฉันต้องการเลิกเมานต์ VHD ด้วยสคริปต์แบทช์ใน Windows 10 ทางออกเดียวที่ฉันพบออนไลน์ถูกนำไปที่ Windows 7 และเกี่ยวข้องกับ Diskpart มีเครื่องมือบรรทัดคำสั่งพื้นฐานอื่น ๆ ของ Windows ที่สามารถทำงานได้หรือไม่?


ใน cmd อาจเป็นเรื่องยุ่งยาก ผมไม่ทราบ แต่ PowerShell PowerShell ไม่มาก .. เช่นเชื่อมโยงหลายคนบอกว่า PowerShell สามารถทำสิ่งที่คุณต้องการvirtualizationadmin.com/kbase/VirtualizationTips/... และtechnet.microsoft.com/en-us/library/hh848562(v=wps .630) .aspx
barlop

@barlop ขอบคุณสำหรับความคิดเห็นและลิงค์ ชุดต้องสามารถทำงานบนระบบที่ไม่ได้ติดตั้ง Powershell ดังนั้นฉันจึงกลัวว่านั่นไม่ใช่ตัวเลือก
Zerobinary99

มีเหตุผลใดที่ทำให้คุณไม่ต้องการใช้ diskpart หรือไม่? เช่นมันสามารถทำงานในลักษณะที่ไม่โต้ตอบดังนั้นคุณสามารถมีไฟล์ชุดที่สะท้อนออก diskpart script เป็นไฟล์ script.txt แล้ว diskpart / s script.txt มีตัวอย่างของสคริปต์ diskpart ที่นี่technet.microsoft .com / en-us / library / dn614984.aspx
barlop

@barlop ฉันทราบถึง diskpart-solution และฉันใช้มันในระบบอื่น ที่นี่มีวัตถุประสงค์เพื่อทำงานบนไม่มี diskpart ในนั้น
Zerobinary99

ฉันคิดว่ามันคงยากพอที่จะหาคนที่ 3 ที่เป็นเช่นนั้น คำสั่งพื้นฐานนั้นเป็นที่รู้จักกันดีทีเดียวฉันแน่ใจว่าไม่มีคำสั่งอื่นใดนอกจาก diskpart มันเกือบจะเป็นปาฏิหาริย์ที่ diskpart ทำ (เนื่องจาก diskpart เป็นโปรแกรม "แบบง่าย" แทนที่จะเป็น fdisk และผู้คนมักจะใช้มันโดยไม่สังเกตเห็นตัวเลือกความคิดที่ว่ามีคำสั่งเนทีฟอื่นที่จะทำมันแทบจะคิดไม่ถึงถ้าคุณสามารถวางไฟล์แบตช์ ที่นั่นคุณไม่สามารถวางโปรแกรมเช่น diskpart ไว้ที่นั่นได้ไหม
barlop

คำตอบ:


6

เนื่องจากฉันไม่พบวิธีที่จะใช้เครื่องมือบรรทัดคำสั่งที่ติดตั้งโดย MS เพียงอย่างเดียวฉันจะแสดงรายการโซลูชันของบุคคลที่สาม


WinApiExec

WinApiExecช่วยให้ผู้ใช้สามารถเรียก Windows API จากบรรทัดคำสั่ง 32 บิตที่ปฏิบัติการได้นั้นมีขนาดเพียง 3.5KB (x64: 5.5KB) ดังนั้นจึงมีขนาดเล็กอย่างน่าขัน

winapiexec.exe virtdisk.dll@OpenVirtualDisk $a:2,0 "C:\Example Path\Test.vhd" 262144 0 0 $b:4 , virtdisk.dll@DetachVirtualDisk $$:7@0 0 0

vMount

vMountรองรับฟังก์ชั่นที่เกี่ยวข้องกับ VHD ค่อนข้างน้อย ขนาดของมัน (x86: 432KB; x64: 2.53MB) นั้นค่อนข้างใหญ่สำหรับเพียงเรียก WinApi ดังนั้นจึงไม่ใช่วิธีแก้ปัญหาสำหรับสถานการณ์ของฉัน แต่อาจเป็นประโยชน์กับคนอื่น

vmount detach \\.\PhysicalDriveX

DiskPart

เพื่อความสมบูรณ์ DiskPart จะถูกกล่าวถึงเช่นกัน สนับสนุนคุณสมบัติที่เกี่ยวข้องกับดิสก์จำนวนมาก แต่มีวิธีการที่ค่อนข้างเฉื่อยในการดำเนินการป้อนข้อมูลผู้ใช้ที่จำเป็นอย่างอื่นโดยอัตโนมัติเพื่อวัตถุประสงค์ในการเขียนสคริปต์ นอกจากนี้ยังเป็นเครื่องมือเดียวในรายการที่จะติดกับลูปถ้าคุณรันสคริปต์โดยไม่ได้รับอนุญาต

บันทึกสองบรรทัดต่อไปนี้ลงในไฟล์ข้อความ:

vdisk file="C:\Example Path\Test.vhd"
detach vdisk

ตอนนี้ Dism สามารถแยกวิเคราะห์ไฟล์ข้อความเป็นรูปแบบของไฟล์คำตอบแบบอัตโนมัติ:

DISKPART /s C:\Path_to\Name_Of_Textfile.txt

3

คุณสามารถเมานต์และถอนติดตั้ง vhd / vhdx โดยใช้ Windows 10 Powershell ดั้งเดิม:

Import-module hyper-v
Dismount-VHD -Path 'c:\my.vhd'

จาก cmd / bat:

powershell -command "Import-module hyper-v; Dismount-VHD -Path 'c:\my.vhd'"

ไม่ว่าในกรณีใดคุณจะต้องใช้พรอมต์ยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ)

สิ่งที่ควรทราบก็คือว่าคุณต้องเปิดใช้งานคุณลักษณะ Hyper-V แรก


จากความคิดเห็นของฉันไปที่คำถามของฉัน: "ชุดต้องสามารถทำงานบนระบบที่ไม่ได้ติดตั้ง Powershell ดังนั้นฉันจึงกลัวว่าไม่ใช่ตัวเลือก"
Zerobinary99

เท่าที่ฉันทราบ Powershell เป็นส่วนหนึ่งของ Windows 10 (คุณได้ถามเกี่ยวกับ Windows 10) ดังนั้นคุณจึงไม่สามารถติดตั้งหรือถอนการติดตั้ง อย่างไรก็ตามการดำเนินการอาจถูกบล็อกด้วยวิธีการต่าง ๆ เช่นนโยบายกลุ่ม
Anton Krouglov

ทำไมคุณถึงตั้งคำถามกับเงื่อนไข? มีเหตุผลสำหรับพวกเขา ฉันใช้ Windows Lite โดยไม่ใช้ Powershell และฉันเกลียดการรักษาแพลตฟอร์มทั้งหมดที่ฉันไม่ต้องการหากมีตัวเลือกที่มีน้ำหนักเบากว่านี้ให้เลือก
Zerobinary99

1
ฉันมีปัญหาที่คล้ายกัน googling มีคำถามเก่าของคุณ ดังนั้นคำตอบนี้อาจเป็นประโยชน์กับคนอื่นเช่นกัน
Anton Krouglov

เนื่องจากคำถามนี้มีอายุเกินกว่าสองปีและชื่อนั้นคลุมเครือเกี่ยวกับความต้องการของคุณคำตอบนี้จะช่วยให้คนอื่น ๆ มากมายเช่นเดียวกับคำตอบเพิ่มเติมของฉัน คุณควรอ่าน Meta exchange stack เพิ่มเติมเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของเว็บไซต์และนโยบาย คำตอบประเภทนี้มีประโยชน์มากสำหรับชุมชน @ Zerobinary99
FreeSoftwareServers

1

นี่เป็นคำตอบเพิ่มเติม: (คุณควรจะรวบรวมวิธีการติดตั้ง VHD)

HowTo เมานต์และต่อเชื่อมไฟล์ VHD โดยอัตโนมัติเมื่อบูต / ปิดเครื่อง

สิ่งต่าง ๆ มีการเปลี่ยนแปลงเล็กน้อยใน Windows 10

อันดับแรกฉันควรพูดว่าฉันกำลังติดตั้ง VHD ที่จัดเก็บไว้ใน Linux File Server ซึ่งติดตั้งใน SMB

ข้อที่สองสำคัญมากคือถ้าคุณไม่ถอดดิสก์เมื่อรีบูทจากนั้นเมื่อคุณพยายามแนบไฟล์อีกครั้งจะมีข้อความระบุว่า "ไฟล์ดังกล่าวถูกใช้งานอยู่และไม่สามารถเข้าถึงได้"

ดังนั้นเราจึงต้องการทั้ง automount และ unmount unmount พิสูจน์แล้วว่าเป็นกลอุบายเล็ก ๆ น้อย ๆ เนื่องจากฉันไม่สามารถวางไว้ในโฟลเดอร์เริ่มต้นได้ คุณต้องใช้นโยบายกลุ่ม นอกจากนี้เมื่อเรียกใช้เป็นสคริปต์ "ปิด / เริ่มต้น" มันวิ่งไปก่อนคุณต้องเรียกใช้งานที่ "Logon / Logoff"

ฉันมี 4 ไฟล์ค่ะ C:\mount

mount.cmd

@ECHO OFF

DISKPART /s C:\mount\mount.txt

umount.cmd

@ECHO OFF

DISKPART /s C:\mount\umount.txt

umount.txt

select vdisk file="\\192.168.1.255\Blizzard.vhdx"
detach vdisk

mount.txt

select vdisk file="\\192.168.1.255\Blizzard.vhdx"
attach vdisk

ขณะนี้อยู่ในประเภทเริ่ม / เรียกใช้gpedit.mscและเพิ่มสคริปต์เพื่อเข้าสู่ระบบ / ออกจากระบบ

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณสำหรับคำตอบ แต่นี่ไม่ใช่วิธีแก้ปัญหา ฉันกำลังมองหาโซลูชันที่ใช้งานร่วมกันได้นอกเหนือจากการใช้ Diskpart คุณเพียงแค่วางไวยากรณ์เดียวกับที่มีอยู่ในคำตอบของฉัน
Zerobinary99

นอกเหนือจากการใช้ฟังก์ชั่น windows ในตัวโดยไม่ต้องใช้เครื่องมือบุคคลที่สาม ดูเหมือนว่า oximoronic
FreeSoftwareServers

ฉันขอฟังก์ชั่น Windows พื้นเมืองอื่น ๆ ไม่มีอะไรเกี่ยวกับเพลงที่เกี่ยวกับเรื่องนั้น ดูเหมือนว่าคุณมีปัญหาความเข้าใจทั่วไป
Zerobinary99
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.