无法连接到远程SQL Server实例

时间:2016-06-28 11:17:58

标签: sql-server powershell-v2.0

我正在尝试在线找到问题的解决方案,但还没有运气。因此发布问题:

我正在运行powershell脚本,该脚本将从记事本中提到的所有SQL Servers中获取备份详细信息。该脚本适用于SQL Servers2008R2。但是在连接SQL Server 2012/2014时我收到错误。该脚本在Windows Server 2008上运行,其上安装了SQL Server 2008R2。所以我会请你帮我排除故障。

输入文件:E:\ Sachin \ SQL_Servers2.txt

SERVERNAME,SERVERNAME,1433

$servers = Get-Content 'E:\Sachin\SQL_Servers2.txt'
#Create a new Excel object using COM 
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $True
$Excel = $Excel.Workbooks.Add()
$Sheet = $Excel.Worksheets.Item(1)

#Counter variable for rows
$global:intRow = 1

foreach ($sv in $servers) {
# Separate the server and instance names
$srvr = $sv.Split(",")
$server = $srvr[0]
$instance = $srvr[1]
$port = $srvr[2]

getsqlinfo $server $instance $port


function getsqlinfo {
param (
  [string]$svr,
  [string]$inst,
  [string]$port
  )


foreach ($instancename in $inst)
{

 #Create column headers
 $Sheet.Cells.Item($intRow,1) = "INSTANCE NAME:"
 $Sheet.Cells.Item($intRow,2) = $instancename
 $Sheet.Cells.Item($intRow,1).Font.Bold = $True
 $Sheet.Cells.Item($intRow,2).Font.Bold = $True

 $global:intRow++

  $Sheet.Cells.Item($intRow,1) = "DATABASE NAME"
  $Sheet.Cells.Item($intRow,2) = "LAST FULL BACKUP"
  $Sheet.Cells.Item($intRow,3) = "LAST DIFFERENTIAL BACKUP"
  $Sheet.Cells.Item($intRow,4) = "FULL BACKUP AGE(DAYS)"

 #Format the column headers
 for ($col = 1; $col -le 4; $col++)
 {
      $Sheet.Cells.Item($intRow,$col).Font.Bold = $True
      $Sheet.Cells.Item($intRow,$col).Interior.ColorIndex = 48
      $Sheet.Cells.Item($intRow,$col).Font.ColorIndex = 34
 }

 $global:intRow++
  #######################################################
 #This script gets SQL Server database information using PowerShell

 $ConnectionString = "data source = $inst,$port; initial catalog = master; trusted_connection = true;"

             [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null

 # Create an SMO connection to the instance
 $s = New-Object ('Microsoft.SqlServer.Management.Smo.Server')

 $s.ConnectionContext.ConnectionString = $ConnectionString

 $dbs = $s.Databases

 #Formatting using Excel


 ForEach ($db in $dbs) 

错误消息:

The following exception was thrown when trying to enumerate the collection: "Failed to connect to server .".
At E:\sachin\BackupDetailsVersion7.ps1:51 char:8
+ ForEach <<<<  ($db in $dbs)
+ CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : ExceptionInGetEnumerator

预先完成检查:

  1. 我能够从运行脚本的服务器远程登录目标SQL Server。
  2. 我也可以访问目标SQL Server。
  3. 用于Microsoft®SQLServer®2012SP2的Microsoft®WindowsPowerShell扩展,Microsoft®SQLServer®2012SP2共享管理对象和Microsoft®SQLServer®2012SP2的Microsoft®SystemCLR类型已安装在目标服务器上。 / LI>
  4. 目标服务器上的执行策略设置为不受限制。
  5. 我可以在本地检查时获取目标计算机上的SQL Server详细信息,但无法从其他计算机获取详细信息。

    我怀疑通过powershell(任何类型的兼容性问题)在不同的SQL Server版本之间进行连接是否存在任何限制/限制。

    任何帮助/建议都将受到高度赞赏。提前致谢。 :)

0 个答案:

没有答案