SELECT SERVERPROPERTY('computernamephysicalnetbios') AS ServerName
,dosi.virtual_machine_type_desc
,Server_type = CASE
WHEN dosi.virtual_machine_type = 1
THEN 'Virtual'
ELSE 'Physical'
END
FROM sys.dm_os_sys_info dosi
如果您配置了 CMS,请从您的 CMS 对多个服务器运行以下脚本:
SELECT dosi.virtual_machine_type_desc
,Server_type = CASE
WHEN dosi.virtual_machine_type = 1
THEN 'Virtual'
ELSE 'Physical'
END
FROM sys.dm_os_sys_info dosi
$Virtual = Get-wmiobject win32_computersystem | Where-Object model -EQ 'Virtual Machine'
if ($Virtual)
{
Write-Host "SQL Server Running on Virtual Server" -ForegroundColor Green
}
else
{
Write-Host "SQL Server Running on Physical Server" -ForegroundColor Yellow
}
如果您使用的是 SQL Server 2008 R2 RTM 或更早版本,则有一个 CMD 命令“ SYSTEMINFO ”,其中包含有关系统模型的信息。
或者
如果在实例上启用了 cmdshell,那么您可以从 SQL Server Management Studio 执行它。
SQL Server 2008 R2 Service Pack 1 中引入了
virtual_machine_type, virtual_machine_type_desc
DMV中的新列 ( )sys.dm_os_sys_info
http://blogs.msdn.com/b/sqlosteam/archive/2011/05/11/more-on-dmv-changes-in-sql-2008-r2-sp1.aspx
我找到了一个脚本:
如果您配置了 CMS,请从您的 CMS 对多个服务器运行以下脚本:
使用下面的 Powershell 使用..
阅读更多https://mkelsawy.blogspot.com/2019/09/DetermineHostedSQLServerUsingPowershell.html