Powershell Invoke-sqlcmd mantendo a conexão aberta e tentando reutilizá-la

Eu tenho um script Powershell que usainvoke-sqlcmd para aplicar scripts a uma série de bancos de dados de desenvolvimento. Eu percorro uma lista de scripts e a comparo com o nível de release atual do banco de dados e, em seguida, aplico os scripts necessários para obter o DB para o nível de release em que ele precisa estar. Determinados bancos de dados são bancos de dados de referência e estão em um estado READ_ONLY. Eu me conecto a esse banco de dados e executo um script DB diferente, definindo-os como READ_WRITE para aplicar o script e depois mude de volta para READ_ONLY. No geral, o script funciona bem, o problema é que quando o PowerShell abre pela primeira vez uma conexão com o banco de dados e aplica o primeiro script e depois altera o DB de volta para READ_ONLY, o banco de dados tem objetos bloqueados. Eu rastreei de volta para a conexão anterior e um bloqueio Shared_Transaction_Workspace (sys.dm_tran_locks) para o que parece ser a conexão anterior do PowerShell. Por que esta conexão ainda está aberta após ainvoke-sqlcmd concluiu e há algo que eu possa fazer sobre isso? Posso forçarinvoke-sqlcmd usar uma nova conexão para cada chamada do cmdlet?

Eu tentei uma solução confusa matando a conexão ofensiva e, em seguida, tentando novamente a conexão, mas acho que há algo melhor.

questionAnswers(3)

yourAnswerToTheQuestion