如何使用PowerShell连接到SQL Server数据库

时间:2017-07-25 10:59:33

标签: sql-server database powershell

我目前正在开发一个PowerShell脚本,该脚本应该每天早上连接到我的公司数据库,检查SCCM中待处理的软件批准请求,并向相关人员发送电子邮件,允许他们接受或拒绝请求执行PowerShell脚本的链接。

目前我的问题是第一步,即连接数据库。

我创建了一个SQL Server帐户,使用该帐户我可以连接到服务器上的Microsoft SQL Server Management Studio,但不能连接我的脚本......

我在this website上找到了这个代码,人们显然说它正在运行,但是当我运行它时总是会出现超时错误:

Function GetPendingRequests {
param (
    [string]$SQLServer,
    [string]$SQLDBName,
    [string]$uid,
    [string]$pwd
)
$SqlQuery = "select * from [Database].[dbo].[UserApplicationRequests]"

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User Id = $uid; Password = $pwd;"

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd

$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)

$SqlConnection.Close()

return $DataSet.Tables[0] 
}

顺便说一下,[Database]包含真实的数据库名称,变量是正确的......我已经检查了以下几点:

  • 服务器接受Windows和SQL Server身份验证
  • 该帐户可以访问Microsoft SQL Server Management Studio中的数据库,并按照我想要的方式阅读数据
  • 计算机成功检索服务器IP

有没有人知道我做错了什么,以及为什么这个PowerShell功能无法连接到数据库?

1 个答案:

答案 0 :(得分:1)

运行脚本时是否出现任何错误?

您可能需要指定数据库所在的服务器(特别是如果它位于远程计算机上)

例如:

$SqlConnection.ConnectionString = "Server = localhost\MySqlServerInstance; Database = $SQLDBName; User Id = $uid; Password = $pwd;

这当然可以作为参数来完成,这只是一个例子。

有关连接字符串的更多信息,请查看https://www.connectionstrings.com/sql-server/https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

这只是一个猜测,因为我们没有关于运行脚本时实际发生的事情的大量信息(也不是你如何调用它),所以请随时回复其他详细信息我们&# 39;从那里开始!