我目前正在开发一个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]包含真实的数据库名称,变量是正确的......我已经检查了以下几点:
有没有人知道我做错了什么,以及为什么这个PowerShell功能无法连接到数据库?
答案 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;从那里开始!