《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.2 列出SQL Server实例

简介:

本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.2节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 列出SQL Server实例

在这个方案中,我们将会列出本地网络中的所有SQL Server实例。

2.2.1 准备

以管理员帐号登录有SQL Server开发实例的服务器。

2.2.2 如何做…

1.通过“Start | Accessories | Windows PowerShell | Windows PowerShell ISE”打开PowerShell控制台。

2.让我们使用Start-Service cmdlet来启动SQLBrowser服务。

Import-Module SQLPS -DisableNameChecking
#sql browser must be installed and running
Start-Service "SQLBrowser"

(译者注:若SQLBrower的Start Mode为Disabled,则会失败)

3.接下来,你需要创建ManagedComputer对象来访问实例。输入如下脚本并运行。

$instanceName = "KERRIGAN" 
$managedComputer = New-Object 
'Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer' $instanceName
#list server instances    
$managedComputer.ServerInstances

你的结果类似于下面的截屏。

image

注意,$managedComputer.ServerInstances不仅提供了实例名,而且包含额外的属性,例如ServerProtocols、Urn、State等。

4.确保在SSMS中有相同的实例。打开SSMS。

5.打开“Connect | Database Engine”。

6.在“Server Name”下拉列表,单击“Browse for More”。

7.选择“Network Servers”窗口,查看列出的实例。你的屏幕可能看起来类似于。

image

2.2.3 如何实现…

Windows操作系统中的所有服务都可以通过Windows管理规范(Windows Management Instrumentation,WMI)来访问。WMI是微软的框架,用于列出、设置和配置微软相关的资源。这个框架遵循基于Web的企业管理(Web-based Enterprise Management,WBEM)。分布式管理任务组定义WBEM为(http://www.dmtf.org/standards/wbem):

一个管理和网络标准计数集合开发用于同一分布式计算环境的管理。WBEM为行业提供了标准管理工具的很好集成的集合,促进了完全不同的技术和平台的数据交换。

为了访问SQL Server WMI相关的对象,你可以创建一个WMI ManagedComputer实例。

$managedComputer = New-Object 'Microsoft.SqlServer.Management.Smo.Wmi.
ManagedComputer' $instanceName

ManagedComputer对象访问ServerInstance属性,循环列出本地网络中所有可用的实例。只有在SQL Server Browser服务运行的情况下才能识别这些实例。

SQL Server Browser是一个Windows服务,提供了关于已安装的实例的信息。如果你想列出SQL Server相关的服务,需要启动该服务。

2.2.4 更多…

另一个使用ManagedComputer的备选方案是使用System.Data.Sql.SqlDataSource Enumerator类列出本地网络中的所有SQL Server实例。

[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources() | 
Select ServerName, InstanceName, Version | 
Format-Table –AutoSize

执行后,你的结果类似于下面的截屏。

image

另一个得到SQL Server WMI对象的句柄的方法是使用Get-WmiObject cmdlet。然后,这将不会通过Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer对象展示相同的属性。

为了做到这点,你需要首先发现在你的环境中哪些命名空间是可用的。

$hostname = "KERRIGAN" 
$namespace = Get-WMIObject -ComputerName $hostName -NameSpace root\
Microsoft\SQLServer -Class "__NAMESPACE" | 
         Where Name -Like "ComputerManagement*"

对于SQL Server 2012,值为:

ROOT\Microsoft\SQLServer\ComputerManagement11

一旦你有这个命名空间,你可以通过Get-WmiObject使用这个值去获取实例。可以用于过滤的属性为SqlServiceType。

根据MSDN(http://msdn.microsoft.com/en-us/library/ms179591.aspx),下面是SqlServiceType的值。
image

因此,为了获得SQL Server实例,你需要过滤SQL Server服务,或者SQLServiceType=1。

Get-WmiObject -ComputerName $hostname `
-Namespace "$($namespace.__NAMESPACE)\$($namespace.Name)" `
-Class SqlService |
Where SQLServiceType -eq 1 |
Select ServiceName, DisplayName, SQLServiceType |
Format-Table –AutoSize

你的结果可能类似于如下截屏。
image

相关文章
|
9月前
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1423 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1031 156
|
8月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
709 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
7月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
398 6
|
8月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
9月前
|
SQL Web App开发 安全
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
743 2
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
|
9月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1233 8
|
8月前
|
SQL Web App开发 安全
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
526 0
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
415 5