Quản Trị Mạng - Khi cần phải xác định 1 thành phần máy ảo nào đó trong hệ thống, vì một lý do nào đó, chẳng hạn như thay đổi thiết lập có liên quan đến phần cứng, khắc phục vấn đề về phân quyền NTFS... thì chúng ta cần phải biết rõ thông số ID hoặc GUID của máy ảo đó. Trong bài viết dưới đây, chúng tôi sẽ giới thiệu với các bạn một số thao tác cơ bản để thực hiện quá trình này.
Tìm thông số Virtual Machine GUID trong file cấu hình XML:
Để làm việc này, các bạn hãy mở thư mục lưu trữ của Virtual Machine, tại đây sẽ có file *.XML với nhiều thông tin thiết lập cụ thể của máy ảo. Thông thường, phần tên khá dài với nhiều ký tự và chữ số chính là GUID của Virtual Machine:
Mặt khác, các bạn có thể sử dụng 1 đoạn mã vbscript được viết bởi Michael Michael từ Microsoft TechNet. Khi hoạt động, hệ thống sẽ hiển thị danh sách tất cả các máy ảo trong hệ thống Hyper-V cùng thông số GUID tương ứng.
Mã nguồn:
Option Explicit Dim WMIService Dim KvpComponents Dim VMList Dim VMSettingList Dim VM Dim item Dim setting Dim component 'Get instance of 'virtualization' WMI service on the local computer Set WMIService = GetObject("winmgmts:\\.\root\virtualization") 'Get all the MSVM_ComputerSystem object Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem") For Each VM In VMList if VM.Caption = "Virtual Machine" then WScript.Echo "========================================" WScript.Echo "VM Name: " & VM.ElementName WScript.Echo "VM GUID: " & VM.Name WScript.Echo "VM State: " & VM.EnabledState ' Now get the BIOS GUID for this VM Set VMSettingList = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemSettingData") For Each setting In VMSettingList Dim tempVMname tempVMName = "Microsoft:" + VM.Name if setting.InstanceID = tempVMName then WScript.Echo "VM BIOS GUID: " & setting.BIOSGUID end if Next end if Next
Và tiếp theo là thư viện quản lý PowerShell dành cho Hyper-V – dự án tổng quát rất hữu ích dành cho người sử dụng, với hơn 80 chức năng hỗ trợ chính. Sau khi tiến hành import phần thư viện quản lý này, các bạn gõ lệnh theo cú pháp dưới đây:
get-vm | ft ElementName,name
Một cách đơn giản hơn là sử dụng chức năng truy vấn thành phần repository của Windows Management Instrumentation – WMI. Để thực hiện, các bạn hãy copy đoạn mã sau và nhập vào cửa sổ PowerShell với các thông số tương ứng:
Get-WmiObject -Namespace root\virtualization -class msvm_computersystem | select elementname, operationalstatus, processid, name| ft -auto
Ví dụ như sau:
Sau khi có được những thông tin cụ thể về Process ID hoặc GUID này, chúng ta có thể thực hiện các thao tác với những Virtual Machine còn lại trong hệ thống mà không sợ ảnh hưởng hoặc nhầm lẫn. Chúc các bạn thành công!