Boa noite!
Sou iniciante no powershell e criei um script para monitorar o tamanho das filas de um servidor.. Exchange 2007 !
A questão é que quando eu rodo o script na mão, tudo funciona muito bem. Mas o script tem que ser chamado por uma ferramenta aqui da empresa. Essa ferramenta executa varios outros scripts e nunca tivemos nenhum problema com isso.
Só que na mão funciona, mas quando o script é chamado pela ferramenta, o cmdlet GET-QUEUE não funciona !
Abaixo está um pedaco do código..
O Get-ExchangeServer funciona normalmente das duas formas..
Alguém tem alguma ideia do porque o GET-QUEUE só funciona quando eu rodo na mão e não quando o script é chamado pelo agente da ferramenta ???
Coloquei o mesmo script em um outro servidor Exchange 2010, e lá funciona normamente dos dois jeitos!!
Get-ExchangeServer | ForEach-Object {
#Search for the local server
if ($nome.ToLower().contains($_.Name.ToLower())) {
#Check if it's a Hubtransport
if ($_.ServerRole -like "*Hub*") {
#Check the local queues
Get-Queue | ForEach-Object {
$var += "&green Queue " + $_.Identity + " has " + $_.MessageCount + " messages `n"
# Look for lagged queues - critical if over 150
if ($_.MessageCount -gt "150" ) {
$Description += "&red Queue: " + $_.Identity + " has " + $_.MessageCount + " messages to " + $_.NextHopDomain + "`n`n"
# Set the status to failed.
$Status = "2"
# Look for lagged queues - warning if over 100
}elseif ($_.MessageCount -gt "100"){
$Description += "&yellow Queue: " + $_.Identity + " has " + $_.MessageCount + " messages to " + $_.NextHopDomain + "`n`n"
# Don't lower the status level if we already have a critical event
if ($Status -ne "2") {
$Status = "1"
}
}
}
}else {#NAO É HUB !}
}
}
Não sei se o problema é no cmdlet Get-queue, ou se é na chamada do script pelo agente da ferramenta, ou se é o exchange 2007..