Em alguns momentos pode ser necessário verificarmos quando um equipamento está online na rede, como quando reiniciamos remotamente e queremos saber quando poderemos acessar novamente.
Para isso pode ser interessante manter um LOG, ou um registro, dessa validação.
A ideia do script de hoje, é escrever uma função para ficar com um Ping constante para um determinado computador ou seja, ficar continuamente enviando pacotes e analisando esse processo. Mas além disso, vamos registrar num arquivo de texto todo esse processo.
Fora o Ping em si, que recomendo a leitura desse artigo, vamos utilizar uma nova função dentro do Powershell, para salvar tudo que vemos em nossa tela, chamada Start-Transcript. Também vamos alterar o titulo do nosso terminar.
function Ping-Monitor { | |
param ( | |
[parameter(position=0, Mandatory=$True)] | |
$nomeComputador | |
) | |
# Configuracoes | |
$hash = Get-Date -Format mmssyyyydd | |
$logPath = "$env:userprofile\Documents\log.$nomeComputador.$hash.txt" | |
# Inicia o registro de Logs | |
Start-Transcript -path $logPath -Append | |
# Inicia o processo de Ping com a data | |
try { | |
$host.UI.RawUI.WindowTitle = "Verificando $nomeComputador - Aperte CTRL + C para cancelar" # Alteramos o titulo do terminal | |
Ping.exe -t $nomeComputador | ForEach {"{0} - {1}" -f (Get-Date),$_} # Executamos continuamente o comando, recebendo a data | |
} | |
catch { | |
$ErrorMessage = $_.Exception.Message | |
Write-Host "Ocorreu um erro ao verificar $nomeComputador" | |
Write-Host "Error: $ErrorMessage" | |
} | |
} |
Deixamos no titulo a orientação sobre como encerrar essa função, por meio dos comandos CTRL + C.
O uso dessa função é muito interessante no cenário que comentei de reiniciar um equipamento remotamente e monitorar quando ele fica online. Com base nele, pode trabalhar em outras coisas como analisar o retorno do comando e mudar a cor do terminal quando o equipamento estiver online novamente.
Top comments (0)