在网络上查找所有版本的 SQL Server?

Jak*_*ake 7 sql-server

客户端似乎有一些 SQL Server 蔓延,我想记录所有这些。

在网络上查找所有已安装 SQL Server 版本的最佳方法是什么?

gbn*_*gbn 7

SQLPing应该完成这项工作

我在中小型网络上使用过它,它似乎找到了所有杂散的 SQL Server 安装


Tho*_*ger 7

如果要以编程方式查找此信息,可以调用SqlDataSourceEnumerator.GetDataSources 方法

# PowerShell example
[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()
Run Code Online (Sandbox Code Playgroud)

关于此调用的一些注意事项,并记录在上述参考文献中:

由于 SqlDataSourceEnumerator 用于在网络上定位数据源的机制的性质,该方法不会总是返回可用服务器的完整列表,并且每次调用时该列表可能都不相同。如果您打算使用此功能让用户从列表中选择服务器,请确保您始终还提供一个选项来键入不在列表中的名称,以防服务器枚举未返回所有可用服务器. 此外,此方法可能需要大量时间来执行,因此在性能至关重要时调用它时要小心。

您可以考虑的另一件事是访问所有服务器(同样,非常耗时)并获取名称中包含已知 SQL Server 字符串的所有服务。

Get-Service -Name "mssql*"
Run Code Online (Sandbox Code Playgroud)

如果您遍历所有服务器并获取所有以 开头的服务,"MSSQL"您将获得一个基本列表。不过,您可能必须手动过滤掉它。


Nat*_*lly 5

微软评估和规划(MAP)工具包是微软的产品,专门设计用于执行发现并帮助确定授权的服务器。

有一个不错的网络广播可用,显示一些罐头报告,看起来它们可能符合您的目的。

您的里程可能会有所不同 - 在复杂的网络上执行发现可能是一场噩梦!