有誰知道如何使用PowerShell將Get-Credentials傳遞給SQL登錄名?試圖連接到SQL使用Winpe中的Get-Credential
我嘗試過很多不同的方法,但沒有成功。
這需要在winpe下運行 - 我可以使用Get-Credential獲取憑據,但我需要使用這些連接到SQL DB - 我不斷收到。
「NT AUTHORITY \ ANONYMOUS LOGIN」登錄失敗下面的代碼在Windows中工作正常 - 我以用戶身份登錄,但不能傳遞憑證。如果我刪除trusted_connection = true;我得到了失敗的登錄信息,這是WINPE的最佳測試,因爲沒有人登錄。有沒有辦法將這些Get-Credentials傳遞給SQL? 這個或者相同的代碼在WINPE中不起作用 - 不確定爲什麼?
$Cred = Get-Credential
Function SQL_CONNECT ($Query){
$ConnectionString = "server=VM855;database=LDMS2016;user id=$Cred.Username;password=$Cred.Password;trusted_connection=true;"
$SqlConnection = New-Object System.Data.SQLClient.SQLConnection($ConnectionString)
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.Connection = $SqlConnection
$SqlCmd.CommandText = $Query
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$a = $SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
}
$Owners = SQL_CONNECT "Select Task_Name, Task_owner, first_action_query_date from PROV_HISTORY_TASK" | Select-Object Task_Owner, first_action_query_date
$Owners
'$ cred.password'是一個安全字符串,不是實際使用的密碼。使用'$ cred.GetNetworkCredential()。Password'來獲得純文本密碼。 –
這不適用於winpe?除非我把它放在錯誤的地方...... – LDStewart
'$ cred.GetNetworkCredential()。密碼「僅適用於連接到Active Directory域的情況。在WinPE中獲取Active Directory身份驗證比較複雜,因爲WinPE未連接到域。即在這種情況下,Windows身份驗證確實很難實現,並且需要更多的調查。使用SQL身份驗證,因爲它不依賴於Active Directory進行身份驗證。 – HAL9256