PC에 설치된 Windows 버전을 식별해야하는 독립 실행 형 C++ 코드 (Windows 프로그램 아님)가 있습니다.Windows Server vs 클라이언트의 대역 외 프로그램 식 ID 번호
커널 버전 (예 : GetFileVersionInfo
, ntoskrnl.exe)으로 다른 Windows 클라이언트 출시를 쉽게 구분할 수 있지만 클라이언트와 서버 설치를 구분할 수있는 확실한 방법이 있는지 궁금합니다.
이 방법을 사용하여 Windows Vista SP2와 Windows Server 2008 SP2 (6.0 빌드 6002 둘 다)와 Windows 7 및 Windows Server 2008 R2 (RTM 용 6.1 빌드 7600 및 6.1 빌드 7601 용)를 구분할 때 문제가 발생합니다. SP2, 둘 다). Win32 API에 액세스 할 수 없으므로 레지스트리를 피하는 것이 좋을 것입니다. 가능한 한 안정적입니까 (가능한 한 솔직하게). 클라이언트 대 서버 OS를 바깥에서 실행중인 코드에 대해 올바르게 식별하는 방법은 무엇입니까?
서버 버전에만있는 파일 (구성에 상관없이 모든 서버 에디션에 설치할 수 있도록 보장 된 좋은 파일은 무엇입니까?)을 확인할 수 있다고 가정합니다. 삭제할 수있는 Panther 폴더를 확인하십시오. 보증), 등등. 그러나 나는 이것이 사람들이 전에 만났던 (그리고 희망적으로) 더 우아하게 해결 된 문제라고 확신합니다.
: 나는 그래서, 당신이 밴드의 체크 아웃에 대해 무엇을 의미하는지 전혀 모르겠어요 ((!) 참고이 문제는 on SO before을 요청했지만,이 솔루션 (WMI)는 대역 외 검사하는 대상 외입니다)
순수한 호기심에서 왜이 작업을 수행해야합니까? 나는 몇 시간 동안 숙고 해 왔으며 유스 케이스를 생각할 수 없다 ... –
복구 소프트웨어의 특정 기능을 잠 그거나 잠금을 해제하는 것입니다. –