2017-08-24 5 views
1

J'essaie de connecter mon script à une base de données. Auparavant je l'ai fait avec:Connexion SQL De powershell

psexec \\servername -accepteula sqlcmd.exe -U username -P password -S database -Q query 

Maintenant, je veux le convertir en code Powershell. J'essaie ceci:

Enter-PSSession servername 
$SQLCred = New-Object System.Data.SqlClient.SqlCredential("username","password") 
$Connection = New-Object System.Data.SqlClient.SqlConnection("Database",$SQLCred) 
$Connection.Open() 

mais je reçois toujours cette erreur:

Exception calling "Open" with "0" argument(s): "Login failed for user 'username'." 

Bien sûr, je suis sûr que les informations d'identification sont corrects. Quelle pourrait être la différence entre les deux modes de connexion?

Répondre

0

informations d'identification sont fournis dans la chaîne de connexion:

Si vous avez un objet existant des titres de compétence, vous pouvez l'utiliser comme ceci:

$cred = New-Object System.Data.SqlClient.credential($userId, $password) 
$connectionString = "Data Source=$Instance;Integrated Security=SSPI;Initial Catalog=master; User Id = $($cred.username); Password = $($cred.GetNetworkCredential().password);" 
$connection = New-Object System.Data.SqlClient.SqlConnection 
$connection.ConnectionString = $connectionString 
$connection.Open()