컴퓨터가 종료되어 스크립트가 실패하거나 스크립트가 제대로 작동한다고 생각하지만 그렇지 않은 경우 실패 경고를 트리거하는 방법은 무엇입니까?

컴퓨터가 종료되어 스크립트가 실패하거나 스크립트가 제대로 작동한다고 생각하지만 그렇지 않은 경우 실패 경고를 트리거하는 방법은 무엇입니까?

저는 현재 제가 일하고 있는 비즈니스의 작업을 자동화하기 위해 PowerShell과 작업 스케줄러를 사용하고 있습니다. 이 스크립트는 목록을 업데이트하며 이상적으로는 10분마다 실행됩니다. 이 반복 스크립트를 실행하는 데 사용하는 컴퓨터는 약간 버벅거릴 수 있으며 임의로 종료될 수 있습니다. 스크립트를 실행하는 컴퓨터가 오프라인인 경우 경고를 받는 방법을 찾으려고 합니다.

제가 생각하는 주요 방법은 프로그램이 실행될 때마다 알림을 설정한 다음 두 번째 스크립트에서 알림을 확인하도록 하는 것입니다. 스크립트가 실행되지 않았음을 나타내는 누락된 알림이 있는 경우 경고를 보냅니다. 답을 찾는 도중에 답을 찾았지만 기계가 꺼지면 작동하지 않을 것 같습니다.

Windows 작업 스케줄러에서 실패 시 알림을 표시하도록 설정

시간을 내어 이 질문에 도움을 주셔서 감사합니다.

답변1

다른 의견에 동의합니다. 연결 테스트를 실행하는 두 번째 시스템이 필요하거나 오류를 감지하기 위해 다른 코드를 실행하는 시스템에 대한 일종의 작업이 필요합니다. 다음은 다른 컴퓨터에서 성공적인 ping 응답을 받지 못한 경우 이메일을 보내는 샘플 powershell 스크립트입니다. 다음 코드는 온라인으로 0ffice365 메일/교환을 사용한다고 가정하지만 사용하는 대로 변경할 수 있습니다.

$testComputer = ping 1.1.1.1 -n 1 | select-string "Sent"  #replace the 1.1.1.1 with your server that fails

if($testComputer -match 'Sent = 1')
{
    write-host("Connection to computer running scheduled task is good.")
}
else
{
    write-host("Connection to computer running scheduled task has failed. Check to see if it is offline.")
    $computerParamsFailed = "Connection to computer running scheduled task has failed. Check to see if it is offline." 

    $username="[email protected]"  #replace with email
    $password=ConvertTo-SecureString "PASSWORDHERE"-AsPlainText -Force  #replace what is in quotes with your email password
    $mycredentials = New-Object System.Management.Automation.PSCredential ($username, $password)

    Send-MailMessage -To [email protected] -subject "Computer has gone offline." -body $computerParamsFailed -UseSsl -Port 587 -SmtpServer smtp.office365.com -From $username -Credential $mycredentials
    #change "to" email value 
}

다른 컴퓨터에서 10분마다 실행되도록 설정할 수 있습니다. 연결이 감지되면 아무 작업도 수행하지 않습니다. 응답을 받지 못한 경우 이메일을 보내드립니다.

답변2

나는 워스웰의 말에 동의한다. 해당 스크립트가 실행되고 있는 컴퓨터의 상태를 모니터링하는 다른 컴퓨터가 필요합니다. 이 경우 첫 번째 시스템을 모니터링할 수 있을 만큼 안정적인 시스템이 있다면 대신 해당 시스템에서 스크립트를 실행하는 것이 좋습니다. 최선의 해결책... 스크립트를 실행하는 시스템이 충돌하는 문제를 수정하거나 간단히 교체하십시오.

관련 정보