
서버 종료 또는 시작을 알리기 위한 이메일을 보내는 배치 파일이 2개 있습니다. 배치 파일은 단일 인수, 즉 전송할 메시지를 사용하여 exe를 호출합니다. exe는 system.net.mail을 사용하는 vb.net 프로그램에서 나옵니다.
배치 파일은 명령 프롬프트에서 제대로 작동하고 이메일이 수신됩니다.
이제 OS가 시작될 때와 OS가 종료될 때 사용자가 로그온할 필요 없이 이러한 배치 파일이 자동으로 실행되기를 원합니다.
나는 이것을 Server 2012 R2에서와 동일하게 작동해야 한다고 생각하는 Win 8.1 시스템에서 테스트해 보았습니다. 이것이 잘못된 가정이라면 조언을 부탁드립니다.
그래서 제가 시도한 것은 다음과 같습니다.
1) 작업 스케줄러(단, 시작 시에만 종료 옵션이 없음)
2) 로컬 그룹 정책 편집기 > 컴퓨터 구성 > Windows 설정 > 스크립트(시작/종료)
두 경우 모두 설정이 매우 간단해 보였지만 이메일은 전송되지 않았습니다.
내가 분명히 생각하고 있지 않은 고려 사항에 대한 아이디어를 누군가 나에게 줄 수 있습니까?
문제가 권한입니까? 내가 그걸 어떻게 알겠어요?
문제는 "예정된 것처럼 보이지만 그렇지 않습니다"입니까?
이런 식으로 배치 파일을 사용할 수 없는 문제인가요?
이번이 처음이기 때문에 기본적인 것이 빠졌다고 확신합니다.
답변1
이것은 아래에 언급된 두 가지 제한 사항으로 인해 실제로 답변이 아니지만 설명하기에는 너무 길기 때문에 ..
다음 두 가지 단점이 있는 간단한 테스트를 수행했습니다.
- 스크립트는 이메일을 보내지 않습니다. 내 ISP의 smtp 릴레이가 필요하지만 찾는 것이 너무 번거롭습니다.
- Win8.1이 아닌 Win10 미리보기에서 테스트하고 있습니다. 오늘 저녁에 내가 가진 전부입니다.
내부에는 디렉터리 Local Group Policy Editor > Computer Configuration > Windows Settings > Scripts (Startup/Shutdown)
에 시작 powershell 스크립트 하나를 넣고 디렉터리 startup
에 종료 powershell 스크립트 하나를 넣었습니다 shutdown
.
Powershell Scripts
각 시작 및 종료 정책 노드 내부 탭 아래에 스크립트를 추가하는 데 특별한 주의를 기울였습니다 .
c:\temp
나는 스크립트를 작성하기에는 너무 게을러서 라는 디렉토리가 있는지 확인했습니다 .
또한 다음을 실행하여 powershell 스크립트가 허용되는지 확인했습니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
시작 스크립트는 다음과 같습니다.
if (!(Test-Path c:\temp\log.txt)) {New-Item -ItemType file -Path c:\temp\log.txt}
$timestamp = get-date
$string = "$timestamp UP!"
$string | Out-File -FilePath c:\temp\log.txt -Append -NoClobber
종료 스크립트는 다음과 같습니다.
if (!(Test-Path c:\temp\log.txt)) {New-Item -ItemType file -Path c:\temp\log.txt}
$timestamp = get-date
$string = "$timestamp DOWN!"
$string | Out-File -FilePath c:\temp\log.txt -Append -NoClobber
그런 다음 컴퓨터를 재부팅했습니다. 파일 내용은 다음과 같습니다 c:\temp\log.txt
.
06/01/2015 00:07:45 DOWN!
06/01/2015 00:08:10 UP!
메일을 보내는 것과 동일한 결과를 기대하지만 실제로 시도하기 전까지는 확신할 수 없습니다.
답변2
모든 사람의 의견과 답변을 연구하고 활용하는 것이 실제로 내 문제를 해결하는 데 도움이 되었지만, 때때로 그렇듯이 실제 문제는 다소 달랐습니다. 따라서 다른 사람이 동일한 '문제'에 휘말릴 경우를 대비하여 나에게 실제 문제로 판명된 내용을 게시해야 할 의무감을 느낍니다.
스크립트 테스트 중에보였다내 Win 8.1 컴퓨터에서 작업하는 것이 더 편리합니다. 그렇지 않은 것으로 밝혀졌습니다. 나는 가지고 있었다추정내 Win 8.1 시스템은 실제로 서버 2012 R2와 동일하게 작동합니다. 내 가정은 틀렸어.
모든 것을 2012 R2 서버로 옮긴 순간 스크립트는 완벽하게 작동했으며 그 이후로 계속 작동했습니다. Win 8.1 시스템이 왜 다르게 반응했는지 설명할 수는 없습니다.
그래서 내 해결책은 시작/종료 스크립트를 테스트하기 위해 더 이상 Win 8 또는 8.1 시스템을 사용하지 않고 대상 서버에서 수행하는 것이었습니다.
(장거리 출장으로 출장 중이라 답변이 늦어 죄송합니다)
답변3
이벤트 뷰어로 이동하여 로그온 및 로그오프 보안 이벤트를 검색하고 마우스 오른쪽 버튼을 클릭한 후 이메일을 보내는 이 이벤트에 대한 작업을 추가하세요.
가장 좋은 방법입니다.