[英]Powershell Invoke-Sqlcmd Login Failed
我正在嘗試從Powershell中為Windows SQL Server 2008 R2運行sql查詢。 看起來該代碼未能通過SQL Server身份驗證憑據才能正確運行sqlcmd。 我直接從powershell運行第一部分,而不是作為腳本運行。
Set-Location SQLServer:\SQL\Server\
Invoke-sqlcmd "SELECT DB_NAME() AS hist;" -username "username" -password "p@ss"
我收到錯誤消息, Login failed for user 'username'.
代碼格式的理想最終結果看起來像這樣。 相同的結果錯誤。
$path = "sqldbdump.csv"
$server = "serveronlocalhost"
$db = "hist"
$Query = @"
SELECT * From alarms;
"@
Invoke-Sqlcmd -ServerInstance $server -Database $db -Username $username -Password $pw -Query $Query | Export-CSV $path
我也嘗試了convert-tosecurestring -asplaintext
,但沒有成功。
$pw = convertto-securestring -AsPlainText -Force -String "p@ss"
請勿對包含密碼的變量使用雙引號,因為會解釋特殊字符(包含特殊字符的用戶名也是如此)。 單引號字符串不是這種情況。
例如,此密碼將導致身份驗證錯誤,因為評估了字符$:
$pw = "p@ss$ord!"
但是,如果使用單引號,它將起作用:
$pw = 'p@ss$ord!'
請注意,相同的原則適用於命令行,因此這行不通:
Invoke-Sqlcmd ... -Password "p@ss$ord!"
您應該寫:
Invoke-Sqlcmd ... -Password 'p@ss$ord!'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.