2017-12-29 5 views
-1

야간에 실행되는 아래와 같은 섹션이 많은 스크립트가 있습니다. 나는 내가 경고를 받고 오류를 검토 할 수 있도록 모든/모든 오류를 이메일로 보내고 싶습니다. 나는 모든 오류를 잡아내는 첫 번째 단계에서 문제가있다. 전자 메일을 보내거나 버퍼링 할 수있는 파일을 가정하면 전자 메일을 더 좋게 만들 수있다. 두 단계 모두 도움이 될 것입니다 - 특히 캡처 부분.powershell 스크립트 및 전자 메일에서 모든 오류를 캡처하십시오.

#---- Set Exchange archive licnse for all users with an Office license ---- 
Get-MsolUser -ALL | where {($_.Licenses.accountskuID -contains 
"Tennant:STANDARDWOFFPACK") -and ($_.Licenses.accountskuID -notcontains 
"Tennant:EXCHANGEARCHIVE_ADDON")} | Set-MsolUserLicense -AddLicenses 
"Tennant:EXCHANGEARCHIVE_ADDON" 


#-------------------------- ENABLE LITIGATION HOLD ---------------------- 
Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq 
"UserMailbox"} | Set-Mailbox -LitigationHoldEnabled $true - 
LitigationHoldDuration 2555 
+0

캡처 부분의 시작 - 대본을 선택 했습니까? –

답변

0

오류 메시지는 $error 변수에 자동으로 캡처되어야합니다. 최신 메시지를 보려면 $error[0]을 사용하십시오.

그런 다음 사용할 수있는과 함께 당신의 전자 우편의 몸으로 Send-MailMessage Cmdlet를

예 :을 기록하기 위해

코드에서
$body = ""; 
foreach ($e in $error) { 
    $body += "<hr /><pre>" + $e.ToString() + "</pre><hr />"; 
} 
Send-MailMessage -BodyAsHtml -Body $body -SmtpServer "smtp_server_address" -From "[email protected]" -To "[email protected]" -Subject "PowerShell Error Report" 
+0

차가움. 고맙습니다. 로깅 결과에는 "라이센스 초과"와 같은 오류의 일부만 표시되지만 "Set-MsolUserLicense"명령과 같은 다른 세부 정보는 표시되지 않습니다. 거기에 더 많은 결과를 얻을 수있는 방법이 있나요 그래서 scirpt의 어느 부분이 실패 할지도 모르는 더 좋은 아이디어가 있습니까? –

+0

기본 $ 오류 출력에는 잘못된 모든 가능한 결과가 표시됩니다. $ error 기본 출력은 오류 데이터의 일부만 나열합니다. 모든 $ 오류 데이터를 가져 오려면이 작업을 수행하십시오. $ 오류 | 포맷 목록 - 포스. 이벤트는 여전히 위에서 언급 한대로 스크립트 로깅을 활성화해야합니다. 오류는 PoSH 스크립트 및 응용 프로그램, 보안 및 Windows PowerShell (응용 프로그램 및 서비스 로그 아래의 노드)과 같은 Windows 이벤트 로그의 여러 위치에 $ 오류가 있습니다. – postanote

+0

$ error 변수는 객체의 모음 일뿐입니다. 내 예제에서는'.ToString()'을 사용했을 때만 간단한 메시지를 출력한다. 특정 속성에서 더 자세한 정보를 얻을 수 있습니다. 또는 @postanote가 지적한대로 모든 정보를 목록 형식으로 출력하기 만하면됩니다. –

0

, 당신도, 오류를 잡을 필요 ... 자신의 이벤트 로그에 기록

https://blogs.technet.microsoft.com/heyscriptingguy/2013/02/01/use-powershell-to-create-and-to-use-a-new-event-log

https://blogs.technet.microsoft.com/heyscriptingguy/2013/06/20/how-to-use-powershell-to-write-to-event-logs

... 또는 자신의 로그 기능을 작성하십시오.

예 : https://gallery.technet.microsoft.com/scriptcenter/Write-Log-PowerShell-999c32d0

또는 PowerShell을 로깅을 사용하여 시작합니다.

예 : 은 그룹 정책에서 로깅을 사용하도록 설정 https://gallery.technet.microsoft.com/scriptcenter/Write-Log-PowerShell-999c32d0

사용 PowerShell을 성적

예 : https://technet.microsoft.com/en-us/library/ff687007.aspx?f=255&MSPPError=-2147217396

그런 다음 당신은으로 이메일로 끌어 할 수있는 중앙 공유에 저장된이 부착.

관련 문제