강좌 / 팁

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

2024.03.23 12:29

메리아 조회:1207 추천: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 - - -
1968 윈 도 우| Windows 업데이트를 사용하여 데이터를 잃지 않고 Windows ... [6] VᴇɴᴜꜱGɪ 1234 6 04-23
1967 윈 도 우| WindowsXPE147-1빌더/나만의 PE를 만들자 시즌2 ?? 1탄 (... [59] 지연서연아 2021 68 04-16
1966 윈 도 우| 윈도우 계정/자동로그인 버그 해결 방법 사가르마타 781 0 04-12
1965 윈 도 우| 원격 데스크톱..., 자격증명이 작동하지 않습니다... [1] 사가르마타 318 1 04-12
1964 윈 도 우| SSD 에서 파일 삭제를 주의해야 되는 이유 [3] gooddew 2262 12 04-10
1963 윈 도 우| 특정 폴더목록 자동열기 배치파일 [2] 메리아 715 13 04-09
1962 윈 도 우| 하드 디스크 아이콘 바꾸기 [11] 타천사둘리 1324 8 04-08
1961 윈 도 우| [uupdump] 윈도우 업데이트 및 드라이버(IRST&NVMe) 통... [17] 무월 2207 34 03-27
» 윈 도 우| (수정5) 윈도우 버전구분 배치파일 [4] 메리아 1207 14 03-23
1959 윈 도 우| 윈도우11&10 앱 제거 무인설치 [16] 무월 1712 29 03-22
1958 윈 도 우| Windows 11에서 Android를 웹캠으로 사용하는 방법 VᴇɴᴜꜱGɪ 1103 6 03-16
1957 윈 도 우| 22621.3296 22631.3296 업데이트 주의. [9] 타천사둘리 2221 12 03-14
1956 윈 도 우| 시스템 보호 설정 우클릭 메뉴 [13] 와로 1322 27 03-04
1955 윈 도 우| DISM 나의 윈도우 문제점 복구 [8] 마로94 1386 13 02-28
1954 윈 도 우| 윈도우 장치 드라이버 추출(백업) 명령어 [25] 컨피그 2713 64 02-23
1953 윈 도 우| 이 번 업데이트로 엣지에 추가된 사이드바 버튼 제거 [7] 고고추 2172 9 02-16
1952 윈 도 우| cmd 관리자 권한 실행과 특수문자 경로 문제 [9] 메리아 1100 12 02-14
1951 윈 도 우| 측면 버튼에 등록된 돋보기 기능... 기본값으로 복원 [2] 사가르마타 1058 0 02-10
1950 윈 도 우| 윈11 탐색기 메뉴삭제 [5] 진실 2431 19 02-06
1949 윈 도 우| 윈도우 탐색기 갤러리 안보이게 하는 방법 [1] 사가르마타 1587 2 02-05
XE1.11.6 Layout1.4.8