如何在没有密码的情况下从Powershell连接到SQL Server?

时间:2019-02-21 08:13:19

标签: sql powershell

我的网络10.10.10.0/24

SQL Server在其他网络和其他域中。我通过vpn连接到它

IP地址sql 192.168.1.1

我只能访问不带RDP的sql

我尝试从Powershell连接到SQL Server。

invoke-dbaquery -SQLInstance 192.168.1.1 -sqlcredential 'sa' -query "select @@servername"

工作正常,但显示一个窗口,以便输入密码。如果输入密码,则命令work并输出sql verssion。

如何在不输入密码的情况下工作?

2 个答案:

答案 0 :(得分:0)

要使用集成安全性,只需省略-sqlcredential部分。像这样

invoke-dbaquery -SQLInstance 192.168.1.1 -query "select @@servername"

如果无法使用集成身份验证(无域信任或其他任何内容),请使用PSCredential对象存储凭据。像这样

$cred = get-credential -credential 'sa'
invoke-dbaquery -SQLInstance 192.168.1.1 -query "select @@servername" -SqlCredential $cred

如果要将密码保存在文件中(请注意安全问题!),则可以使用Export-Clixml来存储和检索凭证对象。

答案 1 :(得分:0)

首先,您需要使用以下cmdlet将凭据导出到文件中。 (一次性流程)

$Cred = Get-Credential -Credential "sa"
$Cred | Export-Clixml -Path "C:\Temp\SQLCred.cred"

然后,您可以导入凭据文件,并随时在脚本中使用它。

$Cred = Import-Clixml -Path "C:\Temp\SQLCred.cred"

Invoke-DbaQuery -SQLInstance 192.168.1.1 -sqlcredential $Cred -query "select @@servername"

注意:导出的凭据将被完全加密,并且只能在您的计算机中使用