강좌 / 팁

윈 도 우 (수정5) 윈도우 버전구분 배치파일

2024.03.23 21:29

메리아 조회:1299 추천:14

 

질답란에서 윈10과 윈11 구분 얘기를 하다보니

배치파일에서 윈11 등의 구분에 대해 오인되는 부분이 있어서 정리하고자 합니다.

 

 

가장 최선의 구분법)

- 현재는 cmd의 ver 명령이나 레지스트리를 읽어서는 구분을 정확하게 할 수 없음.

그러므로

wmic OS GET Caption /value 명령을 이용해야함.

예시)

set "osCaption=x"

for /f "skip=1 tokens=2 delims==" %%i in ('wmic OS GET Caption /value') do for /f "delims=" %%j in ("%%i") do set "osCaption=%%j"

echo osCaption : %osCaption%

위를 문자열로 읽어서 구분

- 예시)

"Microsoft Windows 11 Pro" 이런식으로 뜨면

"Windows 11" 같은 부분을 읽어야함. 어느정도 규격화 되어 있어서 구분하기 좋음.

(아래 레지스트리에서 ProductName과 유사하나 ProductName의 값이 윈11에서는 업데이트 안되고 10으로 표시됨.

그러므로 wmic OS로 해야함.)

 

 

기존방식의 문제점)

- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 에서 CurrentVersion 읽기

  -> 6.3에서 멈춰서 6.3에 해당하는 8.1부터 구분불가

- 상동의 레지스트리에서 ProductName 읽기

  -> 윈10까지는 쓸 수 있는데, 윈11부터는 업데이트 중지되고 10으로 표시됨.

- cmd창에서 ver 명령 결과 읽기

  -> 윈11 23H2의 결과값 : Microsoft Windows [Version 10.0.22631.2428]

      윈10에서부터 계속 10.0으로만 표시되고 빌드만 올라가므로 구분불가(단, 윈11 빌드번호는 2xxxx이므로 이걸로 구분은 가능)

 

 

릴리즈 구분할때)

1511이라거나 23H2같은 값을 구분할 필요가 있을때가 있음(윈10인지 윈11인지는 표시안됨)

이건 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 에서 읽어서 구분가능

- ReleaseId : 2009(20H2) 이전까지만 구분가능. 이후 버전은 모두 그냥 2009로 표시됨.

- DisplayVersion : 2009부터는 이 값에서 표시됨. 그러므로 ReleaseId 먼저 읽어서 2009일때 이걸 읽어야함.

- CurrentBuildNumber : 빌드번호로서 종종 처리상 기준점이 됨. 10.0.xxx.yyy 혹은 10.0.xxx 일때 xxx를 가리킴.(XP에도 있음)

- UBR : 윈10부터 들어가는 리비전번호. 이게 필요할때가 드물게 있음. 10.0.xxx.yyy 일때 yyy를 가리킴.

 

- ProductName : 사용불가. wmic OS GET Caption 결과와 유사하나, 윈11에서는 업데이트 중지되어 10으로 표시되는 결함이 있음.

 

 

 

자세한 배치파일 적용내용은 첨부파일을 참고하세요.

 

 

 

참고로 배치파일 ver명령에서 볼 수 있는 버전표는 다음과 같습니다

(10~11이 평균이 된 요즘 시대에서는 쓰기가 좀 어렵죠 ㅠㅠ)

 

ver (command) - Wikipedia

https://en.wikipedia.org/wiki/Ver_(command)

 

Windows 2000           5.0

Windows XP             5.1

Windows Server 2003    5.2

Windows Vista          6.0

Windows Server 2008    6.0

Windows 7              6.1

Windows Server 2008 R2 6.1

Windows 8              6.2

Windows Server 2012    6.2

Windows 8.1            6.3

Windows Server 2012 R2 6.3

Windows 10             10.0

Windows Server 2016    10.0

Windows Server 2019    10.0

Windows Server 2022    10.0

Windows 11             10.0

 
(메모장에서는 간격이 맞는데 여기서는...ㅠㅠ)
 

 

추가)

첨부파일에 문제가 있어 좀 수정했습니다.

원래 숫자로 처리할땐 편했는데(?), 마소에서 숫자 구분법을 다 이상하게 만들어버리고 나니,

문자열로 처리해야되어서 새롭게 만들다보니, 중복된 이름이 나오는걸 깜빡 잊고 처리를 안했네요. ㅠㅠ

server 2012나 server 2012R2

윈 8 이나 윈 8.1

이런게 제대로 처리 안되는걸 놓쳤었네요.

기본 구분시 숫자구분이 거의 의미없어져서 숫자구분 괜히 없애고 줄이려다 이상하게 됐었군요. ㅠㅠ

 

추가2)

다양한 OS를 다 설치해볼수가 없어서 충분한 테스트를 못했는데

어차피 문자열에 관련된 부분이라 문자열을 임의로 넣고 테스트 했더니 많이 꼬였더군요.

한번 수정해서 올렸는데도 그것도 틀린게 있어서 다시 고쳤고,

계속 고치고 보니 또 복잡한게 늘어서 다시 버전 숫자 불러내는 방식을 부활시켜서 수정했습니다.

그냥 버전숫자를 6.3 이전까지는 활용하는게 낫더라구요.(사실 원래 넣었다가 불필요해 보여서 뺐었는데 더 복잡해졌기에 다시 씀)

 

이제는 정말 XP~11까지 확실히 처리할거라 봅니다만, 또 빼먹은게 있을지 모르겠네요. ㅠㅠ

 

추가3)

결국 또 실수가 있었네요. 윈서버 2022를 윈11베이스로 오인하고 있었습니다.

사실 윈11이 아주 약간 섞이기도 했고 빌드도 2xxxx로 시작해서 오해했네요.

시기상 애매하긴 해도 윈서버 2022의 기반은 윈10이 맞다는군요. ㅠㅠ(저는 2012R2랑 2016, 2019만 써봐서 몰랐음 ㅠㅠ)

 

그래서 수정5는 서버2022는 윈10으로 분류하는 수정을 했습니다.

지속적인 혼란을 드려 죄송합니다. ㅠㅠ

(이제는 더 업뎃이 없으리라 생각하지만 벌써 실수가 5번째니 확답은 못드리겠습니다 ㅠㅠ)

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4502 윈 도 우| PrincePE_V18.5 [164] %카리스마 204989 99 02-03
4501 윈 도 우| 윈도우7 Windows 정품 인증 기술 업데이트로 인증하기 [21] 얼룩강아지 111629 0 02-27
4500 윈 도 우| 비스타(VISTA) 인증 후 무한 리부팅 현상 해결법 [1] gooddew 98133 0 06-17
4499 윈 도 우| 바이오스 안에 OEM SLIC 가 내장되었는지 확인하는 방법 [5] gooddew 84995 0 06-17
4498 윈 도 우| UEFI-모드 부팅 [설치 USB] 만들기 [8] eunnano 77038 0 09-08
4497 A.I 사용법 무작정 따라하기 (스샷 첨부) - 마지막 수정 [67] PoLaRiS 74991 6 09-11
4496 하드웨어| 유튜브 버퍼링 완전해결2 (hosts파일 사용, DNS변경 x, SKB... [44] hsk 63943 6 05-07
4495 윈 도 우| 비스타/세븐 DVD-4cd 분할 가이드 v2 김간지 63413 0 01-21
4494 윈 도 우| Usb를 이용한 XP설치 [21] 고맙쥐 62291 11 10-24
4493 윈 도 우| 비스타의 숨겨진 부팅로고를 보자 [5] cdcsj 60484 0 05-27
4492 윈 도 우| 소소한팁..Windows 로그온 사진이 작을때.. 김간지 59255 0 07-12
4491 윈 도 우| God Mode 만들기 [5] 적광 55432 0 12-26
4490 기 타| Superfetch 기능 사용중단하기 [13] gooddew 55294 1 09-17
4489 윈 도 우| Win7_8 PE/수정/추가/바탕화면/교체하기 [13] 까꾸리 54401 17 05-19
4488 Windows 7 과 XP 프린터와 파일 서로 공유하기 [5] sp2 52848 3 08-23
4487 윈 도 우| 윈도우8 다국어 언어팩 설치 방법(영문 기준) [7] chkid 51185 5 11-12
4486 윈 도 우| 삼성 노트북의 복원솔루션 5 를 이용하여 SSD에 복원영역 ... [13] 울랄라백수 48979 4 06-18
4485 소프트웨어| USB키보드인채로 PLOP 사용하기 (USB 2.0 MODE + PE) [19] hazuki 48384 0 01-20
4484 윈 도 우| 만능고스트 사용후 hal.dll 오류로 부터 벗어나기 [2] cdcsj 47764 0 04-30
XE1.11.6 Layout1.4.8