我正在尝试使用下面提到的SQL Server
脚本测试网络中远程计算机的power shell
连接。
$dbhost = 'che-wv001\'
$dbinst = 'MSSQLSERVER'
$dbport = 'MSSQLSERVER,6755'
$dbname = 'master'
$driverName = 'SQL Server'
$username = 'user'
$password = 'user'
$cs = "Driver=$driverName;Server=$dbhost$dbport;Database=$dbname;User ID=$username;" +
"Password=$password;"
echo "ConnectionStr : $cs"
$cn = New-Object -COM 'ADODB.Connection'
$cn.ConnectionString = $cs
try {
$cn.Open()
if ($cn.State -eq 1) {
'Connection Success'
$cn.Close()
} else {
'not connected'
}
} catch {
echo $_.Exception.GetType().FullName, $_.Exception.Message
#'not connected due to exception exception'
}
我使用自定义端口6755来创建SQL Server,而不是命名实例。使用che-wv001\MSSQLSERVER,6755
并提供用户凭据通过SQL Server Management Studio连接到服务器没有问题。但是由于某些原因,当我从计算机上运行时,PowerShell脚本会引发以下错误:
System.Runtime.InteropServices.COMException
[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB]找不到指定的SQL服务器。
我在这里想念什么?
答案 0 :(得分:1)
您基本上可以使用具有以下语法的连接字符串并连接到数据库。
$cnString = "Data Source=Server\instance,port;Initial Catalog=master;Trusted_Connection=true;"
$cn = new-object system.data.sqlclient.sqlconnection($cnstring)
$cnSql = New-Object Microsoft.sqlserver.management.common.serverconnection($cn)
$s = New-Object Microsoft.sqlserver.management.smo.server($cnSql)
$s | Select Name, Version