Powershell Invoke-sqlcmd mantiene la conexión abierta y trata de reutilizarla

Tengo un script de Powershell que usainvoke-sqlcmd para aplicar scripts a una serie de bases de datos de desarrollo. Recorro una lista de scripts y lo comparo con el nivel de lanzamiento actual de la base de datos y luego aplico los scripts necesarios para obtener el DB al nivel de lanzamiento en el que debe estar. Ciertas bases de datos son bases de datos de referencia y están en estado READ_ONLY. Me conecto a esa base de datos. Ejecuto una secuencia de comandos de base de datos alternativa, configurándolas en READ_WRITE. Aplique la secuencia de comandos y luego la cambio a READ_ONLY. En general, el script funciona bien, el problema es que cuando PowerShell abre por primera vez una conexión a la base de datos, aplica el primer script y luego cambia la base de datos a READ_ONLY, ya que la base de datos tiene objetos bloqueados. Lo he rastreado hasta la conexión anterior y un bloqueo de espacio_trabajo_Transacción_completo (sys.dm_tran_locks) para lo que parece ser la conexión anterior de powershell. ¿Por qué esta conexión sigue abierta después de lainvoke-sqlcmd ha completado y hay algo que pueda hacer al respecto? Puedo forzarinvoke-sqlcmd ¿Para usar una nueva conexión para cada invocación del cmdlet?

He intentado una solución desordenada matando la conexión ofensiva y luego volviendo a intentar la conexión, pero creo que hay algo mejor.

Respuestas a la pregunta(3)

Su respuesta a la pregunta