获取网络中远程计算机中 SQL 服务器的数据库名称

Get Database names of SQL Server in remote machine with in network

我正在使用 inno 安装程序分别在网络中的两台不同机器(机器 A 和机器 B)中安装 SQL Server with DatabaseWildfly

  1. 作为第一步,我在机器 A 中安装任何一个 SQL Server (2012, 2014 or 2016 versions)

  2. 第二步,我在机器 B 中安装 Wildfly 10,在安装过程中,我有一个页面,用户可以在其中输入数据库服务器名称、数据库名称和实例名称。

为了验证上述条目,我必须验证数据库名称和实例名称在数据库服务器中是否可用。

我能够从机器 A 连接到远程机器 B 的注册表,以使用带有以下查询的 Power shell 命令获取安装的实例名称

Invoke-Command -ComputerName MachineB -Command {Get-ItemProperty 'HKLM:\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL'}

但是,我无法在注册表中找到安装的数据库列表。 有什么方法可以获取机器中可用的数据库列表,以便我可以对其进行验证?

Sql 服务器不在注册表中存储数据库名称。查询 sys.databases 数据库名称。像这样,

Invoke-Sqlcmd -ServerInstance myServer\myInstance -Query "select name from sys.databases"

为了在没有安装 Sql 服务器的系统上使用 Invoke-SqlCmd,请将 Sql 服务器 Powershell module 安装到本地系统。