강좌 / 팁

윈 도 우 (수정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 - - -
141 모 바 일| 아이폰 컴퓨터(윈도우10) 연결 문제 (아이튠즈 아이폰 인식... [2] Day 1018 0 10-06
140 소프트웨어| Symantec Endpoint Protection 자동 업데이트 설정하기 [4] kisslady 1017 6 07-22
139 소프트웨어| [포토샵] 소실점 그리드로 이미지 합성 [5] 무월 1016 13 04-03
138 소프트웨어| pureBasic 자동완성을 위한 프로젝트 만들기 [6] 입니다 1014 14 03-28
137 윈 도 우| 배치파일에서 내장명령어로 대기시간 구현 sleep [8] 지후빠 1014 14 12-01
136 모 바 일| #키네마스터강좌  #동영상 위의 동영상 #위치 #크기 #조절하기 무림거사 1012 0 07-09
135 소프트웨어| Total Commander 주요 단축키 설명 [3] VᴇɴᴜꜱGɪ 1007 11 07-23
134 모 바 일| 동영상을 원 속에 넣어 합성하는 방법 Mobile PowerDirect... [1] 무림거사 1004 2 06-29
133 하드웨어| [팁] 프린터 상태 정보 오류 안뜨게 하는 법 [2] asklee 1000 4 08-23
132 윈 도 우| 저번에 이어서 스케줄러 등록 [6] 슈머슈마 1000 10 12-28
131 기 타| VMWare Workstation@Hybrid CPU 성능 문제 해결책 [3] DarknessAn 997 6 11-20
130 윈 도 우| Clinic PE 크롬/웨일/엣지에서 확장앱 사용하기 [6] PC_Clinic 996 8 02-02
129 윈 도 우| 파워쉘로 움직이는 .gif 바로 만들기 [6] zerojiddu 992 10 06-18
128 윈 도 우| 로그오프시 "숨긴 항목 숨기기"로 자동 설정 [6] 지후빠 991 7 02-01
127 소프트웨어| pureBasic - FMIFS FormatEX 0.1.2 [6] 입니다 989 24 12-08
126 소프트웨어| 파이어폭스 57 이상버전 에서 북마크 클릭시 새탭에 열기 [4] mania 988 5 09-30
125 윈 도 우| pe 에서 간단히 다른pc 공유폴더를 네트워크 드라이브로 잡기 [1] heykevin 987 6 11-20
124 소프트웨어| dup2patcher.dll 디컴파일링-3 [6] sunshine 984 8 07-24
123 기 타| Microsoft Defender SmartScreen Demo Pages 내꼬 984 1 11-24
122 소프트웨어| 언패킹 후 리소스 재구축하기-1 [16] sunshine 982 6 10-13
XE1.11.6 Layout1.4.8