繁体   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