gpt4 book ai didi

sql - 将 SQL Server 版本号与名称相关联

转载 作者:行者123 更新时间:2023-12-02 01:47:09 25 4
gpt4 key购买 nike

我有一个 PowerShell 脚本,其中包含服务器和工作站上的大量不同信息,以传递给高层管理人员。据我们所知,U.M.喜欢让一切变得简单明了。

我想做的是这个...我正在使用我在另一个 S.O. 上找到的以下脚本。主题完全符合我的需要。提取实例名称和 SQL Server 版本/版本信息。

$inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances

foreach ($i in $inst)
{
$p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition
$i
}

输出显示:

12.3.6024.0
Standard Edition
MSSQLSERVER

我似乎无法弄清楚,而且我整个上午都在看这里的脚本,是如何让它显示如下内容:

SQL Server 2014
Standard Edition
MSSQLSERVER

我希望它报告版本号是否为 12.x,则结果为 SQL Server 2014,如果版本号为 13.x,则结果为 SQL Server 2017,等等。

我到底怎样才能完成这件事?我正在学习 PowerShell,但是说到开关之类的,我还是有点落后。

感谢您提前提供的帮助。

最佳答案

您只需要添加一个开关(带有正则表达式查找)来处理版本和“显示”版本之间的“映射”(如您所愿):

$inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances

foreach ($i in $inst)
{
$p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
$v = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version
$e = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition

$mv = switch -Regex ($v) {
'^8' { 'SQL Server 2000'; Break}
'^9' { 'SQL Server 2005'; Break }
'^10.0' { 'SQL Server 2008'; Break }
'^10.5' { 'SQL Server 2008 R2'; Break }
'^11' { 'SQL Server 2012'; Break }
'^12' { 'SQL Server 2014'; Break }
'^13' { 'SQL Server 2016'; Break }
'^14' { 'SQL Server 2017'; Break }
'^15' { 'SQL Server 2019'; Break }
default { "Unknown SQL Server Version" }
}

Write-Host $mv
write-Host $e
write-Host $p
}

关于sql - 将 SQL Server 版本号与名称相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70777662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com