我正在尝试为一项任务编写 PowerShell SQL 查询脚本,但在此之前我正在测试以确保我的数据库连接正常工作。
我已经使用 SSMS 17 在 SQL Server 中创建了一个表,作为连接测试的一部分,我正在测试我是否可以在端口 1433 上正常连接到数据库服务器(这也在防火墙规则中打开)。
这是我用来测试与 SQL Server 的端口连接的代码片段:
$port = 1433
$tcp = New-Object Net.Sockets.TcpClient
if ([void]$tcp.Connect($dbhost, $port)) {
'connected'
} else {
'not connected'
}
$tcp.Dispose()
其中$dbhost
= myservername.domain.com
每次我运行它返回的脚本:
未连接
这是为什么?
我检查了 SSMS 中的服务器产品及其使用情况
Microsoft SQL Server Enterprise: Core-based Licensing (64-bit)
我提到这个的原因是因为一些在线解决方案提到了服务器和实例,如果我有 SQL Server Express,我必须将 Express 作为主机名或其他内容的一部分列出。但是我有企业版...所以我猜它是默认值MSSQLServer
,不必指定为 dbhostname 的一部分