Windows 10'da bir toplu iş komut dosyasıyla bir VHD bağlantısını kesmem gerekiyor. Çevrimiçi bulduğum tek çözüm Windows 7'ye yönelikti ve Diskpart'ı içeriyordu. İşi yapabilen başka yerel Windows komut satırı araçları var mı?
Windows 10'da bir toplu iş komut dosyasıyla bir VHD bağlantısını kesmem gerekiyor. Çevrimiçi bulduğum tek çözüm Windows 7'ye yönelikti ve Diskpart'ı içeriyordu. İşi yapabilen başka yerel Windows komut satırı araçları var mı?
Yanıtlar:
Yalnızca MS tarafından yüklenen komut satırı araçlarına güvenmenin bir yolunu bulamadığım için üçüncü taraf çözümlerini listeleyeceğim.
WinApiExec
WinApiExec , kullanıcının komut satırından Windows API'sını çağırmasını sağlar. 32bit yürütülebilir dosya yalnızca 3.5KB boyutundadır (x64: 5.5KB) ve bu nedenle gülünç derecede küçüktür ve mümkün olduğunca az ek yük getirmektedir.
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 ile ilgili birkaç işlevi destekler. Boyutu (x86: 432KB; x64: 2.53MB) sadece WinApi'yi çağırmak için oldukça büyük, bu yüzden senaryom için bir çözüm değil, ancak diğer insanlar için yararlı olabilir.
vmount detach \\.\PhysicalDriveX
DiskPart
Bütünlük adına DiskPart da belirtilecektir. Diskle ilgili birçok özelliği destekler, ancak komut dosyası oluşturma amaçları için aksi takdirde gerekli olan kullanıcı girişini otomatikleştirmek için oldukça yavaş bir yol vardır. Ayrıca, komut dosyasını yanlışlıkla yükseltmeden yanlışlıkla çalıştırırsanız listedeki bir döngüde sıkışacak tek araçtır.
Aşağıdaki iki satırı bir metin dosyasına kaydedin:
vdisk file="C:\Example Path\Test.vhd"
detach vdisk
Artık Dism, metin dosyasını katılımsız yanıt dosyası olarak ayrıştırabilir:
DISKPART /s C:\Path_to\Name_Of_Textfile.txt
Yerel Windows 10 Powershell kullanarak vhd / vhdx'i bağlayabilir ve bağlantısını kesebilirsiniz:
Import-module hyper-v
Dismount-VHD -Path 'c:\my.vhd'
Cmd / bat'dan:
powershell -command "Import-module hyper-v; Dismount-VHD -Path 'c:\my.vhd'"
Her iki durumda da yükseltilmiş (Yönetici olarak çalıştır) istemini kullanmanız gerekir.
Dikkat edilmesi gereken başka bir şey, önce Hyper-V özelliğini etkinleştirmeniz gerektiğidir .
Bu genişletilmiş bir cevaptır: (VHD'yi nasıl takacağınızı öğrenebilmelisiniz)
Nasıl Yapılır? VHD dosyalarını önyükleme / kapatma işlemine otomatik olarak bağlar ve bunlara bağlanır.
Windows 10'da işler biraz değişti.
İlk olarak, bir Linux Dosya Sunucusunda saklanan bir VHD'yi SMB üzerine monte ettiğimi söylemeliyim.
İkincisi, çok önemli, yeniden başlattıktan sonra diski çıkarmazsanız, yeniden takmaya çalıştığınızda "Dosya kullanımda ve erişilemiyor" diyor.
Bu yüzden hem automount'a hem de unmount'a ihtiyacımız var. Sadece başlangıç klasörüne koyamıyorum çünkü unmount biraz hile yaptı. Grup İlkesi kullanmanız gerekir. Ayrıca, bir "kapatma / başlatma" komut dosyası olarak çalıştırıldığında, erken koştu, "Logon / Logoff" da çalıştırmanız gerekir
İçinde 4 dosya var 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
Şimdi start / run yazın gpedit.msc
ve oturum açma / oturum kapatma komut dosyalarını ekleyin