login à la database SQL Server à partir de PowerShell

J'ai regardé autour de moi en ligne pendant un certain time et j'ai trouvé beaucoup de problèmes similaires, mais pour une raison quelconque, je n'arrive pas à faire fonctionner ça.

J'essaie simplement de me connecter à une database SQL Server et de générer les résultats de la requête dans un file – Voir le script PowerShell ci-dessous. Ce dont je ne suis pas sûr, c'est comment intégrer l'ID user et le mot de passe dans la string de connection.

$SQLServer = "aaaa.database.windows.net" $SQLDBName = "Database" $uid ="john" $pwd = "pwd123" $SqlQuery = "SELECT * from table;" $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True; User ID = $uid; Password = $pwd;" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = $SqlQuery $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $DataSet.Tables[0] | out-file "C:\Scripts\xxxx.csv" 

Le message d'erreur suivant est reçu:

Exception appelant "Remplir" avec "1" argument (s): "Les connections Windows ne sont pas sockets en charge dans cette version de SQL Server."

Toute aide est grandement appréciée.

John

    Changez la security embeddede en false dans la string de connection.

    Integrated Security authentification Integrated Security et User ID \ Password sont mutuellement exclusives. Pour vous connecter à SQL Server en tant qu'user exécutant le code, supprimez User ID et le Password de Password de votre string de connection:

     $SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;" 

    Pour vous connecter avec des informations d'identification spécifiques, supprimez Integrated Security :

     $SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;" 
     # database Intraction $SQLServer = "YourServerName" #use Server\Instance for named SQL instances! $SQLDBName = "YourDBName" $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; User ID= YourUserID; Password= YourPassword" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = 'StoredProcName' $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $SqlConnection.Close() #End :database Intraction clear 

    En supposant que vous pouvez utiliser la security embeddede, vous pouvez supprimer l'ID de l'user et passer:

     $SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;" 

    la réponse est comme ci-dessous pour l'authentification de la window

     $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "Server=$SQLServer;Database=$SQLDBName;Integrated Security=True;"