※ 이 글은 아래 MS 기술 자료를 참조하여 작성되었습니다.
http://support.microsoft.com/kb/328874/ko


윈도우 비스타와 세븐은 설치된 시디키를 변경하는 작업이 비교적 간편합니다. slui라는 툴도 제공하고 slmgr.vbs라는 스크립트도 제공하기 때문입니다. 하지만 윈도우 XP에선 그렇지 않습니다. 시디키를 변경하려면 위 기술 자료에 나온 것 처럼 절차가 까다롭습니다.

그래서 제가 한방에 편리하게 변경할 수 있도록 스크립트를 만들었습니다. 처음에는 위 기술 자료에 나온 ChangeVLKeySP1.vbs 스크립트를 활용하려 하였으나 어차피 WMI(Windows Management Instrumentation) 스크립트이기 때문에 WMIC를 이용해 한줄로 끝낼 수 없을까라는 생각이 들어 공부를 좀 해보니 방법을 만들어 낼 수 있었습니다. 이게 정확한 사용법인지는 모르겠지만 이렇게 시도해보니 잘 되더군요.

wmic path Win32_WindowsProductActivation.ServerName="%userdomain%" call SetProductKey "시디키"

위 명령어로 XP에서도 간단히 시디키를 변경할 수 있습니다.

편리하게 작업할 수 있도록 제가 만든 스크립트를 첨부합니다.


에디션과 맞는 정상적인 시디키를 입력했다면 아래 그림처럼 아무런 오류가 발생하지 않을 것이고




잘못된 시디키를 입력했다면 아래 그림처럼 오류가 발생합니다.




제가 글을 다 작성하고 나서 홈 에디션에 테스트를 해보니... 홈 에디션에는 WMIC가 없다는 사실을 깜빡 했습니다. 그래서 홈 에디션 유저들을 위해 원래 시도했었던 VBS 방식을 사용한 파일 올려드립니다. 홈 에디션 유저들은 아래 파일을 사용하세요. 물론 아래 파일은 프로페셔널 에디션에서도 작동합니다.


이 파일의 경우 처음에 올려드린 파일과 달리 시디키가 잘못되면 오류 창이 따로 뜹니다.




오류가 발생하는 경우는 시디키가 안 맞아서 그런건데

홈 에디션 <-> 프로페셔널 에디션
리테일 <-> OEM <-> 볼륨

위 체계는 전부 구별됩니다. 예를 들어 볼륨 버전에 리테일 시디키는 입력되지 않습니다.


요즘 프로그래밍 언어에 대해 자꾸 관심이 생깁니다. 공부해보겠다고 예전에 C 책은 샀는데 아직 시작도 못했습니다. 배운게 없다보니 맨날 윈도우 배치파일로만 이것 저것 작성해서 손발이 고생하는 것 같은데... 고급 언어를 배우면 좀 더 세련된 스크립트를 만들 수 있을 것 같습니다. 특히 WMI나 파워셸 공부해두면 확실히 윈도우 관리의 고수가 될 것 같은데 막상 시작하려니 몸이 안 따라주네요.

혹시 스크립트에 결함이 있다고 생각되시면 알려주세요.