Blog Agility

Usando Test-ServiceHealth para checar a saúde do Exchange Server

Usando Test-ServiceHealth para checar a saúde do Exchange Server

Como o nome sugere, Test-ServiceHealth verifica o estado dos serviços que devem ser executados no servidor Exchange. Uma das melhores coisas sobre este cmdlet é que ele verifica os serviços de acordo com as funções de servidor do Exchange que estão instalados.

Assim, por exemplo, para um servidor com a função de Hub Transport o serviço relacionado com a função de Transporte de Hub será verificado. Enquanto que para um servidor “TIPICO” Exchange 2010 os serviços para o Transporte de Hub, Acesso para Cliente e funções de servidor de caixa de correio serão verificadas.

Aqui está um exemplo dos resultados Test-ServiceHealth.

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server01
Figura 1

Como você pode ver que são apresentadas diversas informações úteis. Mas, sempre que possível, eu gostaria de ver apenas o mínimo de informação relevante para os meus servidores. No caso de Test-ServiceHealth o resultado RequiredServicesRunning é o campo que eu estou mais interessado.

Portanto, neste caso eu poderia executar o comando abaixo para ver o a informação que me interessa:

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server02
Figura 2


Agora suponha que você queira verificar todos os meus servidores Exchange. Eu poderia fazer isso com o seguinte comando:

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server03
Figura 3

Interessante, especialmente a indicação de que um deles foi reprovado no teste para a função de servidor de Caixa de Correio. Mas não pode dizer qual foi o servidor falhou.

Vamos tentar isso em vez disso:

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server04
Figura 4

Agora temos uma saída que é um pouco mais útil, e me diz qual servidor falhou no teste.

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server05
Figura 5

Mas ainda não é o bastante. Eentão vamos acabar com isto em um roteiro prático que vai fazer o seguinte:

Execute Test-SystemHealth para todos os servidores Exchange da organização

. Diga-me quais os servidores passaram no teste

. Diga-me quais os servidores falharam no teste, e por que

. Aqui está o código de script que irá executar esses passos.

 

#Get the list of Exchange servers in the organization
$servers = Get-ExchangeServer
#Loop through each server
ForEach ($server in $servers)
{
Write-Host -ForegroundColor White "---------- Testing" $server
#Initialize an array object for the Test-ServiceHealth results [array]$servicehealth = @()
    #Run Test-ServiceHealth
$servicehealth = Test-ServiceHealth $server
            #Output the results            ForEach($serverrole in $servicehealth)            {
If ($serverrole.RequiredServicesRunning -eq $true)
                        {
Write-Host $serverrole.Role -NoNewline; Write-Host -ForegroundColor Green "Pass"
                        }
Else
{
                                   Write-Host $serverrole.Role -nonewline; Write-Host -ForegroundColor Red "Fail"
[array]$notrunning = @()
$notrunning = $serverrole.ServicesNotRunning
ForEach ($svc in $notrunning)
{
$alertservices += $svc
}
                                   Write-Host $serverrole.Role "Services not running:"
ForEach ($al in $alertservices)
{
Write-Host -ForegroundColor Red `t$al
}
                        }            }}

A saída da execução do script será algo parecido com isso.

13_01_2015 - Usando Test-ServiceHealth para checar a sade do Exchange Server06
Figura 6

Neste artigo foram detalhados todos os passos necessários para realizar testes da organização Exchange através do cmdlet “Test-ServiceHealth”.