Powershell SQL query–connection string

Posted on

QUESTION :

I am trying to query several different SQL servers and run a command on each of them. I am unable to get the connection string right. Code, below.

I receive the following error:Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

I thought if I passed it the credentials it wouldn’t care about the domain. How do I get around this?

Thanks in advance.

$serverList = @(Get-Content "c:AllServers.txt")
$query = "SELECT COUNT(thing) AS [RowCount] FROM My_table"
$Database = "My_DB"

# Read a file
foreach ( $svr in $serverList )
{
$conn=new-object System.Data.SqlClient.SQLConnection
$ConnectionString = "Server={0};Database={1};User ID=sa;Password=Password;Integrated Security=True" -f $svr, $Database
$conn.ConnectionString=$ConnectionString
$conn.Open()
$cmd=new-object system.Data.SqlClient.SqlCommand($Query,$conn)
$conn.Close()
}

ANSWER :

You need to remove Integrated Security=True from the connection string. If you set that to true it will try to do AD/kerberos authentication through your windows credentials as opposed to the user id and password specified.

Also, please review the SQL 2008 page on connectionstrings.com.

Leave a Reply

Your email address will not be published.