Cách ngắt kết nối VHD qua dòng lệnh trong Windows 10


9

Tôi cần ngắt kết nối VHD với tập lệnh bó trong Windows 10. Giải pháp duy nhất tôi tìm thấy trực tuyến là hướng vào Windows 7 và liên quan đến Diskpart. Có công cụ dòng lệnh Windows gốc nào khác có thể thực hiện công việc không?


trong cmd có thể là khó khăn. Tôi không biết powershell nhưng powershell làm được rất nhiều .. ví dụ: nhiều liên kết nói powershell có thể làm những gì bạn muốn virtualizationadmin.com/kbase/VirtualizationTips/ và và technet.microsoft.com/en-us/l Library / hh848562 (
barlop

@barlop Cảm ơn bạn đã bình luận của bạn và các liên kết. Lô cần có khả năng chạy trên hệ thống không cài đặt Powershell, vì vậy tôi e rằng đó không phải là một lựa chọn.
Zerobinary99

Có bất kỳ lý do cụ thể tại sao bạn không muốn sử dụng đĩapart? ví dụ: nó có thể chạy theo cách không tương tác, vì vậy bạn có thể có một tệp bó phát ra một tập lệnh đĩa thành tập tin script.txt, sau đó scriptpart / s script.txt có một ví dụ về tập lệnh đĩa ở đây Technet.microsoft .com / en-us / library / dn614984.aspx
barlop

@barlop Tôi biết về giải pháp đĩa và hiện tôi đang sử dụng nó trên một hệ thống khác. Một trong đó điều này được dự định để làm việc trên không có đĩa trên đó.
Zerobinary99

Tôi nghĩ rằng nó đã đủ khó ngay cả khi tìm một bên thứ 3 nào đó. Các lệnh gốc khá nổi tiếng, tôi chắc chắn không có bất kỳ lệnh nào thực hiện ngoài đĩa. Nó gần như là một phép lạ mà Diskpart làm được. (vì Diskpart là một chương trình "đơn giản" giống như fdisk và mọi người có xu hướng sử dụng nó mà không nhận thấy tùy chọn. Ý tưởng rằng có một lệnh gốc khác sẽ thực hiện, gần như không thể tưởng tượng được. Nếu bạn có thể đặt một tệp bó trên đó, bạn có thể không đặt một chương trình như đĩa trên đó không?
barlop

Câu trả lời:


6

Vì tôi không tìm thấy cách nào chỉ dựa vào các công cụ dòng lệnh do MS cài đặt, tôi sẽ liệt kê các giải pháp của bên thứ ba.


WinApiExec

WinApiExec cho phép người dùng gọi API Windows từ dòng lệnh. Tệp thực thi 32 bit chỉ có kích thước 3,5KB (x64: 5,5KB) và do đó nhỏ đến mức nực cười, giới thiệu càng ít chi phí càng tốt.

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 hỗ trợ khá nhiều chức năng liên quan đến VHD. Kích thước của nó (x86: 432KB; x64: 2.53MB) khá lớn khi chỉ gọi WinApi, vì vậy đây không phải là giải pháp cho kịch bản của tôi, nhưng có thể hữu ích cho người khác.

vmount detach \\.\PhysicalDriveX

Đĩa

Để hoàn thiện, DiskPart cũng sẽ được đề cập. Nó hỗ trợ rất nhiều tính năng liên quan đến đĩa, nhưng có một cách khá chậm chạp về nó để tự động hóa đầu vào người dùng cần thiết cho các mục đích kịch bản. Đây cũng là công cụ duy nhất trong danh sách sẽ bị kẹt trong một vòng lặp nếu bạn vô tình chạy tập lệnh mà không có quyền nâng cao.

Lưu hai dòng sau vào một tệp văn bản:

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

Bây giờ, Dism có thể phân tích tệp văn bản dưới dạng tệp trả lời không giám sát:

DISKPART /s C:\Path_to\Name_Of_Textfile.txt

3

Bạn có thể gắn kết và ngắt kết nối vhd / vhdx bằng Windows 10 Powershell:

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

Từ cmd / bat:

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

Trong cả hai trường hợp, bạn phải sử dụng dấu nhắc nâng cao (Chạy với tư cách quản trị viên).

Một điều cần lưu ý là trước tiên bạn cần bật tính năng Hyper-V .


Từ nhận xét của tôi cho câu hỏi của tôi: "Lô cần có khả năng chạy trên hệ thống mà Powershell chưa được cài đặt, vì vậy tôi e rằng đó không phải là một lựa chọn."
Zerobinary99

Theo như tôi biết thì Powershell là một phần không thể thiếu của Windows 10 (bạn đã hỏi về Windows 10), vì vậy bạn không thể cài đặt hoặc gỡ cài đặt nó. Tuy nhiên, việc thực thi của nó có thể bị chặn bằng nhiều cách khác nhau, như Chính sách nhóm.
Anton Krouglov

Tại sao bạn đặt câu hỏi về các điều kiện? Có một lý do cho họ. Tôi đang chạy Windows Lite mà không có Powershell và tôi không thích giữ toàn bộ nền tảng mà tôi không cần nếu có nhiều tùy chọn trọng lượng nhẹ hơn
Zerobinary99

1
Tôi có vấn đề tương tự.googling đã mang lại câu hỏi cũ của bạn. Vì vậy, câu trả lời này có thể hữu ích cho những người khác là tốt.
Anton Krouglov

Vì câu hỏi này đã hơn hai năm tuổi và tiêu đề mơ hồ về yêu cầu của bạn, câu trả lời này giúp nhiều người khác cũng như câu trả lời mở rộng của tôi. Bạn nên đọc thêm Meta trao đổi ngăn xếp để tìm hiểu thêm về cách trang web này hoạt động và các chính sách của nó. Những loại câu trả lời này rất hữu ích cho cộng đồng @ Zerobinary99
FreeSoftwareServers

1

Đây là một câu trả lời mở rộng: (Bạn sẽ có thể lượm lặt làm thế nào để vượt qua VHD)

Làm thế nào để tự động gắn kết và vượt qua các tệp VHD khi khởi động / tắt máy.

Mọi thứ dường như đã thay đổi một chút trong Windows 10.

Trước tiên, tôi nên nói rằng tôi đang gắn VHD được lưu trữ trên Máy chủ tệp Linux, cài đặt trên SMB.

Thứ hai, rất quan trọng, là nếu bạn không tháo đĩa khi khởi động lại, thì khi bạn cố gắn lại, nó sẽ báo "Tệp đang được sử dụng và không thể truy cập được" ..

Vì vậy, chúng tôi cần cả automount và unmount. Unmount đã chứng minh một chút mánh khóe, vì tôi không thể đặt nó vào thư mục khởi động. Bạn phải sử dụng Chính sách nhóm. Ngoài ra, khi chạy dưới dạng tập lệnh "shutdown / startup", nó chạy đến sớm, bạn cần chạy nó ở "Logon / Logoff"

Tôi có 4 tập tin trong C:\mount

gắn kết.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

Bây giờ trong kiểu bắt đầu / chạy gpedit.mscvà thêm các tập lệnh để đăng nhập / đăng xuất

nhập mô tả hình ảnh ở đây


Cảm ơn câu trả lời, nhưng đây không phải là một giải pháp cho vấn đề. Tôi đang tìm kiếm một giải pháp tương thích hàng loạt ngoài việc sử dụng Diskpart. Về cơ bản, bạn chỉ cần dán cùng một cú pháp đã có trong câu trả lời của tôi.
Zerobinary99

Ngoài việc sử dụng chức năng tích hợp trong windows mà không sử dụng các công cụ của bên thứ 3? Có vẻ oximoronic.
FreeSoftwareServers

Tôi đã yêu cầu các chức năng Windows gốc khác . Không có gì oxymoronic về điều đó. Dường như với tôi rằng bạn có vấn đề hiểu biết chung.
Zerobinary99
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.