Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como identificar a versão e edição de todas as instâncias do servidor utilizando xp_regread e Powershell

Post Views 1,258 views
Reading time 9 minutes

Hey Guys!

Neste post, gostaria de compartilhar com vocês algumas formas de identificar a versão e edição de todas as instâncias do servidor utilizando xp_regread e Powershell. Vi um usuário enviando essa dúvida em um grupo do Whatsapp e não encontrei muitas soluções na internet, o que me motivou a escrever esse artigo.

Como identificar a versão e edição da instância logada

Caso você queira identificar as informações da instância em que está conectado, é algo bem simples:

Result:

Você também pode identificar essas informações utilizando a função SERVERPROPERTY:

Result:

Como identificar a versão e edição de todas as instâncias

O problema em questão é quando você precisa identificar as informações de servidores que possuem várias instâncias, o que pode acabar deixando essa atividade um pouco trabalhosa, de acordo com o número de instâncias do servidor.

Como identificar a versão e edição de todas as instâncias utilizando T-SQL

Para atender a essa necessidade, escrevi o script abaixo, que utiliza a procedure de sistema xp_regread para pesquisar o nome das instâncias no registro do Windows. Após isso, recupera as informações de cada uma dessas instâncias e ainda utiliza a procedure xp_cmdshell para ler informações do arquivo de ERRORLOG de cada instância para identificar algumas informações (praticamente, simula o @@VERSION).

Visualizar código-fonte

Result:

Como identificar a versão e edição de todas as instâncias utilizando Powershell

Uma outra forma de conseguir capturar as informações básicas de todas as instâncias de uma lista de servidores é utilizando o script Powershell abaixo:

Visualizar código-fonte (utilizando apenas PowerShell)
Visualizar código fonte (utilizando T-SQL, xp_cmdshell e PowerShell)

Neste exemplo, você irá popular o arquivo de entrada (C:\Temp\servidores.txt) com o hostname dos servidores que você deseja analisar as edições e versões do SQL Server.

Após executar o script Powershell, será gerado um arquivo CSV (C:\Temp\versao.csv) com as informações coletadas:

And that's it, folks!
Espero que tenham gostado desse post e até a próxima.