2010년 12월 4일 토요일

Wako On Lan 기능 사용하기

1. WoL 기능이란?

WoL은 Wake on LAN의 약자입니다. 즉 랜카드로 컴퓨터를 켜는 기능인데요, 웬만한 컴퓨터는 다 이 기능을 가지고 있습니다. 특히나 요즘은 스마트폰 사용자들이 증가하면서 이 WoL 기능의 중요성이 더 커지고 있는 실정입니다. 저처럼 외부에서 원격으로 집에있는 컴퓨터에 접속하는 경우가 많다면 컴퓨터를 켜두고 외출하는 것 보다는 이 WoL 기능을 활용하여 필요할 때만 외부에서 컴퓨터를 켜는 쪽이 전기세 절약에 도움되겠지요.

그런데 저처럼 공유기를 사용하는 경우 따로 매직패킷 프로그램을 사용하지 않고 간단히 공유기 관리 화면에 접속해서 WoL 기능을 사용할 수 있습니다. 매우 편리하죠. 웹 브라우저만 사용할 수 있는 환경이라면 어디서든 접속해서 컴퓨터를 켤 수 있으니까요.


2. 공유기에서 WoL 기능 설정하기

일단 공유기 관리 화면에서 WoL 기능을 설정해보겠습니다. 이 글의 제목처럼 ipTIME 공유기 기준인데 저는 N6004 제품을 사용하고 있으니 이 제품 기준으로 설명드립니다. 아마 ipTIME 사용자 분들은 화면이 다 비슷할 것입니다.

192.168.0.1 주소로 접속하시면 공유기 관리 화면으로 들어갈 수 있습니다.

고급 설정 - 특수기능 - WOL 기능

일단 MAC 주소 찾기 버튼을 눌러주세요.



그러면 현재 공유기에 연결되어 있는 PC들의 MAC 주소가 나옵니다. WoL 기능을 사용할 컴퓨터의 MAC 주소를 선택해주시면 됩니다.



3. 외부에서 공유기로 접속 가능하게 설정

위 설정을 했다면 이제 외부에서 공유기 관리 화면으로 접속할 수 있도록 설정해야 합니다. 집에서는 192.168.0.1 주소로 공유기에 접속할 수 있지만 외부에서는 그렇지 않죠. 공인 IP를 사용해서 접속해야 합니다. 그런데 보통 자신의 IP를 잘 외우지 않기 때문에 이 경우 DDNS 기능과 결합해서 사용하면 조금 더 편리합니다.

고급 설정 - 보안 기능 - 공유기 접속 관리

외부 접속 보안에서 원격 관리 포트 사용에 체크를 하시고 사용할 포트를 적어줍니다. 보안상 포트 번호는 80번을 사용하는 것 보다 자신이 임의로 지정하는 것이 좋겠습니다. 저는 4자리 숫자를 적어줬습니다.



다음은 DDNS 설정입니다. 자신의 IP 주소를 외우고 다닌다면 상관이 없겠지만, 외우기 귀찮거나 IP가 자주 바뀌는 경우라면 DDNS 기능이 참 유용합니다.

고급 설정 - 특수기능 - DDNS 설정



이렇게 원격 관리 포트를 설정했고, DDNS까지 설정했다면 이제 자신의 공유기에 외부에서 접속할 수 있는지 테스트 해보세요. 저같은 경우 아래 주소같은 형식이겠죠.

http://sbox.iptime.org:xxxx

뒤에 xxxx는 제가 지정했던 원격 관리 포트 숫자입니다.

저는 아이폰에서 3G 모드로 접속해봤습니다. 공유기 관리 화면에 잘 접속한 모습입니다.



4. PC의 CMOS 설정 화면에서 WoL 기능 활성화 시키기

마지막으로 PC가 랜카드로 켜질 수 있도록 설정해줘야 합니다.

이 부분은 컴퓨터마다 다 다르기 때문에 제가 설명드리기 조금 곤란합니다. 일단 Power 설정 화면으로 들어간 다음 잘 찾아봐야 하는데, 일반적으로는 Wake on Lan 이라는 표현이 있을 것입니다. 또는 Ring 이라는 단어가 쓰일 수도 있구요. 제가 사용하는 ASUS P7P55D 메인보드는 조금 특이하게도 PCIE 장치로 표현되어 있습니다. 저랑 같은 메인보드 사용하시는 분들을 위해 사진 올려드리겠습니다.




이게 끝입니다. 인터넷에 보면 다른 엉뚱한 설정들도 해야한다고 나와있는데 그렇지 않습니다. 특히 Lan Boot Rom을 설정하라는 말은 정말 잘못되었습니다. 그건 네트워크 부팅(PXE) 설정하는 것입니다. 그리고 윈도우 장치관리자에서 매직패킷 설정하라고 하는 분들도 계신데 저는 그것도 관련이 없다고 생각합니다. 절전모드에서 필요한 기능일지는 모르겠으나 꺼져있는 컴퓨터를 켜는데 OS 상의 드라이버 설정이 무슨 상관이 있는지 모르겠습니다. 적어도 제 컴퓨터에서는 둘다 Disable 시켜도 컴퓨터가 잘 켜집니다.


5. 마무리

이렇게 설정을 다 하셨다면 이제 외부에서 공유기 관리 화면으로 접속한 다음 WoL 기능을 사용하여 컴퓨터를 켜보세요. 저는 컴퓨터를 꺼놓고 아이폰으로 켜봤는데 잘 되었습니다.


2010년 11월 24일 수요일

원격 데스크톱 사용하기



위 화면이 원격 데스크톱으로 제 서버에 접속한 모습인데요, 파일서버에 따로 모니터랑 키보드를 연결할 필요 없이 이렇게 원격으로만 관리를 해주고 있습니다. 윈도우를 설치할 때만 잠시 모니터, 키보드, 마우스를 연결했었죠. 그 이후로는 모든 관리를 원격으로 하고 있습니다. 서버에는 전원 케이블과 랜선만 연결되어 있는 상태입니다.

원격 데스크톱은 이렇게 외부에서 컴퓨터에 접속할 때 사용하는데, 제가 오래전부터 애용하던 기능입니다. 특히 WOL 기능을 곁들여서 사용하시면 더더욱 효과가 좋습니다. 예를 들어 회사에서 필요할 때 집에 있는 내 컴퓨터에 신호를 보내서 켜지게 만든 다음, 원격 데스크톱으로 접속해서 평소 집에서 하던 작업을 회사에서 할 수 있는 것이지요. (저는 외부 컴퓨터에서 인터넷 뱅킹이나 쇼핑몰 결재를 해야하는 경우 찝찝하기 때문에 이렇게 제 컴퓨터에 접속해서 합니다.)

원격 데스크톱을 활용하시는데는 한가지 제약이 있습니다. 바로 윈도우 홈에디션 이하는 서버가 될 수 없다는 것입니다. 클라이언트는 상관이 없습니다. 하지만 서버는 상관이 있습니다. 즉 만약에 현재 윈도우 7 홈 프리미엄 에디션을 사용중이라면 외부에서 내 컴퓨터에 원격 데스크톱으로 접속할 수 없습니다. 외부에서 원격으로 접속하려면 프로페셔널 이상 에디션이어야 합니다. XP도 마찬가지로 홈 에디션은 안 되고 프로페셔널 버전만 됩니다. (강제로 되게 패치하는 방법도 있기는 있더군요.)


설정 방법은 어렵지 않습니다. 윈도우 XP의 경우 내컴퓨터에 우클릭 하면 속성이 나오는데 클릭하시면 시스템 등록 정보로 들어갈 수 있습니다. 또는 단축키로 Win + Pause 하셔도 되구요, 실행창에 sysdm.cpl 입력하셔도 됩니다.



윈도우 7의 경우도 마찬가지로 시작 메뉴에 있는 컴퓨터에 우클릭 해서 속성 누른 다음 왼쪽에 있는 고급 시스템 설정으로 들어가시면 됩니다. 또는 시작 메뉴 검색창에 sysdm.cpl 입력하셔도 되구요, 검색창에 고급 이라고 입력해도 고급 시스템 설정 보기가 등장합니다.



그런데 윈도우 7의 경우 XP와 달리 보안 수준 선택이 가능하죠? 저는 보안에 둔감한 사람인지라 그냥 저렇게 해서 사용하는데, 만약 "네트워크 수준 인증을 사용하여..." 부분을 선택하시게 되면 비스타 이상에서는 접속이 되지만 XP에서는 접속을 못합니다. XP에서는 기본적으로 네트워크 수준 인증을 지원하지 않기 때문입니다. 따라서 이 경우 레지스트리 수정을 해줘야 하는데요, 저는 외부에서 XP로 접속하는 경우도 많은데 그때마다 레지스트리를 수정할 수는 없잖아요. 그래서 그냥 "모든 버전의 원격 데스크톱을..." 이 부분으로 설정해서 사용하고 있습니다.


이대로 끝인가? 물론 아닙니다. 몇가지 사항이 더 있어요. 일단 저기 보시면 아래쪽에 사용자 선택 버튼이 있는데, 기본적으로 관리자 그룹에 속한 계정이라면 따로 설정할 필요가 없습니다. 하지만 표준 사용자 계정이라면 추가를 해야 합니다. 윈도우를 설치할 때 마지막 화면에서 만든 계정이라면 자동으로 관리자 그룹에 속해있기 때문에 별 걱정 안 하셔도 됩니다. XP 역시 대부분 Administrator 계정을 사용하실 테니 걱정하지 않으셔도 됩니다.


다음은 암호 문제가 있습니다. 반드시 계정에 암호가 있어야 접속을 할 수 있습니다. 윈도우 설치할 때 귀찮아서 암호를 설정하지 않으셨던 분들은 일단 암호를 만드셔야 합니다. XP 역시 무인설치 버전이라면 암호가 없는 상태일 것인데, 제어판에 있는 사용자 계정에 들어가서 암호를 생성해줘야 합니다.




그런데 이렇게 암호를 생성하고 나면 한가지 불편한 점이 있습니다. 바로 매번 윈도우에 로그인 할 때마다 암호를 입력해줘야 한다는 것이죠. 그게 귀찮은 경우 아래와 같이 설정하시면 됩니다.

XP의 경우 시작 - 실행 하시고 control userpasswords2 입력하세요.
비스타나 세븐의 경우 시작메뉴 검색창에 netplwiz 입력하시는게 더 짧아서 편리합니다. ^^

그러면 창이 하나 뜨는데 체크 풀고 확인 누른다음 암호를 두번 입력해주시면 더이상 윈도우 진입시 귀찮게 암호를 물어보지 않습니다.




마지막으로 한가지 더 있습니다. 바로 포트 개방 문제입니다. 공유기를 사용하지 않는 경우라면 상관이 없는데 공유기를 사용한다면 DMZ, 트윈IP, 포트포워딩 중에 한가지를 선택해야 합니다. 보안상 포트포워딩을 설정하는 편이 좋기는 하겠지요. 원격 데스크톱은 3389번 포트를 사용합니다. 따라서 공유기를 사용하는 경우 이 포트를 열어줘야 외부에서 접속할 수 있습니다. 집에서 홈 네트워크끼리 접속하는 것은 문제가 없는데, 집 밖에서 공유기를 거쳐서 내 컴퓨터에 접속하려면 포트 개방이 필요하다는 것입니다.


혹시나 해서 말씀드리는데, 위 그림에 나온 토런트 포트는 무시해주세요. 원래 uTorrent는 UPnP와 NAT-PMP 맵핑 기능이 있습니다. 즉 따로 포트를 개방해주지 않아도 정상 작동합니다. 저 설정은 개인적으로 다른 이유가 있기 때문에 해둔 것이니 오해 없으시기 바랍니다.


이 3389번 포트를 다른 숫자로 변경하는 방법도 있는데 (보안상 변경하고 싶다면) 아래 MS 기술 자료를 참조하시면 됩니다. 레지스트리에서 간단히 변경 가능합니다. XP 기준으로 설명되어 있지만 윈도우 7에서도 동일하게 적용됩니다.

원격 데스크톱의 수신 대기 포트를 변경하는 방법

공유기를 사용하는 경우라면 굳이 레지스트리를 편집할 필요가 없겠지요? 공유기는 포트포워딩에서 간단히 외부 포트만 바꿔주시면 되겠습니다. 예를 들어 3389 대신에 2580 포트를 사용해서 접속하고 싶다면 아래 그림처럼 설정하시면 되겠지요.



단 포트를 변경한 경우라면 외부에서 접속할 때 자신의 컴퓨터 IP 주소 뒤에다가 :포트 를 붙여주셔야 합니다.



제가 정작 외부에서 어떻게 접속하는지는 설명을 안 드렸는데, 위 스샷에 나와있듯이 IP 주소를 입력해서 접속하시면 됩니다. 자신의 IP 주소가 뭔지 모르신다면... 공유기를 사용하지 않는 경우 그냥 명령 프롬프트를 띄운 다음 ipconfig 입력하시면 바로 확인이 가능합니다. 공유기를 사용하는 경우라면 아래 그림처럼 공유기 관리 화면에 외부 IP 주소가 나오구요.



아니면 그냥 아래 사이트 같은 곳에 접속해보셔도 됩니다. 그러면 바로 자신의 외부 IP 주소가 나옵니다.

http://www.findip.kr/


이상으로 원격 데스크톱 사용하기 글을 마치겠습니다.

2010년 9월 29일 수요일

Batch File 작성법

도움말 활용하기

일단 잘 모르는 명령어가 있다면 도움말을 통해 기능을 익혀야겠지요. 사실 저는 이 배치파일을 거의 도움말을 통해 혼자서 익혔습니다. 예전에 어떤 분이 댓글로 저보고 배치파일을 진짜 잘 짠다고 하셨는데, 저도 어차피 도움말 보면서 익힌 것이니까 누구든지 도움말을 잘 이해하면 충분히 훌륭한 배치파일을 만들 수 있다고 생각합니다. 그런데 경우에 따라 도움말이 별로 친절하지 않을 수도 있습니다. 하지만 처음에는 이해되지 않던 말들도 시간이 지나고 경험이 쌓이면 나중에 다시 봤을 때 이해되는 경우가 많습니다. 예전에는 제가 FOR 구문의 대체 변수 참조 확장을 잘 이해하지 못했는데, 최근에는 잘 이해하게 되었습니다. 여러분도 이 도움말을 적극적으로 활용해보세요.

일반적으로 해당 명령어 뒤에 /? 를 붙이면 도움말이 나옵니다. 예를 들어 FOR 반복문의 사용법이 궁금하다면 FOR /? 해보면 되겠지요. 또는 HELP FOR 하셔도 동일한 결과를 얻을 수 있습니다. 그런데 도움말이 길면 스크롤 압박이 있으니 이 경우 도움말을 텍스트 파일로 저장해서 보셔도 되겠습니다. 뒤에 > 파일.txt 적어주시면 출력 결과를 텍스트 파일로 저장해줍니다.

예제)
FOR /? > "FOR 사용법.TXT"



ECHO

ECHO는 글자 그대로 메아리를 뜻하는데, 화면에 메시지를 그대로 출력해줍니다. 배치파일에선 사용자에게 뭔가 설명해줘야 하는 부분이 많은데 이럴 때 ECHO를 활용합니다. 주로 SET, IF, GOTO 등과 결합해서 메뉴를 보여줄 때 많이 사용하지요.
 
예제)
ECHO 저는 에코입니다. 화면에 메시지를 보여주기 위해 사용되지요.

그런데 보통 배치파일 첫 줄에는 @ECHO OFF를 많이 적어줍니다. 만약 @ECHO OFF를 적어주지 않으면 각 명령줄을 화면에 그대로 한번 출력을 해주고 실행을 하기 때문에 화면이 많이 지저분해집니다. 그래서 보통은 배치파일의 첫 줄에서 ECHO를 OFF 시켜줍니다.

이 ECHO 명령어 역시 출력 결과를 텍스트파일로 저장할 수 있습니다. (리디렉션은 거의 모든 경우에 사용할 수 있습니다.) 예를 들어 DISKPART를 사용하는 경우 배치파일에선 DISKPART 다음줄부터 작동하지 않는데요, 이럴 때는 DISKPART 다음줄부터 사용될 명령어를 스크립트로 저장한 다음 DISKPART /S 스크립트 이렇게 사용해야 합니다.

예제)
@echo off
pushd %~dp0
echo create vdisk file=d:\test.vhd type=expandable maximum=20480 > test.txt
echo attach vdisk >> test.txt
echo create partition primary  >> test.txt
echo format quick fs=ntfs >> test.txt
echo assign letter >> test.txt
echo exit >> test.txt
diskpart /s test.txt
exit


위 예제가 무슨 소린지 아직은 잘 이해되지 않을 수도 있는데, 아무튼 echo와 리디렉션을 활용하여 텍스트파일로 출력하는게 가능하기 때문에 배치파일 안에서 이렇게 새로운 배치파일이나 스크립트를 echo만을 사용하여 작성할 수 있습니다. 위 예제는 윈도우 7에서 D 드라이브에 TEST.VHD 파일을 자동으로 생성하는 기능을 합니다.


※ ESCAPE 문자
제가 한가지 빠트려서 보충합니다. echo로 리디렉션을 할때 만약에 >> 기호 역시도 echo의 일부분으로 포함시키고 싶다면 어떻게 해야 할까요? 예를 들어

echo dir /b >> list.txt >> test.txt

위 구문을 실행하면 test.txt에 dir /b 부분만 들어갑니다. 넣고싶은 문자열은 dir /b >> list.txt 인데 말이죠. 이런 경우 앞서 나온 >> 문자열을 리디렉션이 아니라고 Escape 시킬 필요가 있습니다. 이때는 caret 문자 ^ 를 붙여주면 됩니다. 그러니까 위 예제를 결과값이 의도대로 나오게 고치려면

echo dir /b ^>^> list.txt >> test.txt



PUSHD %~DP0

이것 역시 제가 배치파일 초반에 항상 적어주는데요, 그 이유는 윈도우 7 때문입니다. 윈도우 7에선 특이하게도 UAC가 켜져있는 환경에서 배치파일을 관리자 권한으로 실행하는 경우 명령 프롬프트 위치가 C:\Windows\System32 기준으로 실행됩니다. 이게 왜 문제가 되냐하면 보통은 배치파일과 함께 같은 위치에 첨부 파일을 두고 다른 곳으로 복사해주는 명령어를 쓰거나 아니면 그 첨부파일을 실행하는 경우가 많은데, 이렇게 명령 프롬프트 위치가 변경되어 버리면 복사할 파일이나 실행할 파일의 절대경로를 적어야 합니다. 그런데 배치파일은 어느 위치에서 실행될지 아무도 모르죠. 따라서 복사할 파일의 절대경로도 그때그때 달라지게 됩니다. 물론 각 파일 경로 앞에 %~DP0를 일일이 붙여주면 되지만 그건 너무 귀찮은 일입니다. 따라서 이렇게 명령 프롬프트 위치를 배치파일이 있는 디렉터리로 되돌려주는게 훨씬 편합니다.

그런데 %~DP0의 의미가 궁금하실 것 같습니다. 이게 바로 FOR 구문의 대체 변수 참조 확장입니다. 자세한 내용은 FOR /? 입력해서 확인해보시구요, 저는 간단히 예제를 통해 설명드리겠습니다.

배치파일에서 %0는 그 배치파일의 전체 경로를 지칭합니다. %0 사이에 들어있는 ~dp는 %변수를 드라이브 문자와 경로로만 확장해줍니다. 예를 들어 제 컴퓨터 바탕화면에 예제.cmd 파일이 있는 경우

%0

“C:\Users\snoopy\Desktop\예제.cmd”

%~0

C:\Users\snoopy\Desktop\예제.cmd

%~d0

C:

%~p0

\Users\snoopy\Desktop\

%~n0

예제

%~x0

.cmd

%~dp0

C:\Users\snoopy\Desktop\


따라서 pushd %~dp0 라고 적으면 명령 프롬프트가 배치파일이 존재하는 위치로 돌아오게 됩니다. 이제 응용력이 뛰어나신 분들은 이런 생각을 하실 것 같습니다. "그렇다면 %~dpnx0 와 %~0 는 같은 값을 나타내겠군!" 네 그렇습니다. %~ 확장은 이처럼 한꺼번에 섞어서 사용해도 됩니다.



TITLE

이건 별로 중요하지 않은데, 배치파일을 실행했을 때 콘솔창에 표시되는 창 제목을 지정합니다. 원래 아무것도 지정하지 않으면 제목이 C:\Windows\System32\cmd.exe 인데, 이 부분을 변경하는 것입니다.

예제)
title 아이폰 4 AVI, MKV 동영상 자동 변환기




MODE

이것도 별로 중요하지는 않은데, 배치파일에선 콘솔창 크기를 지정하는 용도로 사용할 수 있습니다.

예제)
mode con cols=40 lines=11





COLOR

콘솔창의 화면 색을 지정할 수 있습니다. 저는 까만 바탕에 흰 글씨가 마음에 들지만 예를 들어 파란 바탕에 흰 글씨로 지정할 수도 있겠지요.

   0 = 검정색       8 = 회색
   1 = 파랑색       9 = 연한 파랑색
   2 = 초록색       A = 연한 초록색
   3 = 옥색         B = 연한 옥색
   4 = 빨강색       C = 연한 빨강색
   5 = 자주색       D = 연한 자주색
   6 = 노랑색       E = 연한 노랑색
   7 = 흰색         F = 밝은 흰색

첫째 자리는 배경색이고 둘째 자리는 문자색입니다.

예제)
color 1F





CLS

화면을 깨끗하게 비웁니다. Clear Screen의 약자인데 보통 새로 메뉴를 출력해주는 경우 기존에 보이던 결과물 때문에 지저분하니까 CLS를 적어줍니다.



PAUSE

이것도 주로 안내문을 보여준 다음 적어줍니다. 일시정지 시켜둬야 사람들이 안내문을 읽어볼 수 있으니까요. 아무 키나 누르면 다음 명령어로 넘어갑니다. 저는 보통 배치파일을 작성하면서 중간중간에 PAUSE를 걸어넣고 파일을 실행해봅니다. 여기까지 오류없이 잘 작성되었는지 테스트 해보기 위함이죠.



IF, IF NOT, IF EXIST, IF ERRORLEVEL, ELSE

지금부터가 진짜 배치파일입니다. 위에서 다뤘던 내용들은 그냥 준비운동 정도였고 배치파일에서 가장 많이 사용되는 (저만 가장 많이 사용하는지도 모르지만 ;;;) 구문이 바로 IF, FOR, SET 입니다. 이 3가지 구문이 배치파일의 꽃이라고 저는 생각합니다. 특히 저는 FOR 반복문을 매우 자주 사용하는 편인데, FOR 구문을 잘 활용하시면 "감히 배치파일로 이게 가능한가?" 생각했던 기능들도 훌륭히 만들어낼 수 있습니다.

IF는 말 그대로 "~인지 아닌지" 를 판단합니다. 만약 조건이 참이면 그 뒤에 나오는 명령어를 수행하고 참이 아니면 다음 줄로 넘어갑니다.

IF 문자열1==문자열2 명령어

예제)
set A=snoopy
if %A%==snoopy echo %A%는 snoopy와 같습니다.
set B=snoopybox
if %B%==snoopy echo %B%는 snoopy와 같습니다.


위 예제에서 첫번째 IF 구문은 조건이 참이기 때문에 "snoopy는 snoopy와 같습니다." 문구를 출력해줍니다. 하지만 두번째 IF 구문은 조건이 거짓이기 때문에 그 뒤에 나오는 echo 명령어는 무시됩니다.

IF 뒤에 /i 를 붙이시면 대소문자를 구분하지 않습니다. 이게 윈도우에선 IF 도움말에 잘못 표기되어 있네요. /i를 붙이면 대소문자 구분이 없고, 안 붙이면 대소문자를 구분합니다. 도움말에는 반대로 나와 있습니다.


숫자 비교에는 아래 비교연산자들이 사용됩니다.

    EQU - 같음
    NEQ - 같지 않음
    LSS - 보다 작은
    LEQ - 작거나 같음
    GTR - 보다 큰
    GEQ - 크거나 같음

예제)
if 5 equ 5 echo 5는 5와 같습니다.
if 5 neq 5 echo 5는 5와 같지 않습니다.
if 5 lss 5 echo 5는 5보다 작습니다.
if 5 leq 5 echo 5는 5보다 작거나 같습니다.
if 5 gtr 5 echo 5는 5보다 큽니다.
if 5 geq 5 echo 5는 5보다 크거나 같습니다.


위 예제에서는 1, 4, 6번째 줄만 참이기 때문에 뒤에 있는 echo가 출력되겠지요? 대충 저렇게 쓴다는 것만 알고 다음으로 넘어갑니다.


IF NOT은 IF와 반대로 생각하면 됩니다. 뒤에 나온 조건이 거짓인 경우에 IF NOT은 참이 되기 때문에 명령을 실행하게 됩니다.

예제)
if not snoopy==snoopy echo 과연 이 메시지가 출력될까?

위 예제를 실행하면 echo 다음에 나오는 메시지가 출력되지 않습니다. IF NOT이니까요. 하지만 만약에 if not snoopy==snoopybox 했다면 뒤에 나오는 명령어는 출력이 되었겠지요?


IF EXIST는 지정한 파일, 폴더가 존재하면 조건을 참으로 받아줍니다. 대략 아래와 같은 예를 만들어 보겠습니다.

예제)
if exist %windir%\syswow64 echo 이 윈도우는 64비트입니다.
if not exist %windir%\syswow64 echo 이 윈도우는 64비트가 아닙니다.


위 예제를 실행하면 64비트 윈도우인 경우 첫번째 echo 구문만 출력될 것이고, 32비트 윈도우인 경우 두번째 echo 구문만 출력될 것입니다. 마찬가지로 IF EXIST 구문도 IF NOT EXIST로 활용할 수 있습니다.


IF ERRORLEVEL 역시 제가 자주 사용하는 구문인데 마지막으로 실행된 프로그램의 종료코드가 무엇인지를 가지고 조건을 판단합니다. 일반적으로 아무런 오류가 없이 잘 실행된 경우에는 종료코드가 0입니다. 오류가 발생하면 종료코드는 1 이상입니다. IF ERRORLEVEL 1  하시면 종료코드가 1보다 크거나 같은 경우 참으로 인식합니다.

예제)
ren C:\Windows WindowsXP
if errorlevel 1 echo 윈도우 폴더는 이름을 변경할 수 없어요.


위 예제에서 첫번째 줄에 Windows 폴더 이름을 WindowsXP로 변경하라고 합니다. 말이 안 되죠? 당연히 오류가 발생할 수 밖에 없습니다. 따라서 두번째 줄에 있는 IF ERRORLEVEL 1 구문은 바로 위에서 오류가 발생했기 때문에 값이 참으로 지정되어 echo 뒤에 나오는 문구를 출력해줍니다.


ELSE는 IF랑 묶어서 사용하는데 여기서부터는 괄호를 사용하겠습니다. 이 괄호를 보기좋게 잘 써야 프로그램을 체계적으로 짤 수 있고, 나중에 자기가 봐도 흐름이 한 눈에 보입니다. 위에서 예를 들었던 윈도우 64비트 판별을 ELSE로 표현해보자면

예제)
if exist %windir%\syswow64 (
          echo 이 윈도우는 64비트입니다.
) else (
          echo 이 윈도우는 64비트가 아닙니다.
)


그러니까 ELSE는 IF 조건이 거짓인 경우 실행됩니다. IF가 옳으면 IF 구문 뒤에 있는 명령어가 실행되고, 그게 아니면 ELSE 뒤에 있는 명령어가 실행됩니다. 둘중에 하나만 무조건 실행되게 만드는 양자택일 구문이라 보시면 됩니다.


여기까지 대충 IF 구문에 대해 알아봤는데요 실전 예제 몇가지를 소개해봅니다. 아래는 제가 아이폰 4 AVI, MKV 동영상을 MP4로 한방에 변환하기 글에서 사용한 SRT 자막 통합 스크립트입니다.


예제)
set list=자막 통합에 실패한 파일 목록.txt
if exist *.srt (
     if not exist temp md temp
     for %%a in (*.srt) do (
          if exist "%%~na.mp4" (
               Tools\mediainfo "%%~na.mp4" > temp\temp1.txt
               findstr /c:"Codec ID                         : tx3g" temp\temp1.txt > nul
               if errorlevel 1 (
                    Tools\mp4box -add "%%a":lang=ko:hdlr=sbtl "%%~na.mp4"
                    if errorlevel 1 echo %%~na.mp4 >> "%list%"
               ) else (
                   Tools\mp4box -add "%%~na.mp4"#video -add "%%~na.mp4"#audio -add "%%a":lang=ko:hdlr=sbtl "%%~na-new.mp4"
                   if errorlevel 1 echo %%~na.mp4 >> "%list%"
              )
         )
    )
)



list 라는 변수에 "자막 통합에 실패한 파일 목록.txt" 문자열을 할당하라
현 위치에 확장자 SRT 파일이 존재하면 (
     TEMP 폴더가 없다면 TEMP 폴더를 만들어라
     모든 SRT 파일에 대하여 다음 반복문을 실행하라 (
          만약 SRT 파일과 동일한 이름의 MP4 파일이 존재한다면 (
               미디어인포 프로그램으로 MP4 파일의 정보를 TEMP 폴더의 TEMP1.TXT 파일로 저장하라
               TEMP 폴더의 TEMP1.TXT 파일에서 Codec ID : tx3g 문구가 있는지 찾아봐라
               만약 이 문구가 없다면 (
                    기존에 있던 MP4 파일에 자막만 통합하라
                    만약 자막 통합시 오류가 발생했다면 MP4 파일 이름을 LIST 파일에 저장하라
               ) 만약 이 문구가 있다면 (
                    기존 MP4 파일에서 영상과 음성을 추출하고 자막을 통합하여 새로운 MP4 파일을 만들라
                    만약 자막 통합시 오류가 발생했다면 MP4 파일 이름을 LIST 파일에 저장하라
               )
          )
     )
)


말로 설명하려니 좀 지저분한데 아무튼 위 예제에는 IF, IF NOT, IF EXIST, IF ERRORLEVEL, ELSE 모두 다 적절히 잘 활용되어 있습니다.

한가지 예를 더 들어보겠습니다. 한글, 영어, 통합 자막 이렇게 3가지 자막을 통합하려 한다면 경우의 수는 8가지가 나오겠지요. 그런데 한글 자막은 무조건 존재하고, 통합한다고 가정하면 4가지 경우가 발생합니다.

한글

영어

통합

O

O

O

O

O

X

O

X

O

O

X

X



if exist 한글 (
          if exist 영어 (
                    if exist 통합 (
                              한글, 영어, 통합 모두 있는 경우 명령어
                    ) else (
                              한글, 영어만 있는 경우 명령어
                    )
          ) else (
                   if exist 통합 (
                              한글, 통합만 있는 경우 명령어
                   ) else (
                              한글만 있는 경우 명령어
                   )
          )
)


이정도면 IF 구문에 대해서는 충분히 설명을 했다고 생각되는데 어떠실지 모르겠네요. 프로그램을 작성하는 데 있어서 가장 중요한 것은 역시 논리적 사고라 생각합니다. 일단 논리적으로 설계도만 잘 짜면 코딩은 껍데기에 불과하다고 봅니다. 위 예는 아주 간단한 배치파일에 불과하지만 엄청 큰 규모의 프로그램을 작성하려면 설계도부터 체계적으로 잘 짜야겠지요.



FOR

FOR 구문은 여기서 따로 다루지 않겠습니다. 지난번에 작성했던 글을 참조하세요.
2010/08/28 - [윈도우 일반] - FOR 구문 기초 사용법

Perl 스크립트에는 FOR, FOREACH, WHILE 반복문이 있던데, 배치파일에는 FOR 반복문밖에 없고 사용법도 조금 제한적이라 아쉽기는 합니다. 하지만 그래도 저는 FOR 구문이 배치파일의 꽃중의 꽃이라 생각합니다. 꼭 잘 익혀두셔서 능숙하게 다루실 수 있기를 빌겠습니다.



SET

SET에 대해서는 사실 프로그래밍 언어를 좀 알아야 개념을 이해하는데 도움이 되는데, 뭐 저도 프로그래밍 언어는 모르니까 딱 제가 이해하는 수준 정도로만 설명을 드리겠습니다.

SET 변수=문자열

일단 이게 기본입니다. 왼쪽에는 변수 이름을 적어주고 오른쪽에는 변수의 값을 적어줍니다. 그리고 배치파일에서 변수를 호출할 때는 양쪽에 %를 붙여주시면 됩니다.

예제)
set A=snoopy
echo %A%


위 예제를 실행하면 화면에 snoopy를 출력해줍니다. A 라는 변수에 snoopy라는 문자열이 값으로 지정되었기 때문입니다. 이때 변수는 대문자와 소문자를 구분합니다. 즉 A와 a는 다른 변수입니다.

SET /A 변수=수식

변수에 숫자를 할당할 때는 그냥 할당하면 되지만, 수식의 계산 결과를 할당하려면 /A 옵션을 붙여야 합니다.

예제)
set B=5
set /a B=B+3
echo %B%


위 예제의 결과값은 8이 나오겠지요? 참고로 연산식은 아래와 같이 좀 더 간단히 표현할 수 있는데

    = *= /= %= += -=    - 할당

예를 들어 위에 있는 set /a B=B+3 대신에 set /a B+=3 이렇게도 쓸 수 있습니다.
좀 더 예를 들어 설명드리는게 이해가 쉽겠네요.

B는 5라고 가정하고 아래 예제는 각각

set /a B+=3          =>   B에 3을 더해서 새로운 B 값을 할당          => 8
set /a B-=3          =>   B에 3을 빼서 새로운 B 값을 할당          => 2
set /a B*=3          =>   B에 3을 곱해서 새로운 B 값을 할당          => 15
set /a B/=3          =>   B를 3으로 나눈 몫을 새로운 B 값에 할당          => 1
set /a B%=3         =>   B를 3으로 나눈 나머지를 새로운 B 값에 할당          => 2


아래 예제의 결과물을 예측해보세요.

예제)
set i=0
for /l %%a in (1,1,100) do (
     set /a i += %%a
)
echo %i%
pause
exit


정답은

더보기

펼쳐두기..



다음은 메뉴 고르기에 많이 사용되는 SET /P 구문입니다. /p를 붙이면 프롬프트 상에서 사용자에게 입력값을 받는데요, C 언어의 scanf 함수와 비슷하다 볼 수 있습니다. 다음 예제를 배치파일로 실행해보면 이해가 바로 될 겁니다.

예제)
@echo off
set /p age=당신의 나이를 입력해주세요 :
echo 당신의 나이는 %age% 입니다.
pause
exit



변수 확장에 관한 이야기도 있는데 이건 제가 별로 사용하지 않아서... 대략 예를 하나만 들어보겠습니다.

예제)
@echo off
set snoopy=스누피는 컴퓨터를 좋아합니다.
set snoopy=%snoopy:~-10%
echo %snoopy%


위 예제를 실행하면 "퓨터를 좋아합니다." 문자만 출력됩니다. ~-10 이게 "뒤에서 10개의 문자만" 추출하는건데 아무튼 이 확장에 대해서는 그냥 각자 도움말을 참조하여 공부하세요.



SETLOCAL

이놈은 위 SET 명령어와 같이 활용해야 하는데 저는 잘 쓰지 않습니다. 그런데 이게 필요한 경우가 있습니다. 그것은 바로

SETLOCAL ENABLEDELAYEDEXPANSION

이녀석은 제가 가끔 FOR 구문에서 사용하는데 사실 저도 100% 완벽히 이해한 것은 아닙니다. 일단 아래 예를 한번 보세요.

예제)
for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
     set b=%%a
     echo %b%
)


얼핏 생각하기에 위 예제는 작동할 것 같은데요, 사실은 작동하지 않습니다. 첫 명령어에서 b 변수에 C: 문자열이 할당되니까 C: 를 출력해주고, 그 다음엔 다시 b에 D: 문자열이 할당되어서 D: 문자열을 출력해주고... 이걸 Z: 출력까지 반복할 것 같지만 이상하게도 위 구문은 실행되지 않습니다.

위 예제가 의도대로 구동되도록 하려면 아래와 같이 바꿔야 합니다.

SETLOCAL ENABLEDELAYEDEXPANSION

for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
     set b=%%a
     echo !b!
)


그러니까 SETLOCAL ENABLEDELAYEDEXPANSION을 설정한 다음 %b% 대신 !b!를 사용해야 합니다. 자세한 개념은 저도 설명을 못 하니 그냥 그렇다고만 알아두세요. 제가 대충 이해하기로는 이렇습니다. 저렇게 FOR 이나 IF에서 괄호를 사용해 아래쪽에 명령줄을 여러개 써넣어도 사실은 이게 한줄짜리 명령어인데, 명령어를 읽어들이는 과정과 명령어를 실행하는 과정 사이에 발생하는 시차 때문에 이런 문제가 생깁니다. b라는 변수에는 아무런 값도 할당되지 않은 상태인데 그상태로 명령어가 입력되기 때문에, 저 반복문에서는 "echo 설정되어있지 않은 변수" 이걸 반복하게 되는거죠. set으로 %%a 값을 b에 넣어주는건 시간적으로 그 다음에 일어나는 일이구요. 그래서 SETLOCAL ENABLEDELAYEDEXPANSION 옵션이 존재합니다. 아무튼 % 대신 ! 쓴다는거 알아두세요.



GOTO

이것도 많이 쓰이는데 사용법이 어렵지 않아서 간단히 다룹니다. GOTO 뒤에는 레이블을 적어주시면 그리로 이동하는데 레이블은 콜론으로 시작합니다.

예제)
:menu
cls
echo.
echo 1. 저는 남자입니다.
echo 2. 저는 여자입니다.
echo.
set /p menu= 번호를 선택해주세요 :
if "%menu%"=="1" goto male
if "%menu%"=="2" goto female
goto menu

:male
cls
echo.
echo 당신은 남자입니다.
echo.
pause
exit

:female
cls
echo.
echo 당신은 여자입니다.
echo.
pause
exit


위 예에서 set /p menu 값에 1을 입력하면 male 부분으로 이동하고 2를 입력하면 female 부분으로 이동합니다. 1,2가 아닌 엉뚱한 값을 입력하면 menu 부분으로 다시 이동합니다. GOTO는 어렵지 않죠?

그리고 제가 exit를 썼는데 :EOF를 쓰기도 합니다. GOTO :EOF라고 적어주면 exit와 같은 효과를 얻을 수 있습니다. 따로 :EOF 레이블을 만들어줄 필요는 없습니다.



실전 예제 고스트 자동 복구 DVD

지금까지 지루한 내용을 꾹 참고 다 읽어오신 분이라면 (FOR 구문까지) 이제 웬만한 배치파일은 작성하실 수 있을 것 같은데, 그래도 이게 눈으로 보는 것과 직접 실습하는 것은 많이 다릅니다. 컴퓨터 뿐 아니라 공부나 다른 일도 마찬가지인데, 직접 몸으로 느껴봐야 진짜 나만의 지식이 될 수 있습니다.

일단 이 글을 작성한 이유가 고스트 자동 복구 DVD 만들기 글에서 배치파일 소스를 알려달라는 분들이 많았기 때문인데요, 저 글에 나온 배치파일은 이 글에서 설명한 어려운 구문들이 거의 들어가지 않습니다. 정말 쉽고 간단한 구문으로만 이루어져 있습니다. 그런데 당시 작성했던 스크립트를 다 쓰려면 좀 길어지기 때문에 메뉴를 단순화 해서 4가지만 적어보겠습니다.

@echo off
pushd %~dp0
for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
          if exist %%a\sources\backup.gho set DVD=%%a
)

:_main
cls
echo.
echo.
echo.
echo          1. 고스트 수동으로 작업하기
echo.
echo          2. 첫번째 하드의 첫번째 파티션에 복원하기
echo.
echo          3. 명령 프롬프트 띄우기
echo.
echo          4. 파티션 위저드 실행하기
echo.
echo.
echo.
set /p menu=번호를 입력해주세요 :
if "%menu%"=="1" goto _ghost
if "%menu%"=="2" goto _restore
if "%menu%"=="3" goto _cmd
if "%menu%"=="4" goto _pwhe
goto _main

:_ghost
X:\ghost32
goto _main

:_restore
X:\ghost32 -clone,mode=pload,src=%DVD%\sources\backup.gho:1,dst=1:1 -auto -sure -rb -noide -fnf
exit

:_cmd
start cmd
goto _main

:_pwhe
X:\pwhe
goto _main




어떤가요? 이 글에서 설명한 복잡한 내용은 하나도 없고 완전 단순하죠? 위 예제를 응용해서 나만의 고스트 자동 복구 DVD를 만드시면 되겠습니다.


2010년 9월 3일 금요일

트루이미지 2010 (영문판) 사용방법

사 용 법]

1.디스크 백업 클릭
164D2A234BBECBFB2CD1E4




2, C 드라이브를 백업해야 겠지요? ...........^^"
194D2A234BBECBFC2EA161




3. 새로운 백업 아카이브 선택 (기존에 백업한게 있다면 (덮어쓰기)아래쪽을 선택하면 됩니다.)
114D2A234BBECBFD2FE394




4. 백업 할 곳은 이왕이면 C 드라이브를 피해서 하기를 권합니다.
  말 그대로 시스템이 잘 못 됐을 경우를 대비해서 백업하는 것이니, 시스템 파일과 다른 드라이브에 해야 합니다.
   전 , F 에 별도의 파티션을 나워서 백업폴더를 따로 만들었습니다.
114D2A234BBECBFE30AB90


124D2A234BBECBFE316258





5. 좌측 메뉴의 옵션의 스케출링 을 클릭합니다.  그리고, 예약 안함에 체크
144D2A234BBECBFF32DEDC





6. 요기가 중요한 곳인데... C 드라이브는 중요한 시스템 파일이 잇는 곳이고, 시스템 파일중에는 숨김파일도 있습니다.
   하단에 선택란에 Check 를 하게 되면 시스템 파일이나, 숨김 파일은 백업에서 제외시키기 때문에 백업후
    윈도우가 제대로 안 돌아갈수 있습니다. ==> Check 해제

124D2A234BBECC003336AD





7. 그냥 넘 어갑니다.
144D2A234BBECC013499E9





8. 태스크 이름과 주석 다는 곳입니다.
   자신이 알수 있게 세부 내용을 적어 두는게 나중에 좋을 것입니다.

  전 백업날짜의 제목으로 해서 주석에는  설치되어 있는 프로그램 이름과 제 노트북에 필요한  필수 드라이브가
  설치 되었는지 여부 , 그외 간단한 정보를 적어 두었습니다.
154D2A234BBECC0135A21F




설정이 다 되었으면, proceed 을 눌러서 진행 합니다.


-------------------------------------------------------------------------------

백업후  복구방법을 간단히 설명하면,......

음....아래 사진처럼 하면 복구 됩니다......ㅋ^^:"
복구를 클릭하게 되면 한번 리부팅이 되고, 복구가 계속 이어 집니다....

182ED21F4BBED2575126D0




기본적으로 백업은 나중에 PC 가 맛탱이가 갔을때를 대비해서 하는것이니,

가능하면
 
윈도우 포맷후 클린 설치 후 자신에게 필요한 필수 유틸 몇 개만 깔린 상태에서 백업

하기를 권 해 드립니다.

글작성자 : tadlee

2010년 8월 29일 일요일

비밀번호 잊었을떄...

비밀번호(Password) 때문에 부팅이...

 자주 경험할 수 있는 문제는 아니지만, 컴퓨터를 사용하다 보면 자신이 설정한 비밀번호를 잊거나 패스워드 설정시 실수 등으로 부팅을 못하는 난처한 경우를 경험하기도 합니다. 상상만해도 환장할 노릇이죠? ^^;;; 이런 경우 이런 난관을 간단하게 극복할 수 있는 방법을 소개할까 합니다.
 예전에 유사한 내용을 포스팅한 적이 있는데요. 당시에는 다른 분께서 제작한 PE 파일을 통한 방법으로 소개했었죠? 그런데 시드가 유지되지 못하는 문제도 있고, 관련 자료를 저도 소장하고 있지 않다보니 요청하셔도 도와드릴 수 없는 경우가 발생하더군요.


 그래서 이런 부분을 고려해서 Offline NT Password & Registry Editor 라는 유틸을 이용한 방법을 알려드리는데요. 이 방법은 'XP, 비스타, 윈도우7' 모두 적용 가능합니다.

비밀번호(Password) 초기화 하기

> 출처 : http://pogostick.net/~pnh/ntpasswd/
 
 위 압축파일을 다운로드 받아서 해제하면 cd100627.iso 파일이 있을 겁니다. 눈치채신 분도 있겠지만 이런 류의 유틸은 CD, 플로피디스크 등에 구워서 이용해야 하는데요. ISO 이미지 파일을 굽는 방법은 다들 아실테니 여기서는 생략할게요.
 CD 에 구웠다면 CMOS 에서 부팅 순위를 CD롬이 1순위가 되게 수정한 후 부팅을 하시면 됩니다. 이제 Offline NT Password & Registry Editor 사용 방법을 소개할게요.

▼ 부팅을 하면 아래와 같이 표시가 됩니다. [Boot :] 라는 프롬프트에서 그냥 엔터(Enter)키를 눌러주세요.



▼ 여기서는 조금 주의하셔야 합니다. ①번 항목에서 윈도우가 설치된 파티션을 선택해야 하는데요.


 윈도우7 에서는 별다른 설정 없이 설치시 100MB 의 예약파티션이 생성되는거 아시죠? 이 점을 참고하고 용량을 잘 확인해서 파티션을 선택해 주셔야 합니다. 위 이미지에서는 예약파티션이 있는 상태인지라 2번 파티션을 선택한 겁니다. 파티션을 선택하면 ②번 항목처럼 SAM 디렉토리를 설정하라고 하는데요. 그냥 엔터를 누르셔도 무방합니다.

▼ 파티션과 SAM 디렉토리 선택이 완료되면, 해당 파티션에 대해 어떤 작업을 할지 선택합니다. 아래 표시한 부분을 보시면 1번 메뉴에 패스워드를 리셋한다는 문구가 있죠? 이 메뉴(1번)를 선택하시면 됩니다.



▼ 그 후 SAM 데이터가 로딩되면 다시 Edit user data and passwords 메뉴, 즉 1번을 선택하세요. 그럼 운영체제에 등록된 사용자 계정이 표시 되는데요.


 위에서 밑줄친 LiveREX 계정 보이시죠? 현재 제가 패스워드를 초기화하고 싶은 계정입니다. 확인하셨다면 초기화 하고 싶은 계정 이름을 입력해 주세요. 대소문자 구분해서 쓰셔야 제대로 진행됩니다~

▼ 선택한 계정에 대한 정보가 표시되는데... 여기서 패스워드 초기화를 위한 마지막 설정입니다.


 [User Edit Menu] 에 보시면 5개 메뉴가 표시될 겁니다. 계정 비밀번호를 초기화하거나 계정 비밀번호를 변경하는 등 다양한 설정이 가능한데요. 여기서는 초기화가 목적이니까 1번(Clear user password)을 선택. 계속 진행하면 Password Cleared! 라는 문구가 표시될 겁니다.

▼ 이제 비밀번호 초기화 설정은 다 끝났습니다. 여기까지 설정을 잘 마치셨다면 이제 종료를 해야 하는데요. 주의할 점은 위 상태에서 그냥 종료하면 비밀번호를 초기화한 것이 저장되지가 않습니다.


 위 이미지를 보시면 어떤 순서로 종료를 하는지 보이실 겁니다. 말로 설명하자면... 패스워드 초기화 설정을 마치면 다시 사용자 계정 선택하는 메뉴가 표시되는데, 여기서 '느낌표(!)' 를 입력, 그 다음 SAM 데이터 로딩시 화면이 보여지면 'Q ' 를. 그리고나서 지금까지 작업을 저장할지 묻는데 여기서 'Y' 를 입력합니다. 마지막으로 작업을 잘못했다면 다시 하겠냐고 묻는데요. 설정을 제대로 마치셨다면 'N' 을 입력해서 마무리 합니다.

 위와 같은 방식으로 종료하고 나면 'Press  CTRL-ALT-DEL to reboot now' 라는 문구가 보일텐데요. 종료하고 다시 부팅을 해보세요. 비밀번호가 초기화 되어 그냥 윈도우로 진입할 겁니다. 한글이 아닌지라 위 설명을 보고 너무 어렵다고 느끼실까 미리 말씀드리자면 막상 한번만 진행해 보시면 정말 간단합니다. 정말 급할때는 아무리 어려워 보여도 잘 따라하시겠지만... ^^ 패스워드 때문에 곤란한 상황에 직면하신 분들, 또는 혹시 모를 사태를 대비하실 분들은 위 방법을 참고하시면 되겠네요. 이 포스팅은 여기까지입니다.

바이오스 개조

최근들어 AWARD BIOS TOOL을 이용한 Bios 개조시 Method를 SSV3로 선택하고 개조를 진행하면 아래 스샷 처럼

EPA module 에러가 발생하여 개조 진행을 못 하는 경우가 있습니다.

1.jpg

 

이럴 경우 기존에는 Dynamic을 선택 하거나 OEM7으로 선택 후 Advenced로 진입 하여 ACPITBL at End를 선택하고 개조

했고 1.43버전 부터는 FACS를 선택 개조 하였습니다.

이렇게 개조한 바이오스는 성공은 했지만 일부 보드에서 부팅과 윈도우 진입은 가능 하지만 CMOS 진입이 불가능한

상태가 되거나 하드웨어 장치 인식이 안 되는 경우가 발생 했었습니다.

 

오늘 바이오스 자료실에 물레방아님이 올려주신 1.46버전부터는 SSV3 옵션에 ACPITBL at End 항목이 추가된 것을 확인하고

SSV3로 선택 후 ACPITBL at End를 추가하고 개조를 진행하여 위에 언급했던 이유로 개조를 실패했던 보드에 적용 했더니

바이오스 진입이 정상적으로 가능하였고 SLIC2.1 개조를 성공 하였습니다.  

Award Bios개조를 시도 하시는 분들은 참고 하셨으면 합니다.

 

TOOl개조 방법은 다들 알고 계시니 ACPITBL at End 선택 하는 방법만 간략하게 올리겠습니다.

아울러 Awrd bios Tool도 같이 올리겠습니다.SLIC2.1 제조사와 SLP1.0  모두 Tool에 포함하여 올립니다.

 

2.jpg

 

 

3.jpg

 

4.jpg

 

2010년 8월 11일 수요일

MS Office 2010 키 변경법

이 팁은 MS Office 2010 제품의 Product Key를 변경하는 방법입니다.

 

Office Professional Plus 2010 기준으로 설명합니다.

 

현재 제가 본 Office 2010의 인증 종류는 크게 두가지 입니다.

 

Retail과 VOL 두가지 입니다.(이 부분은 대충 아시리라 믿고 설명은 안하겠습니다.)


중요한 건 해당 제품에 맞는 제품 키를 입력하셔야 합니다.


예를 들어 Retail 키를 VOL 제품에 사용한다던지, VOL 키를 Retail 제품에 사용 할 수 없습니다.

 

우선 VOL 같은 경우는 키 변경이 쉽습니다.

 

vol1.png

제품 키 변경을 선택하면 다음과 같이 나오며 쉽게 키를 변경할 수 있습니다.

 

vol2.png 

하지만 Retail 같은 경우는 제품 키 변경을 제어판에서 프로그램 및 기능(Vista/7) 또는 프로그램 추가/제거(XP)를 통해 Microsoft Office 2010변경을 이용하여 제품 키를 변경할 수 있습니다.

 

ospp.png 

이 방법은 Retail이나 VOL에서 가능 합니다.

 

그리고 Windows Vista/7 처럼 수동으로 인증을 할 수 있습니다. 명령 프롬프트에서 말이죠.

 

특히, 명령 프롬프트에서는 인증 외에도 Office 2010의 인증상태를 확인 할 수 있습니다.

 

Windows 64bit 제품에서 Office 2010 64bit 제품을 설치하였다면 경로가

 

C:\Program Files\Microsoft Office\Office14 가 됩니다.

 

Windows 32bit 제품에서 Office 2010 32bit 제품을 설치하였다면 경로가

 

C:\Program Files\Microsoft Office\Office14 가 됩니다.

 

Windows 64bit 제품에서 Office 2010 32bit 제품을 설치하였다면 경로가

 

C:\Program Files(x86)\Microsoft Office\Office14 가 됩니다.

(확실하지 않습니다. 이런 경우로 설치하는 것은 매우 희박하다고 보내요.)

 

아래의 방법은 Retail이나 VOL에서 사용가능합니다.

윈도우에서 실행 명령으로 cmd를 입력하시거나, 보조프로그램에서 명령 프롬프트를 선택하시면 검은색 창이 하나 나옵니다.

 

!주의! - 관리자 모드에서 명령프롬프트를 실행 할 것을 권장 합니다.

 

retail1.png

해당경로로 직접 찾아 가셔서 할 수도 있고, 그냥 한번에 명령을 내려 실행할 수 있습니다.

 

retail2.png

저는 일일이 찾아가는 방법으로 택했습니다.

 

팁. 'cd '까지 입력 하고 폴더의 첫글자를 입력 후 키보드의 Tab키를 이용하면 폴더를 선택할 수 있습니다.

 

해당 경로 까지 왔다면 키를 변경할 스크립트를 입력합시다.

 

retail3.pngcscript ospp.vbs /inpkey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx


제품키가 올바르다면 제대로 입력이 될 겁니다.


그리고 제품 인증을 받습니다.


retail4.png

cscript ospp.vbs /act


역시 제품키가 올바르다면 인증을 받겠죠.

 

마지막으로 상태를 확인 할 수 있습니다.

 

retail5.pngcscript ospp.vbs /dstatus

 

그외에 명령은 ospp.vbs를 실행하여 볼 수 있습니다.