簡體   English   中英

Powershell調用-Sqlcmd登錄失敗

[英]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.

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