मुझे विंडोज 10 में बैच स्क्रिप्ट के साथ एक वीएचडी को अनमाउंट करने की आवश्यकता है। एकमात्र समाधान जो मैंने पाया है वह विंडोज 7 पर निर्देशित था और डिस्कपार्ट शामिल था। क्या कोई अन्य देशी विंडोज कमांड लाइन टूल उपलब्ध है जो काम कर सकता है?
मुझे विंडोज 10 में बैच स्क्रिप्ट के साथ एक वीएचडी को अनमाउंट करने की आवश्यकता है। एकमात्र समाधान जो मैंने पाया है वह विंडोज 7 पर निर्देशित था और डिस्कपार्ट शामिल था। क्या कोई अन्य देशी विंडोज कमांड लाइन टूल उपलब्ध है जो काम कर सकता है?
जवाबों:
चूंकि मुझे एमएस-स्थापित कमांड लाइन टूल पर पूरी तरह से भरोसा करने का एक तरीका नहीं मिला है, इसलिए मैं तीसरे पक्ष के समाधानों की सूची दूंगा।
WinApiExec
WinApiExec उपयोगकर्ता को कमांड लाइन से विंडोज एपीआई को कॉल करने में सक्षम बनाता है। 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
आप देशी Windows 10 Powershell का उपयोग करके vhd / vhdx को माउंट और अनमाउंट कर सकते हैं:
Import-module hyper-v
Dismount-VHD -Path 'c:\my.vhd'
Cmd / बल्ले से:
powershell -command "Import-module hyper-v; Dismount-VHD -Path 'c:\my.vhd'"
किसी भी स्थिति में आपको एलिवेटेड (एडमिन के रूप में रन) प्रॉम्प्ट का उपयोग करना होगा।
ध्यान देने वाली एक और बात यह है कि आपको पहले हाइपर- V फीचर को इनेबल करना होगा ।
यह एक विस्तारित उत्तर है: (आपको वीएचडी को umount करने में सक्षम होना चाहिए)
HowTo बूट / शटडाउन पर स्वचालित रूप से VHD फ़ाइलों को माउंट और umount करें।
लगता है कि विंडोज 10 में चीजें थोड़ी बदल गई हैं।
सबसे पहले, मुझे कहना चाहिए कि मैं एक लिनक्स फाइल सर्वर पर संग्रहीत एक वीएचडी बढ़ रहा हूं, जो एसएमबी पर बढ़ रहा है।
दूसरा, बहुत महत्वपूर्ण है, यदि आप रिबूट पर डिस्क को अलग नहीं करते हैं, तो जब आप इसे फिर से संलग्न करने का प्रयास करते हैं, तो यह कहता है "फ़ाइल उपयोग में है और इसे एक्सेस नहीं किया जा सकता है" ।।
इसलिए हमें ऑटोमाउंट और अनमाउंट दोनों की जरूरत है। अनमाउंट थोड़ा मुश्किल साबित हुआ, क्योंकि मैंने इसे स्टार्टअप फ़ोल्डर में नहीं रखा था। आपको ग्रुप पॉलिसी का उपयोग करना होगा। इसके अलावा, जब "शटडाउन / स्टार्टअप" स्क्रिप्ट के रूप में चलाया जाता है, तो यह जल्दी चला गया, आपको इसे "लॉगऑन लॉगऑफ़" पर चलाने की आवश्यकता है
मेरे पास 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
और स्क्रिप्ट को लॉगऑन / लॉगऑफ में जोड़ें