Usuário com melhor resposta
Tratamento de erro PowerShell Script

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.
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- Sugerido como Resposta Matheus Kamphorst quarta-feira, 3 de outubro de 2012 18:44
- Marcado como Resposta Fábio JrModerator quinta-feira, 4 de outubro de 2012 11:05
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 -
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
-
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 -
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 -
-
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- Sugerido como Resposta Matheus Kamphorst quarta-feira, 3 de outubro de 2012 18:44
- Marcado como Resposta Fábio JrModerator quinta-feira, 4 de outubro de 2012 11:05
-