Se você tiver cada novo item individual listado em uma linha separada em um arquivo PS1, por exemplo, supondo que eu tenha um arquivo chamado register.ps1 com as seguintes linhas:
cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'; new-item $(Encode-Sqlname server1) -itemtype registration -Value "server=server1;integrated security=true"
cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'; new-item $(Encode-Sqlname server2) -itemtype registration -Value "server=server1;integrated security=true"
Você poderia chamar sqlps assim:
sqlps -NoExit -Command "&{C:\bin\register.ps1}"
Uma solução melhor seria adicionar parâmetros ao register.ps1
param($ServerInstance)
cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'
New-Item $(Encode-Sqlname $server) -itemtype registration -Value "server=$serverInstance;integrated security=true"
Em seguida, crie um arquivo com a lista de Instâncias SQL, por exemplo server.txt:
server1
server2
Chame register.ps1 para cada linha:
get-content C:\bin\server.txt | foreach {C:\bin\register.ps1 $_ }