我不确定是否有任何事件驱动来跟踪这一点。过去,我使用 SQL Server 查询 VM 的注册表以获取它的当前主机,然后将其存储在本地日志表中。然后安排它建立一个历史记录并随着时间的推移跟踪 VM 的移动。
如果 VM 正在运行 SQL Server,请执行以下操作:
DECLARE @PhysicalHostName VARCHAR(20)
EXEC master..xp_regread
@rootKey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters',
@value_name = 'PhysicalHostName',
@value = @PhysicalHostName OUTPUT
SELECT
@PhysicalHostName
如果不能使用 SQL Server,则可以使用 PowerShell 使用 Get-ItemProperty cmdlet 来访问注册表。
像这样:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" -Name PhysicalHostName
如果你走上了 PowerShell 路线,这值得一读:https ://msdn.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-entries
希望这可以帮助。