none
"Get-queue" não funciona RRS feed

  • Pergunta

  • 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..

    quinta-feira, 24 de outubro de 2013 22:16

Respostas

  • Nelson,

    salve esse mesmo script com a extensao .ps1 e o execute, se a execução for concluida com o sucesso é a sua ferramenta que nao esta chamando o script

    quinta-feira, 8 de maio de 2014 16:24