업데이트 후 때로는 안전 모드로 재부팅되는 Windows 서버가 있습니다. 나는이 문제에 대해 노력하고 있지만 실제로 알고 싶은 것은 Windows가 안전 모드에서 실행 중인지 확인하는 방법입니다.
이상적으로 상태를 사용하여 Nagios 상자에 수동 검사를 보내는 스크립트에 통합하고 싶습니다.
명령 줄을 통해이 정보를 얻을 수있는 환경 변수 나 방법이 있습니까?
업데이트 후 때로는 안전 모드로 재부팅되는 Windows 서버가 있습니다. 나는이 문제에 대해 노력하고 있지만 실제로 알고 싶은 것은 Windows가 안전 모드에서 실행 중인지 확인하는 방법입니다.
이상적으로 상태를 사용하여 Nagios 상자에 수동 검사를 보내는 스크립트에 통합하고 싶습니다.
명령 줄을 통해이 정보를 얻을 수있는 환경 변수 나 방법이 있습니까?
답변:
나는 이것이 당신이 찾고있는 것을한다고 생각합니다.
PS C:\> gwmi win32_computersystem | select BootupState
BootupState
-----------
Normal boot
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
가능한 반환 값 :
정상 부팅 페일 세이프 부팅 네트워크 부팅으로 페일 세이프
(gwmi win32_computersystem -Property BootupState).BootupState
편집 : 내 나쁜, 나는 기본적으로 자체적으로 대답으로 쓸모가 없다는 것을 깨달을 정도로 KB를 충분히 읽지 못했습니다.
당신이에서하지의 안전 모드에 있다면 더 유용한 방법이 결정 : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000에 의해 마크 E. Russinovich가, 데이비드 A. 솔로몬 .
Windows 커널은 부팅 중에 초기에 안전 모드 스위치를 찾기 위해 부팅 매개 변수를 검색하고 내부 변수 InitSafeBootMode 를 커널이 찾은 스위치를 반영하는 값으로 설정합니다 . 커널은 InitSafeBootMode 값을 레지스트리 값 HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option Value에 기록 하여 SCM과 같은 사용자 모드 구성 요소가 시스템의 부팅 모드를 결정할 수 있도록합니다.
위를 가져 와서 아래와 쌍을 이루면 레지스트리 값을 사용하여 유용한 것으로 변환 할 수있는 숫자 값을 확인할 수 있습니다.
support.microsoft KB에서 "시스템이 장치 드라이버에서 안전 모드로 실행되고 있는지 확인하는 방법"
Windows OS 커널은 InitSafeBootMode라는 ULONG 변수에 대한 포인터를 내 보냅니다. 이 변수는 안전 모드 설정을 포함합니다.
장치 드라이버는 InitSafeBootMode 변수 값으로 시스템이 안전 모드에서 실행 중인지 확인할 수 있습니다. 값이 0이면 시스템이 안전 모드에서 실행되고 있지 않은 것입니다.
다음 표는 다른 값의 모드를 보여줍니다.
값 모드
1 SAFEBOOT_MINIMAL
2 SAFEBOOT_NETWORK
3 * SAFEBOOT_DSREPAIR
* 참고 3의 값은 Windows 도메인 컨트롤러에만 적용됩니다.
InitSafeBootMode
합니까?
HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
는 안전 모드가 아닌 시스템에는 전혀 존재하지 않지만 안전 모드에는 존재하지 않습니다.