使用Powershell脚本查找SQL Server实例的想法

时间:2018-06-25 17:12:04

标签: sql-server powershell amazon-ec2

说明:我有一台运行不同版本的MS SQL服务器的窗口服务器,当我在Power Shell脚本下运行时,它显示在下面的结果中,但是我需要添加名称为SQL Server 2014,SQL Server的SQL Server版本2008年...

我正在PowerShell脚本下运行以获取详细信息

[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()

PowerShell脚本输出:

ServerName          InstanceName         IsClustered       Version
----------          ------------         -----------       -------------
hostname1                                   No             11.0.3000.0
hostname2           RAMTEST                 No             11.0.3000.0

我需要再添加一列基于版本的SQL Server名称。请建议

1 个答案:

答案 0 :(得分:0)

请参见下文。您可以根据需要添加其他两列。由于空值,我删除了它们。但是请随时检查NULL,并替换为您认为合适的任何值。我已经对其进行了测试,并且可以正常工作。

$ServerList  = [System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources() | Select ServerName, IsClustered, Version, InstanceName

$ServerList | foreach { 
$i = $i - 1
    if ($_.Version -like "14.0.*" )         { $Versionresult ="SQL Server 2017"   }  
elseif ($_.Version -like "13.0.*" )         { $Versionresult ="SQL Server 2016"   } 
elseif ($_.Version -like "12.0.*" )         { $Versionresult ="SQL Server 2014"   }
elseif ($_.Version -like "11.0.*" )         { $Versionresult ="SQL Server 2012"   }  
elseif ($_.Version -like "10.50.*")         { $Versionresult ="SQL Server 2008 R2"}  
elseif ($_.Version -like "10.00.*")         { $Versionresult ="SQL Server 2008"   }
elseif ($_.Version -like "9.00.*" )         { $Versionresult ="SQL Server 2005"   } 
elseif ($_.Version -like "8.00.*" )         { $Versionresult ="SQL Server 2000"   } 

$table = [PSCustomObject] @{"ServerName" = $_.ServerName ; "IsClustured" = $_.IsClustered ;"Version" = $Versionresult ;"InstanceName" = $_.InstanceName}
$table

}
  

Blockquote