E:를 추출하고 싶으면 아래와 같이 실행하면 된다.
(New-Object -COM Shell.Application).NameSpace(17).ParseName('E:').InvokeVerb('Eject')
E:를 추출하고 싶으면 아래와 같이 실행하면 된다.
(New-Object -COM Shell.Application).NameSpace(17).ParseName('E:').InvokeVerb('Eject')
Meld 사용시 encoding 설정을 해주지 않으면 한글이 깨지는 경우가 있다. 아래와 같이 레지스트리를 설정해주면 된다.
| 키이름 | HKEY_CURRENT_USER\Software\GSettings\org\gnome\meld |
| 값 이름 | detect-encodings |
| 값 종류 | REG_SZ |
| 값 | ['CP949', 'UTF-8', 'UTF-16'] |
Windows의 terminal에서는 한글 encoding을 cp949를 사용하기 때문에 그대로 git을 사용할 경우 log가 깨질 수 있다.
아래와 같이 encoding 설정을 해줘야 한다.
> git config --global i18n.commitencoding cp949 > git config --global i18n.logoutputencoding cp949
원문에서는 XP만 다루고 있지만 Windows 7에서도 잘 작동한다.
우선 아래 명령으로 자동으로 청소할 항목을 선택한다.
cleanmgr /SAGESET:1
여기서 1은 원하는 숫자를 사용하면 된다. 청소할 항목을 지정했으면, 아래 명령으로 지정한 항목을 청소시킬 수 있다.
cleanmgr /SAGERUN:1
이미 등록된 제품 번호를 변경하고 다시 인증을 받는 방법을 설명한다.
관리자 권한으로 cmd 창을 열고 아래 명령을 차례대로 입력한다.
cscript %windir%\system32\slmgr.vbs /upk cscript %windir%\system32\slmgr.vbs /ipk 제품번호 cscript %windir%\system32\slmgr.vbs /ato제품 번호는 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX 형식을 사용하면 된다.
cygwin에서 Windows 프로그램 개발을 위한 Makefile template.
BASECFLAGS = -DUNICODE -D_UNICODE -DWIN32 -D_WIN32 -Wall -Wextra -ffunction-sections -fdata-sections
CXXFLAGS = -fno-rtti -fno-exceptions
ifdef debug
OPTFLAGS = -g -DDEBUG -Wall -Wextra -Wfloat-equal -Wunreachable-code
else
OPTFLAGS = -Os -s -DNDEBUG
endif
ifdef x64
MINGWPREFIX = x86_64-w64-mingw32
CFLAGS = $(BASECFLAGS) $(OPTFLAGS) -DWIN64 -D_WIN64
else
MINGWPREFIX = i686-pc-mingw32
CFLAGS = $(BASECFLAGS) $(OPTFLAGS)
endif
LDFLAGS = -Wl,--gc-sections -mwindows -mno-cygwin
CC = $(MINGWPREFIX)-gcc
CXX = $(MINGWPREFIX)-g++
RES = $(MINGWPREFIX)-windres
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.cpp
$(CXX) $(CFLAGS) $(CXXFLAGS) -c $< -o $@
%.res.o: %.rc
$(RES) -i $< -o $@
위 Makefile은 아래와 같이 사용할 수 있다.
디버그 빌드시
$ make debug=1
x64 빌드시
$ make x64=1
BootVis 를 이용해서 시스템 부팅 시간을 측정하는 방법을 기술한다.
Windows XP 이상의 OS
bootvis.msi 를 설치한다.
bootvis.zipBootVis 를 실행하면 아래와 같은 화면이 나타난다.
Trace - Next boot 메뉴를 선택한다.
시스템 재시작 후 잠시 기다리면 아래와 같이 결과 화면이 출력된다. Boot Activity 값을 이용해서 알 수 있다.
regsvr32 /u shimgvw.dll
regsvr32 /u shmedia.dll
regsvr32 /u cabview.dll regsvr32 /u zipfldr.dll
XP에 내장된 사진 및 팩스 뷰어는 확장자를 가로채서 실행하기 때문에 ACDSee같은 프로그램을 설치해도 항상 사진 및 팩스 뷰어가 시작된다. 사진 및 팩스 뷰어의 가로채기를 막기 위해서 레지스트리를 변경한다.
레지스트리에서 아래 키를 찾은 다음
HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\ContextMenuHandlers
ShellImagePreview라는 하위키를 삭제한다.
시작->실행에서 아래 내용을 입력한다.
msiexec /i %SystemRoot%\System32\webfldrs.msi
msiexec /x %SystemRoot%\System32\webfldrs.msi
시작->실행에서 아래 내용을 입력한다.
RunDll32 advpack.dll,LaunchINFSection %SystemRoot%\INF\msmsgs.inf,BLC.Remove
XP SP2 이상을 쓰고 있다면 위 방법대신 제어판을 통해서 제거할 수 있다.
제어판 - 프로그램 추가/제거 - Windows 구성 요소 추가/제거창을 실행하고 Windows 구성 요소 마법사 에서 Windows Messenger를 설치/제거 할 수 있다.
ctfmon.exe는 Office XP에서 부터 도입된 고급 텍스트 서비스이다. 이 서비스는 일반적인 한글 입력외에 필기입력, 음성인식과 같이 보다 향상된 입력 방법을 제공한다.
그러나 사실 이 서비스는 몇몇 특수한 경우를 제외하고 거의 사용할 필요가 없는 서비스이며, 많은 문제점(불필요한 메모리 차지, 프로그램 충돌, 시스템 지연등)을 가지고 있다.
만약 필기 인식과 같은 특수한 입력이 필요하지않은 경우 다음 절차에의해 이 서비스를 사용하지않을 수 있다.
확실하게 하기 위해 아래 명령으로 고급 텍스트 서비스 관련 COM 객체를 삭제한다.
regsvr32.exe /u %SystemRoot%\System32\msimtf.dll regsvr32.exe /u %SystemRoot%\System32\msctf.dll
XP에서 MSN Messenger 사용시 가끔 한글이 입력되지 않을때가 있다. 고급 텍스트 서비스와 충돌이 원인인데, 해결 방법은 고급 텍스트 서비스를 사용안하면 되지만, MSN Messenger 에서만 고급 텍스트 서비스를 사용하지 않게 할 수 있다.지금은 해당 문제에 관한 MS 패치가 나왔다.
c:\> netsh winsock reset
http://support.microsoft.com/kb/811259/
네트워크상의 다른 PC에 접근할때 매번 id/password를 넣는게 귀찮다면 아래와 같은 방법으로 PC별로 id/password를 지정할 수 있다.
시작->실행 에서 아래와 같이 입력한다.
rundll32 keymgr.dll,KRShowKeyMgr
실행되면 아래와 같은 화면이 나타난다. MSN 메신저를 설치했다면 처음에는 passport 만 나온다.
이 상태에서 추가(A) 를 눌러서 접속할 서버와 id/password를 지정할 수 있다.
아래 레지스트리를 열고
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
문자열 값을 추가하면 된다. 값 이름에는 호환성 모드를 설정할 파일 이름(전체 경로로)을 지정하고 값에는 아래와 같은 내용을 적으면 된다.
| 설정할 OS | 레지스트리에 기록하는 값 |
| Windows 95 | WIN95 |
| Windows 98 | WIN98 |
| Windows NT 4.0 (서비스팩5) | NT4SP5 |
| Windows 2000 | WIN2000 |
부가적인 옵션도 문자열로 제공된다.
| 256색 사용 | 256COLOR |
| 640x480 해상도 사용 | 640X480 |
| 시각 테마 사용 안함 | DISABLETHEMES |
| 고급 텍스트 서비스 사용 안함 | DISABLECICERO |
| 관리자권한으로 실행(only Vista) | ELEVATECREATEPROCESS |
OS는 1개 옵션은 여러개를 지정할 수 있다.
예를 들어 "C:\AAA.exe"에 옵션을 설정한다면 레지스트리에서
값 이름 C:\AAA.exe 값 : WIN98 640X480 DISABLECICERO
이러면 "C:\AAA.exe" 를 windows 98 호환 모드에 640x480 해상도로 고급 텍스트 서비스 사용 안함으로 실행하게 된다.
가끔 알 수 없는 이유로 spoolsv.exe의 CPU 점유율이 높아질때가 있다. 이때는 아래와 같이 조치하면 된다.
제어판 - 성능 및 유지 관리 - 관리 도구 에서 이벤트 뷰어를 실행한 다음 시스템 항목에 아래와 같은 로그가 남아있는지 확인한다.
Event Type:Error
Event Source:DCOM
Event Category:None
Event ID:10010
Description:
{9B1F122C-2982-4E91-AA8B-E071D54F2A4D} 서버가 요구된 초과 시간 안에 DCOM으로 등록하지 않았습니다.
위와 같은 로그가 남아있다면 Windows 자동 업데이트 관련 component에 어떤 문제가 발생한 것이고, 그 이유 때문에 XP가 응답이 없는 것이다. 해결책은 아래 내용을 fix.bat로 저장한 다음 cmd 창에서 실행해주면 된다.
@echo off net.exe stop wuauserv regsvr32 /s wuapi.dll regsvr32 /s wuaueng.dll regsvr32 /s wuaueng1.dll regsvr32 /s wucltui.dll regsvr32 /s wups.dll regsvr32 /s wups2.dll regsvr32 /s wuweb.dll net.exe start wuauserv
제어판 - 성능 및 유지 관리 - 관리 도구 에서 이벤트 뷰어를 실행한 다음 시스템 항목에 아래와 같은 로그가 남아있는지 확인한다.
Event Type:Error Event Source:Service Control Manager Event Category:None Event ID:7022 Description: Windows Image Acquisition (WIA) 서비스가 시작하는 동안에 멈추었습니다.
위와 같은 로그가 남아있다면 http://support.microsoft.com/kb/823612/ko에서 설명한 것과 같이 PC에 설치된 스캐너나 이미징 장치(USB 캠 등)의 드라이버가 잘못 설치된 경우이다.
드라이버 재설치 외에 특별한 해결책은 없다.
cmd 창에서 아래와 같이 입력한다.
tasklist /svc
아래와 비슷한 결과를 볼 수 있다.
C:\>tasklist /svc 이미지 이름 PID 서비스====== ==================== System Idle Process 0 N/A System 4 N/A smss.exe 596 N/A csrss.exe 672 N/A winlogon.exe 696 N/A services.exe 740 Eventlog, PlugPlay lsass.exe 752 PolicyAgent, ProtectedStorage, SamSs svchost.exe 908 DcomLaunch, TermService svchost.exe 984 RpcSs svchost.exe 1068 AudioSrv, BITS, CryptSvc, dmserver, ERSvc, EventSystem, FastUserSwitchingCompatibility, helpsvc, HidServ, lanmanserver, lanmanworkstation, Netman, Nla, RasMan, Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, TapiSrv, Themes, W32Time, winmgmt, wuauserv svchost.exe 1108 Dnscache svchost.exe 1136 LmHosts, RemoteRegistry, SSDPSRV, WebClient
Windows Update가 0x8024A000 에러로 업데이트가 되지 않을때 아래와 같이 조치하면 된다.
시작->실행에서 아래 내용을 입력한다.
control userpasswords2
실행되면 아래와 같은 화면이 나타난다.
여기서 사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음을 uncheck 해주면 자동 로그인할 id와 비밀번호를 물어본다.
여기에 id와 비밀 번호를 입력하면 다음 부팅부터 입력한 계정으로 자동 로그인이 된다.
http://support.microsoft.com/kb/833721/ko
XP Pro 이상에 들어있는 그룹 정책 을 이용하면 바탕화면, 작업 표시줄의숨겨진 옵션(예를 들어 바탕화면에서 휴지통 삭제)을 설정할 수 있다.
시작->실행에서 아래 내용을 입력한다.
gpedit.msc
실행되면 아래와 같은 화면이 나타난다.
좌측 트리에서 사용자 구성 - 관리 템플릿 아래에 보면 작업 표시줄 및 시작 메뉴 와 바탕 화면이 있다. 여기서 정책을 설정하면 바탕화면에서 휴지통 제거등의 작업을 할 수 있다.
Windows XP 검색창을 띄우면 아래 화면과 같다.
이 창을 레지스트리 수정으로 Windows 2000 처럼 변경할 수 있다. 아래 레지스트리를 열고
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState
Use Search Asst 라는 이름의 문자열 값(REG_SZ)을 추가하고 값을 no 로 설정하면 된다.
설정후 검색창을 띄우면 아래처럼 Windows 2000 형식의 검색창을 볼 수 있다.
SSD에 XP를 설치해서 사용할 경우 몇몇 레지스트리를 수정해서 디스크 I/O 를 줄이는 것이 좋다.
부팅을 위한 디스크 최적화는 10분간 시스템을 사용하지 않으면 실행한다(http://technet.microsoft.com/en-us/library/cc784391.aspx)
이 기능을 끄기 위해서 아래 레지스트리를 수정한다.
| 키 이름 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction |
| 값 이름 | Enable |
| 값 종류 | REG_SZ |
| 설정 값 | N |
이 기능을 끄기 위해서 아래 레지스트리를 수정한다.
| 키 이름 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout |
| 값 이름 | EnableAutoLayout |
| 값 종류 | REG_DWORD |
| 설정 값 | 0 |
FAT32 사용할 경우 필요없는 항목이다. 이 기능을 끄기 위해서 아래 레지스트리를 수정한다.
| 키 이름 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem |
| 값 이름 | NtfsDisableLastAccessUpdate |
| 값 종류 | REG_DWORD |
| 설정 값 | 1 |
SSD 는 특성상 read access 속도가 빠르기 때문에 WikiPedia:Prefetcher 기능을 사용할 필요가 없다.
이 기능을 끄기 위해서 아래 레지스트리를 수정한다.
| 키 이름 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters |
| 값 이름 | EnablePrefetcher |
| 값 종류 | REG_DWORD |
| 설정 값 | 0 |
이 기능을 끄기 위해서 아래 레지스트리를 수정한다.
| 키 이름 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager |
| 값 이름 | boot |
| 값 종류 | REG_SZ |
| 설정 값 |
이 기능을 다시 살리고 싶으면 설정 값을 autocheck autochk * 로 돌려주면 된다.
Windows XP부터 포함된 netsh 도구를 사용하면 별도 유틸리티 없이 network profile을 저장하고 불러올 수 있다.
C:\> netsh -c interface dump > networksetting.txt
C:\> netsh -f networksetting.txt