簡體   English   中英

PowerShell使用不同的Windows憑據查詢遠程SQL Server

[英]PowerShell query remote SQL Server with different Windows Credentials

我正在嘗試使用一個腳本塊查詢SQL Server,並傳遞一組不同的Windows憑據。 如果我在與SQL Server相同的計算機上運行該腳本,則該腳本有效,但是當我嘗試遠程運行該腳本時,該腳本失敗。 我知道我可以遠程訪問SQL Server,因為我可以使用SQL Server Managment Studio訪問SQL Server並手動運行查詢。 以下是我嘗試使用的代碼。 我先在腳本中指定服務器,數據庫和查詢。

$credentials = Get-Credentials
#Script block
$sqlscript = {
    #SQL variables
    $sqlDataSource = $sqlServer
    $sqlDatabase = $database

    $connectionString = "Server="+$sqlDataSource+";Database="+$sqlDatabase+";Integrated Security=SSPI;"

    $connection = New-Object System.Data.SqlClient.SqlConnection
    $connection.ConnectionString = $connectionString

    $connection.Open()
    $command = New-Object System.Data.SqlClient.SqlCommand($queryString,$connection)
    $command.CommandTimeout=$queryTimeout

    # use dataset to get sql results
    $dataset=New-Object system.Data.DataSet
    $dataAdapter=New-Object system.Data.SqlClient.SqlDataAdapter($command)
    [void]$dataAdapter.fill($dataset)
    $connection.close()

    # dataset has separate results tables
    #$versionData = $dataset.Tables[0] #Version query results #not needed
    $hardwareData = $dataset.Tables[1] #Hardware query results
    $softwareData = $dataset.Tables[2] #Software query results


}
start-job -ScriptBlock $sqlscript -Credential $credentials
# output to separate CSV files
#$versionData | Export-CSV $outputPath -notype #not needed
$hardwareData | Export-CSV $outputPathHardware -notype
$softwareData | Export-CSV $outputPathSoftware -notype

這是工作的狀態: 在此處輸入圖片說明

啊,第二跳的樂趣。 基本上,這里出現的問題是,在創建遠程Powershell會話之后,您將無法訪問服務器上除連接的服務器以外的任何資源,因為登錄時憑據實際上並未傳遞給第二台服務器。是使用CredSSP身份驗證 ,您可以使用Enable-WSManCredSSP進行身份驗證 。請確保通讀鏈接,因為與標准auth相比,使用CredSSP時存在一些特定要求和潛在問題。

所以我弄清楚了問題所在。 正如我之前在評論中所述,調用Start-Job確實傳遞參數時,我正確了新會話。 如果查看SQL連接屬性,但未傳遞用戶名/密碼,它將嘗試使用傳遞給新會話的憑據通過Windows身份驗證進行身份驗證。 問題是我自己在get-credentials中的錯誤,我按如下方式提供了用戶名和密碼。

用戶:user@domain.local

密碼:mypassword

問題是它需要像這樣:

密碼:mypassword

我不確定為什么會有所作為,但確實如此。 我認為這兩種語法都相同,但可能與SQL Windows身份驗證不同。

暫無
暫無

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

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