Consulta SQL Powershell - cadena de conexión


0

Estoy tratando de consultar varios servidores SQL diferentes y ejecutar un comando en cada uno de ellos. No puedo obtener la cadena de conexión correcta. Código, abajo.

Recibo el siguiente error: Error de inicio de sesión. El inicio de sesión es de un dominio no confiable y no se puede usar con la autenticación de Windows.

Pensé que si le pasaba las credenciales no me importaría el dominio. ¿Cómo puedo evitar esto?

Gracias por adelantado.

$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()
}

Respuestas:


1

Necesita eliminar Integrated Security=Truede la cadena de conexión. Si lo establece en verdadero, intentará realizar la autenticación AD / kerberos a través de sus credenciales de Windows en lugar de la identificación de usuario y la contraseña especificadas.

Además, revise la página de SQL 2008 en connectionstrings.com .


Gracias. Lo he intentado con y sin Integrated Securty, junto con otras permutaciones de las cadenas de conexión en esa página. Los errores van desde: '"Valor no válido para la clave' biblioteca de red '."' A '"Palabra clave no admitida:' proveedor '."'
sean

@Sean, inténtalo sin Integrated Security=Trueactualizar tu pregunta para reflejar la permutación exacta del script y el error que obtienes con esa permutación.
Justin Dearing
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.