none
Tratamento de erro PowerShell Script RRS feed

  • Pergunta

  • Bom dia,

    Tenho um script (ps1) que traz algumas informações do active directory dos usuários que estão em uma planilha excel. E gostaria de fazer o tratamento do erro, quanto o usuário não é encontrado no AD

    While ($objWorksheet.Cells.Item($intRow,1).Value() -ne $null)  
    {
    	$error.clear()
    	$erroractionpreference = “SilentlyContinue”
        $xlsGroup = $objWorksheet.Cells.Item($intRow, 1).Value() 
        $xlsUser = $objWorksheet.Cells.Item($intRow,2).Value()
    	$xlsUser = $xlsUser.ToString()
    	while ($xlsUser.Length -lt 6)
    	{
    		$xlsUser= "0{0}" -f $xlsUser
    	}
        $filter = "(&(objectCategory=User)(SamAccountname="+$xlsUser+"))"
        $objSearcher.Filter = $filter
        $obj = $objSearcher.FindOne()
        $strUser = $obj.Properties["samaccountname"][0].Tostring() 
    	$cnuser = $obj.Properties.distinguishedname
        $AllObj = $obj.Properties["memberof"]
    	
    	if ($? -eq $false)
    	{
    		“{0};The is an Error in this code;Problem;{1}” -f $xlsUser,$error
    	}
    	Else
    	{
    	

    Nessa ultima linha eu gostaria que ele retornasse o "codigo do erro" ou algo mais detalhado.

    Abaixo segue a mensagem que ele retorna.

     

    Agradeço a ajuda.

    quarta-feira, 3 de outubro de 2012 13:24

Respostas

  • tenta trocar

    “{0};The is an Error in this code;Problem;{1}” -f $xlsUser,$error

    por...

    “Err.Code: {0} `n Err.Source: {1}” -f $xlsUser,$error

    isso só muda a mensagem de erro que seu script estava escrevendo... isso que queria?


    Ajudei? Marca como útil, aproveita e visita meu blog :) HowToServer.com
    Gosta de powershell? entra no grupo do facebook Powershell Brasil
    Quer aprender powershell? leia esse artigo Aprendendo Powershell

    quarta-feira, 3 de outubro de 2012 18:21

Todas as Respostas

  • Amigo você pode utilizar a variável de ambiente $Error e ver se tem algo nela na primeira posição $Error[0].

    pelo visto erro está relacionado a parte do excel


    Ajudei? Marca como útil, aproveita e visita meu blog :) HowToServer.com
    Gosta de powershell? entra no grupo do facebook Powershell Brasil
    Quer aprender powershell? leia esse artigo Aprendendo Powershell

    quarta-feira, 3 de outubro de 2012 15:25
  • Matheus,

    o error apresentado é porque não existe o usuário que está na planilha no AD. Estou fazendo os testes em ambientes de teste onde fica facil identificar o erro.

    Quando coloco a opção $error[0] ele apresenta a mensagem de ...... "Cannot index into a null array". Com a opção $Error.Count ele retorna 2

    Eu estava pensando em conseguir um código de erro ou descrição semelhando aos do vbscript a variavel Err.Number, Err.Source, Err.Description

    vlw pela ajuda...


    • Editado intergalact quarta-feira, 3 de outubro de 2012 17:19 erro gramática
    quarta-feira, 3 de outubro de 2012 17:18
  • Amigo, seu objetivo é so trocar a mensagem de erro? ou você quer saber em qual usuario deu erro?

    ou somente ignorar caso de erro?

    qual o objetivo final


    Ajudei? Marca como útil, aproveita e visita meu blog :) HowToServer.com
    Gosta de powershell? entra no grupo do facebook Powershell Brasil
    Quer aprender powershell? leia esse artigo Aprendendo Powershell

    quarta-feira, 3 de outubro de 2012 17:22
  • o erra esta ocorrendo por causa dessa linha

    $obj.Properties["samaccountname"][0]

    como é um objeto vazio nao possui posições...


    Ajudei? Marca como útil, aproveita e visita meu blog :) HowToServer.com
    Gosta de powershell? entra no grupo do facebook Powershell Brasil
    Quer aprender powershell? leia esse artigo Aprendendo Powershell

    quarta-feira, 3 de outubro de 2012 17:23
  • isso... trocar a mensagem de erro!!

    quarta-feira, 3 de outubro de 2012 18:16
  • tenta trocar

    “{0};The is an Error in this code;Problem;{1}” -f $xlsUser,$error

    por...

    “Err.Code: {0} `n Err.Source: {1}” -f $xlsUser,$error

    isso só muda a mensagem de erro que seu script estava escrevendo... isso que queria?


    Ajudei? Marca como útil, aproveita e visita meu blog :) HowToServer.com
    Gosta de powershell? entra no grupo do facebook Powershell Brasil
    Quer aprender powershell? leia esse artigo Aprendendo Powershell

    quarta-feira, 3 de outubro de 2012 18:21
  • sim...

    muito obrigado

    quarta-feira, 3 de outubro de 2012 18:43