簡體   English   中英

如何使用PowerShell連接到SQL Server數據庫

[英]How to connect to a SQL Server database using PowerShell

我目前正在研究一個PowerShell腳本,該腳本應該每天早上連接到我的公司數據庫,檢查SCCM中是否有待處理的軟件批准請求,並向相關人員發送電子郵件,使他們可以接受或拒絕該請求並執行鏈接PowerShell腳本。

我的問題當前與第一步有關,即連接到數據庫。

我創建了一個SQL Server帳戶,通過該帳戶我可以連接到服務器上的Microsoft SQL Server Management Studio,但是無法與我的腳本連接...

我在此網站上找到了此代碼,人們顯然在說它正在運行,但是運行它時總是會出現超時錯誤:

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] 
}

順便說一下,[數據庫]包含真實的數據庫名稱,並且變量是正確的...我已經檢查了以下幾點:

  • 服務器接受Windows和SQL Server身份驗證
  • 該帳戶可以訪問Microsoft SQL Server Management Studio中的數據庫,並以我想要的方式讀取數據
  • 計算機成功檢索服務器IP

有誰知道我做錯了什么,為什么這個PowerShell函數無法連接到數據庫?

運行腳本時是否出現任何錯誤?

您可能需要指定數據庫所在的服務器(尤其是在遠程計算機上)

例如:

$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 ,以獲取有關連接的更多信息字符串。

這只是一個猜測,因為我們沒有太多信息來了解運行腳本時實際發生的情況(以及調用方式),因此隨時提供其他詳細信息進行答復,我們將繼續那里!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM