मैं PowerShell / प्रोग्रामेटिक रूप से ISO कैसे माउंट कर सकता हूं?


28

मैं विंडोज 8 में बिना 3 पार्टी प्रोग्राम के पावरशेल से आईएसओ छवियों को कैसे माउंट और डिस्क्राइब कर सकता हूं?

इस प्रश्न के मूल संशोधन ने मुझे आश्चर्यचकित कर दिया अगर विंडोज 8 में पावरशेल के माध्यम से आईएसओ माउंट करना संभव है।

जवाबों:


46

कमांड प्रॉम्प्ट से एक आईएसओ माउंट करें (विंडोज 8/2012 और केवल ऊपर)

यदि आप कमांड प्रॉम्प्ट पर बैठे हैं और आपको ISO माउंट करने की आवश्यकता है, तो निम्न कमांड चलाएं:

PowerShell Mount-DiskImage

यह एक PowerShell cmdlet आह्वान करेगा। आपके द्वारा माउंट किए जाने वाले ISO के पथ के लिए आपको संकेत दिया जाएगा। जब आप पूरा कर लें, तो अंतिम एक खाली छोड़ दें और धक्का दें Enter

माउंट-डिस्कइमेज cmdlet चल रहा है

टाडा! यह घुड़सवार है:

टाडा!  यह मुहिम शुरू की है - "रिमूवेबल स्टोरेज वाले डिवाइस"

एक आईएसओ खारिज करें

पावरशेल से आईएसओ को हटाने के लिए Dismount-DiskImageऔर प्रॉम्प्ट का पालन करें। यदि आप अपने सिर के शीर्ष पर केवल ड्राइव अक्षर जानते हैं, और छवि पथ नहीं, तो इस कमांड का उपयोग करें:

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

यह कमांड आपके द्वारा निर्दिष्ट ड्राइव को पकड़ लेगा, डिस्क इमेज को ढूंढ लेगा, और इसे डिस्क्राइब कर देगा।

आईएसओ हटाने के बाद "रिमूवेबल स्टोरेज वाले डिवाइस"

कई आईएसओ बढ़ते और ड्राइव अक्षर प्रदर्शित करते हैं

आप -PassThruकमांड को दिए गए डेटा को संग्रहीत करने के लिए ध्वज का उपयोग भी कर सकते हैं । चलो कुछ ISO माउंट करते हैं, अपने ड्राइव अक्षर प्रदर्शित करते हैं, ड्राइव में से किसी एक पर एक फ़ाइल निष्पादित करते हैं, और फिर सभी ISO को विघटित करते हैं।

ISO माउंट करें

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

एक foreachलूप का उपयोग करके घुड़सवार प्रत्येक आईएसओ के लिए वॉल्यूम जानकारी प्रदर्शित करें

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

सूची जे ड्राइव

 ls J:\

एक फ़ाइल खोलो

 start wubi.exe

फॉर्च्यूनर / गेट-वॉल्यूम और एलएस का आउटपुट

आईएसओ को समाप्त करने के लिए, निम्नलिखित कमांड का उपयोग करें:

 Dismount-DiskImage $MountedISOs.ImagePath

आईएसओ का परीक्षण

एक साधारण स्क्रिप्ट का निर्माण करने के लिए जो यह जाँचता है कि आईएसओ संलग्न है और वास्तव में एक आईएसओ (बनाम VHD) है जिसे मैं -PassThruअस्थायी रूप से ऑब्जेक्ट को स्टोर करने के लिए उपयोग करना चाहता हूं , और Get-DiskImageDiskImage ऑब्जेक्ट की स्थिति को अपडेट करने के लिए कमांड का उपयोग करता हूं। यह Attachedसंपत्ति को अपडेट करेगा । StorageTypeसंपत्ति आपको बताएगा कि फ़ाइल एक आईएसओ या VHD उसके फ़ाइल एक्सटेंशन के अनुसार है।

<code> -PassThru </ code> और <code> Get-DiskImage </ code> का उपयोग कर

StorageTypeएक VHD 2 है, जहां एक आईएसओ 1. यहाँ वापस आ जाएगी की के उत्पादन में है $UbuntuISO:
यहां <code> $ UbuntuISO </ code> का आउटपुट दिया गया है

$tempVHD माउंट करने के बाद यह आउटपुट है : ( Mount-DiskImageVHDs माउंट भी कर सकते हैं!)
VHD बढ़ते के बाद <code> $ temp </ code> का आउटपुट

ध्यान दें कि Attachedसंपत्ति से ऊपर है Falseके बावजूद, Mount-DiskImageबिना किसी बाधा के चल रहे आदेश।

ध्यान रखें कि $UbuntuISOचर अपडेट नहीं रहेगा:
<code> $ UbuntuISO </ code> चर अपडेट नहीं रहता है


तकनीक: माउंट-डिस्कइमेज

टेक्नेट: डिस्माउंट-डिस्कइमेज


6
लानत है, PowerShell विंडोज 8 में उन सभी नए cmdlets के साथ गुदगुदी शुरू होती है।
sinni800

1
हम आसानी से कमांड के माध्यम से छवि को माउंट कर सकते हैं C:\>explorer.exe imagepath, यहां हमें पीएस की आवश्यकता नहीं है, लेकिन वहां के लिए हमें पीएस की आवश्यकता है।
avirk

3
क्या सभी विंडोज 8 के अंदर है? मेरा मतलब है कि आपको अन्य प्रोग्राम स्थापित करने की आवश्यकता नहीं है ???
Searush

2
+1 बहुत अच्छा! यह था ठीक है कि मैं क्या Win8 में खोजने के लिए तो मैं अंत में मेरा उत्तर के अंत तक यह जोड़ सकते हैं उम्मीद कर रही थी यहाँ है, लेकिन तुम मुझे मुसीबत से बचा लिया। मुझे वास्तव में अपने पीएस कौशल पर बंधन शुरू करने की आवश्यकता है। :) संपादित करें: वहाँ किसी भी cmdlet सराय परीक्षण और रिपोर्ट करने के लिए कि क्या फ़ाइल एक आईएसओ या VHD है या कुछ और पूरी तरह से समर्थित नहीं है? या हो सकता है कि माउंट-डिस्कइमेज के रिटर्न मूल्य का परीक्षण करने का एक तरीका हो सकता है, इसलिए तदनुसार कोड को शाखाबद्ध किया जा सकता है?
करण

1
@ करन अंत में इस बात का अंदाजा लगाने के लिए इधर-उधर हो गया कि डी = हिम्मत की परीक्षा लेने वाला नहीं है, और मुझे लगता है कि यह ओवरकिल है। लेकिन यह हमें पता चलेगा कि क्या यह माउंट है और PowerShell त्रुटि से निपटने के बिना एक आईएसओ बनाम VHD है।
टैनर फॉल्कनर

3

आम तौर पर, यदि आप कमांड लाइन के माध्यम से ऐसा करना चाहते हैं, तो आपको एक गैर-संवादात्मक विधि की आवश्यकता है। आप ऐसा करने के लिए -ImagePathस्विच का उपयोग करना चाहेंगे ।

इस प्रकार, कमांड है:

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

याद रखें कि यदि आप पूर्ण पथ (रिक्त स्थान और अन्य विशेष वर्णों के लिए) को उद्धृत करते हैं, तो आपको उद्धरण से बचने की आवश्यकता है।

एक आईएसओ छवि को विघटित करने के लिए, इसे उद्धृत करना याद रखें:

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

ध्यान दें कि हमें पहले मामले में कमांड को उद्धृत करने की आवश्यकता नहीं थी, लेकिन हम दूसरे में करते हैं, क्योंकि |पाइप कमांड लाइन का कारण यह सोचने के लिए होगा कि यह कमांड लाइन के संदर्भ में है, इसके अलावा तर्क के लिए PowerShell(जो पावरशेल स्वचालित रूप से होता है) एक एकल आदेश में शामिल)।

इसके अलावा Dismount-DiskImageसही ढंग से वर्तनी सुनिश्चित करें ( kडिस्माउंट में नहीं )।


-Command स्विच क्या करता है, और गैर-संवादात्मक क्यों चलता है?
टान्नर फॉकनर

1
उफ़, ज़रूरत नहीं थी -कमांड, ऐसा लगता है कि स्वचालित रूप से, गैर-संवादात्मक है क्योंकि संभावना है, एक स्क्रिप्ट मानव के बजाय ऐसा कर रही है (जो सिर्फ जीयूआई का उपयोग कर सकते हैं)
ronalchn

फ़ाइल नाम के साथ सरलता को न भूलें:PowerShell Dismount-DiskImage \"C:\AbsolutePathTo\Image.iso\"
juanitogan

वर्तमान dir mounts के लिए:PowerShell Mount-DiskImage \"%CD%\Image.iso\"
juanitogan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.