我的网络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。
如何在不输入密码的情况下工作?
答案 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"
注意:导出的凭据将被完全加密,并且只能在您的计算机中使用