2008/06/30

svchost.exe 에서 호스팅 하는 서비스 목록 조회

아는 사람들은 다 아는.... tasklist.exe

특정 svchost 프로세스

C:\>tasklist /svc /FI "pid eq 880"
이미지 이름                       PID        서비스
========================= ======== ============================================
svchost.exe                    880          AeLookupSvc, AudioSrv, CryptSvc, dmserver,
                                                    EventSystem, helpsvc, lanmanserver,
                                                    lanmanworkstation, Netman, Nla, RasMan,
                                                    Schedule, seclogon, SENS, SharedAccess,
                                                    ShellHWDetection, winmgmt, wuauserv, WZCSVC

전체 서비스 조회는  C:\>tasklist /svc 이며,
또는 tasklist /svc /FI "IMAGENAME eq svchost.exe"다음과 같은 필터가 가능

필터 이름       유효한 연산자             유효한 값
-----------     ---------------           --------------------------
STATUS          eq, ne                    RUNNING |
          NOT RESPONDING | UNKNOWN
IMAGENAME       eq, ne                    이미지 이름
PID             eq, ne, gt, lt, ge, le    PID 값
SESSION         eq, ne, gt, lt, ge, le    세션 번호
SESSIONNAME     eq, ne                    세션 이름
CPUTIME         eq, ne, gt, lt, ge, le    CPU 시간
          (hh:mm:ss 형식)
          hh - 시간,
          mm - 분, ss - 초
MEMUSAGE        eq, ne, gt, lt, ge, le    메모리 사용(KB)
USERNAME        eq, ne                    사용자 이름([domain\]user
          형식)
SERVICES        eq, ne                    서비스 이름
WINDOWTITLE     eq, ne                    창 제목
MODULES         eq, ne                    DLL 이름

GUI 에서는 볼수 없을까요?..
Process Explorer 에서도 볼수가 있습니다.





30-process-explorer-svchost.png

2008/06/28

Windows Server 2008 Hyper-V 발표



Windows Server 2008 정식 출시 시점에 포함된 Hyper-V는 정식 버젼이 아니었고, Windows Server 출시후 약 180 일 이내에 정식 버젼을 출시한다고 했지요..^^;;


뭐 이에 대해서 따로 정리할 필요는 없을것 같고요,
Microsoft 백승주님의 블로그의 잘 정리된 포스트를 참고하시는게 더 도움이 될것 같습니다.

[경축] Hyper-V RTM 버전이 드디어 출시되었습니다!!
http://blogs.technet.com/koalra/archive/2008/06/27/hyper-v-rtm.aspx

Hyper-V RTM의 공식 지원 사항
http://blogs.technet.com/koalra/archive/2008/06/27/1hyper-v-rtm.aspx

2008/06/27

SQL Server 2005 대기 및 큐 : 성능 튜닝

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL_Server_2005_Performance_Tuning_Waits_Queues_Kr.pdf
Language: Korean

대기 및 큐:  성능 튜닝 방법 론
- 실행 모델 (단순화)
- 대기자 목록과 대기 유형  
- 동적 관리 뷰 (DMVs)와 동적 관리 함수 (DMFs)  
- Sysdm_exec_requests 
- Sysdm_os_waiting_tasks 
- Sysdm_os_wait_stats 
- Track_waitstats_2005 저장 프로시저 
- Get_waitstats_2005 저장 프로시저  
- 성능 및 튜닝 청사진 
- OLTP 청사진 
- OLTP 환경에서 피해야 할 일반적인 시나리오 
- 데이터웨어하우스 청사진  
- 데이터웨어하우스에서 피해야 할 일반적인 시나리오 
- 리소스 병목현상의 유형  
- 메모리 압박 및 IO 서브시스템 이슈 
- IO 대기  
- 인덱스의 누락  및 잘못 설정된 인덱스  
- 대량 IO 를 발생시키는 쿼리  
- 쿼리 최적화 프로그램, 쿼리 실행계획과 통계  
- 쿼리 실행계획 재사용 관련 DMV  
- 쿼리 실행계획 재사용 관련 성능 카운터 
- 문 단위 재컴파일 관련 DMVs  
- 차단 이슈 원인 추적 
- 대기자 리스트에 있는 SQL 문 조회  
- SQL Server 2005 대기 유형과 관련 성능 정보 
- 큐 (성능모니터 카운터) 
- 성능 모니터의 성능 카운터 및 상호연관성, 추론가능한 결과, 대응방안  
- 관심을 두고 확인해야 할 성능모니터 카운터 간의 비율 비교 
- 메모리 이슈  
- 32 비트 메모리 아키텍처와 64 비트 메모리 아키텍처의 비교  
- 64-비트 메모리 아키텍처 vs 더 빠른 32-비트 CPU 성능
- 어플리케이션 디자인 이슈
- 권장사항

SQL Server 2005로의 마이그레이션 후 운영 가이드

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL.FAQ.F.doc
Language: Korean

해결! DB D&A>> SQL Server 2005로의 마이그레이션 후 운영 가이드

성능 저하의 주범, '페이지 I/O latch와 CXPACKET'

태영상선 이규배 대리는 새롭게 개발한 기간계 업무 시스템의 DB 운영에 어려움을 겪다가 DB D&A의 문을 두드렸다. 업무 시스템의 DB가 SQL Server 2005이지만, 실제 업무 시스템은 모두 SQL Server 2000 기반으로 개발되면서 운영상의 어려움을 겪게 된 것이다. 진단 결과, 프로그램 상의 DB 호출이나 관리 기능 설정 등에 문제가 발견되었고, 이로 인해 성능 저하가 발생하고 있었다. 

일시: 2007년 12월 4일(화)
신청자: 태영상선 이규배 대리 dochi4@taiyoungship.co.kr
전문가: 필라넷 황순영 책임 컨설턴트

DB 성능 저하? “아닌 땐 굴뚝에 연기 안 난다”

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL.FAQ.E.docx
Language: Korean

해결! DB D&A>> 지방 소재 기업을 위한 DB 점검 가이드

성능 저하? "아닌 땐 굴뚝에 연기 안 난다"

주식회사 오성사는 부산 지역에 소재한 전자제품 제조기업이다. DB D&A가 상대적으로 IT 교육 및 지원 혜택이 부족한 '지방 고객 대상의 프로모션'을 소개하자마자 오성사의 윤영재 부장이 DB D&A의 문을 두드렸다.

DB 시스템 성능 개선에 대해 전반적인 점검을 받기 위해서였다고 한다. 점검 결과 큰 문제점이 있지는 않았지만, 대용량 테이블을 모두 검색하는 악성쿼리에 대한 이슈를 몇 가지 찾을 수 있었다.


일시: 2007년 8월 16일(목)
장소: 부산시 동래구 온천동 오성사 본사(www.ohsunghq.co.kr)
신청자: 전산부 윤영재 수석부장(yjyoon@ohsunghq.co.kr)
전문가: 필라넷 정원혁 상무

온라인 서비스 기업을 위한 DB 운영 가이드

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL.FAQ.D.docx
Language: Korean

"내 DB 시스템에 나도 모르는 비밀이 숨겨져 있다!?"

북토피아는 국내 최대의 e-Book 서비스 업체로 온라인을 통한 고객 서비스가 가장 활발하게 이뤄지고 있다. 북토피아의 김용우 이사는 최근 임계점 이상으로 사용량이 늘거나 갑자기 DB가 느려지는 현상이 발생함에 따라, 자사의 DB가 가진 문제점을 전반적으로 점검할 필요성을 느꼈다.

이에 자사 DB 시스템을 전반적으로 점검 받고, 평소 3가지 이슈사항을 해결하고자 DB D&A의 문을 두드렸다. 약 5시간에 걸쳐 진행된 방문 점검 결과, 악성 쿼리로 인한 디스크 병목 현상과 통계 업데이트가 미비했던 점 등을 추가로 파악할 수 있었다.

일시: 2007년 7월 20일(금)
장소: 마포구 서교동 북토피아 본사(www.booktopia.com)
신청자: 기술그룹 김용우 이사(yongwoo@booktopia.com) /
           기술본부 여진원(jin1y@booktopia.com)
전문가: 필라넷 성대중 책임 컨설턴트

데이터베이스 관리 노하우 업그레이드하기-1

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL.FAQ.C.doc
Language: Korean

데이터베이스 관리 노하우 업그레이드하기-1

게임회사의 DB관리를 담당하고 있는 조이스펠의 나승은 과장은 최근 사용자 히스토리 관리 DB 속도가 느려지고, DB 테이블 간에 발생하는 문제로 서비스 자체에 영향을 줄 때가 있음을 발견했다. 여기에 서버 관리가 일본에서 진행되기 때문에 설정 변경을 의뢰하여 수행해야 하는 상황이다.

따라서 좀더 체계적으로 DB의 문제를 분석한 후 설정 변경을 의뢰할 합리적인 근거를 마련하고, 나아가 성능을 저하시키는 문제점 해결의 실마리를 마련하고자 한다.

요청사항
1. 데이터베이스 성능 진단 ? 데이터베이스의 적합한 설정 옵션 선택을 통한 관리 효율 증대
2. 데이터베이스 튜닝, 인덱스 생성 - 쿼리 인덱스 생성 방법 습득 및 쿼리 실행 시간 단축

일시: 2007.07.18(수) 오후 1:00 ~ 6:00
장소: 조이스펠 본사(www.joyspell.com)
신청자: 프로그램팀 DB담당, 나승은 과장(charmnse@lycos.co.kr)
전문가: SQL Server Academy 성대중 책임 컨설턴트

중소기업을 위한 SQL Server 기본 모니터링 - 1

Product: SQL Server 2005
Download: http://download.microsoft.com/download/4/3/4/434c1fef-5278-439f-8ee8-e72cb4c36427/SQL.FAQ.A.doc
Language: Korean

해결! DB D&A>> 중소기업을 위한 SQL Server 기본 모니터링 - 1

백업과 디스크 현황 점검부터 시작

도스코 영업부의 송구현 주임은 비전산 담당자지만, 약 1년 전부터 사내 입출과 관리 프로그램의 관리를 맡고 있다. 최근 성능 저하 현상이 나타나는 애플리케이션에 어떤 문제가 있는지, 기본적으로 SQL Server를 유지 관리하는 방법이 무엇인지를 몰라 답답하던 상황이다.

SSA(SQL Server Academy)의 성대중 책임 컨설턴트가 직접 안산 반월공단의 도스코를 방문해 기본적인 SQL Server 설정부터 쿼리 분석, 인덱스 추가에 이르는 방법론을 제시했다.

일시: 2007년 5월 25일
장소: 안산 반월공단 내 도스코 본사 회의실
신청자: 도스코 영업부 송구현(song92) 주임
전문가: SSA 성대중 책임 컨설턴트

Dependency Walker - exe, dll, ocx, sys 등 파일 의존성 체크



http://www.dependencywalker.com/

이미 잘 알려진 프로그램으로,.
exe, dll, ocx, sys 등등에서 로드나 참조를 하는 라이브러리 체크 유틸



27-Dependency-Walker.gif

2008/06/25

Microsoft Source Code Analyzer for SQL Injection 관련 자료

Microsoft 에서, 웹사이트 코드 취약점 점검 도구를 최근에 배포 하였는데요,. 명령행 기반 유틸 입니다. 아래 kb 문서를 참고하시면 간단한 사용법과 예제가 설명 되어 있으므로 참고들 해보시면 좋을것 같습니다. --> 물론 개발자가 직접 점검해 보아야 하겠지요.. 자기가 개발한 코드이니 만큼..^^

국내 정보보호진흥원에서 배포하는 자료는 광범위하게 배포되어 있고, 예전에 올려진 자료도 있고 해서 따로 정리할 필요는 없을것 같네요..


개발자가 참고해 볼만한 도구 및 문서:

The Microsoft Source Code Analyzer for SQL Injection tool
http://support.microsoft.com/default.aspx/kb/954476

Microsoft Source Code Analyzer for SQL Injection 다운로드
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-
A4334146B6BA&displaylang=en


Preventing SQL Injections in ASP
http://msdn.microsoft.com/en-us/library/cc676512.aspx

How To: Protect From SQL Injection in ASP.NET
http://msdn.microsoft.com/en-us/library/ms998271.aspx

Microsoft Anti-Cross Site Scripting Library:
http://msdn.microsoft.com/en-us/library/aa973813.aspx

Tip/Trick: Guard Against SQL Injection Attacks:
http://weblogs.asp.net/scottgu/archive/2006/09/30/Tip_2F00_Trick_3A00_-Guard-Against
-SQL-Injection-Attacks.aspx



관리자가 참고할 만한 도구 및 문서:

Microsoft Urlscan Filter v3.0 Beta (x86) 다운로드
http://www.microsoft.com/downloads/details.aspx?FamilyId=EE41818F-3363-4E24-9940-
321603531989&displaylang=en


Microsoft Urlscan Filter v3.0 Beta (x64) 다운로드
http://www.microsoft.com/downloads/details.aspx?FamilyId=361E5598-C1BD-46B8-B3E7
-3980E8BDF0DE&displaylang=en


AQTRONIX WebKnight - Application Firewall for Web Servers:
http://www.aqtronix.com/?PageID=99


그외, 유틸로는...

Scrawlr - SQL Injection 스캐너
http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/
finding-sql-injection-with-scrawlr.aspx



관련링크:

공개용 웹 방화벽 프로그램을 이용한 홈페이지 보안 - krcert
http://www.wssplex.net/TipnTech.aspx?Seq=312

해킹, 악성코드등 보안 점검 자료 및 정보
http://www.wssplex.net/TipnTech.aspx?Seq=310

DDoS 공격사례, 기법 및 이를 위한 Arp Spoofing 등 기술문서
http://www.wssplex.net/TipnTech.aspx?Seq=388

SQL Injection and XSS 진단 스크립트
http://www.wssplex.net/TipnTech.aspx?Seq=273


MSSQLSERVER / ID: 1474

'TCP://DB2:5022'에 대한 데이터베이스 미러링 연결 오류 2 'Connection attempt failed with error: '10061(대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다.)'.'입니다.

MSSQLSERVER / ID: 17806

통합 보안으로 연결을 설정하는 동안 오류 코드 0x8009030c(으)로 인해 SSPI 핸드셰이크가 실패했습니다. 연결이 닫혔습니다. [클라이언트: xxx.xxx.xxx.xxx]

2008/06/24

CPQTeamMP / ID: 49

이벤트 형식:    경고

이벤트 원본:    CPQTeamMP

이벤트 범주:    없음

이벤트 ID:  49

설명:

HP Network Team #1: PROBLEM: This Teaming Miniport-Edge Configuration Parameters section of the Registry is either missing the SecondNetworkAddress Parameter, or the Parameter is unreadable. Setting value to Second burned-in address.. ACTION: No action is required if the Default behavior is acceptable. Otherwise, reconfigure the SecondNetworkAddress value.

2008/06/22

TermService / ID: 34

{액세스 거부}
프로세스가 개체에 액세스를 요구했지만 액세스 권한이 없습니다.

2008/06/21

포털 광고에 의한 대용량 트래픽

모 광고 에이젼시에서, 최근에 개봉할 안젤리나 쫄리 누님께서 주연하신 "원티드" 라는 헐리웃 영화에 대한 네이버 박스 광고에 트레일러 페이지를 호스팅한 서버에 대한 것입니다. [원티드]



광고 위치는 네이버 메인의 오른쪽 플래시 박스 광고 위치로, 해당 플래시 파일을 호스팅 한 것이 아니라 네이버 메인에 접속한 유저들중 해당 광고에 관심이 있어서 클릭해서 별도의 트레일러 페이지에 접속한 경우 입니다.

그런데, 저위치의 광고단가가 매우 비싸군요. 그래서 냉큼 찾아 봤습니다.
[구글검색에 나온 단가표]



억.소리 나는군요..;;
물론,. 네고가 필히 있기 마련인 표준 단가표에 있는 가격입니다.

아무튼,. 해당 트레일러 광고 페이지는 총 3대의 서버에서 각각 1Gbps 백본 회선에 연결되어 호스팅 되었습니다.

서버들의 스펙을 보면, 총3대의 서버에 사이트 특성상 CPU를 소모하는 DB 연동 페이지가 아니었기 때문에 하드웨어 스펙은 그닥 좋지 않았습니다. 대신에 이더넷은 1Gbps 입니다.

소프트웨어는, OS로 Windows Server 2003 Standard 이며, 웹서버는 역시 IIS 6.0 입니다. 트레일러 페이지에 예고편 동영상이 있기는 하지만,. 그 동영상 역시 플래시 파일이라서 웹서버 만 운영 되었습니다. 

- Windows Server 2008 IIS 7로 할껄,.... 그 부분을 미쳐 생각치 못했네요... -



광고는, 단가표를 보면 알겠지만 정확히 00~24 시까지 노출 되었으며, 그로 인한 총 유발 트래픽은 약 1.6Gbps 정도 였습니다. 물론 순간 순간 2Gbps 가깝게 유발이 되기도 하였습니다.

그러면,. 개별 서버들의 트래픽을 보면,.(*작업관리자의 네트워크 Out 챠트)



위 서버의 경우 out 트래픽이 약 350 Mbps 입니다. 이 서버의 경우 같은 백본 회선에 타사 서버들과 같이 운영이 되어서,. IIS 에서 해당 트래픽이 제한을 두었습니다. (최대 50% 챠트)

위 이미지를 보면,. 일자로 가는 그 부분이 제한되어 있는 부분이고,. IIS UI 에서는 32767 까지만 입력이 가능하므로 Metabase 에서 직접 수정하였습니다.







위 2대의 서버들 역시 위 이미지 상으로는 600~650 Mbps 이나, 순간 순간(10분 정도 계속) 1Gbps 를 Full 로 채우는 상황이 간헐적으로 발생 하였습니다.(최대 100% 챠트)

이더넷 자체가 1Gbps 이므로, 제한폭을 다 채우면..., 터미널 서비스에서의 화면 조작에 딜레이가 많이 발생을 하게 됩니다.... -_-;;



2008/06/20

iScsiPrt / ID: 1

Initiator failed to connect to the target. Target IP address and TCP Port number are given in dump data.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.
데이터:
0000: 00 00 06 00 01 00 62 00 ......b.
0008: 00 00 00 00 01 00 00 c0 .......À
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: bc 0c 0a 00 00 29 ¼....)

-> iSCSI 네트워크 또는 스토리지에 연결이 문제가 있는 경우.

iScsiPrt / ID: 7

The initiator could not send an iSCSI PDU. Error status is given in the dump data.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.
데이터:
0000: 00 00 58 00 01 00 b2 00 ..X...².
0008: 00 00 00 00 07 00 00 c0 .......À
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: b5 00 00 c0 69 00 71 00 µ..Ài.q.
0030: 6e 00 2e 00 32 00 30 00 n...2.0.
0038: 30 00 36 00 2d 00 30 00 0.6.-.0.
0040: 31 00 2e 00 63 00 6f 00 1...c.o.
0048: 6d 00 2e 00 6f 00 70 00 m...o.p.
0050: 65 00 6e 00 66 00 69 00 e.n.f.i.
0058: 6c 00 65 00 72 00 3a 00 l.e.r.:.
0060: 74 00 73 00 6e 00 2e 00 t.s.n...
0068: 30 00 64 00 34 00 38 00 0.d.4.8.
0070: 32 00 31 00 35 00 31 00 2.1.5.1.
0078: 39 00 31 00 63 00 63 00 9.1.c.c.

-> iSCSI 네트워크 또는 스토리지에 연결이 문제가 있는 경우.

iScsiPrt / ID: 20

Connection to the target was lost. The initiator will attempt to retry the connection.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.
데이터:
0000: 00 00 54 00 01 00 ae 00 ..T...®.
0008: 00 00 00 00 14 00 00 c0 .......À
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: 69 00 71 00 6e 00 2e 00 i.q.n...
0030: 32 00 30 00 30 00 36 00 2.0.0.6.
0038: 2d 00 30 00 31 00 2e 00 -.0.1...
0040: 63 00 6f 00 6d 00 2e 00 c.o.m...
0048: 6f 00 70 00 65 00 6e 00 o.p.e.n.
0050: 66 00 69 00 6c 00 65 00 f.i.l.e.
0058: 72 00 3a 00 74 00 73 00 r.:.t.s.
0060: 6e 00 2e 00 30 00 64 00 n...0.d.
0068: 34 00 38 00 32 00 31 00 4.8.2.1.
0070: 35 00 31 00 39 00 31 00 5.1.9.1.
0078: 63 00 63 00 c.c.

-> iSCSI 네트워크 또는 스토리지에 연결이 문제가 있는 경우.

MSiSCSI / ID: 113

iSCSI discovery via SendTargets failed 0xefff0003 to target portal *10.0.0.41 0003260 ROOT\SCSIADAPTER\0000_0 .

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.

-> iSCSI 네트워크 또는 스토리지에 연결이 문제가 있는 경우.

2008/06/19

VSS / ID: 8200

볼륨 섀도 복사본 서비스 오류: XML 문서를 검사하는 중 예기치 못한 오류가 발생했습니다. 문서에 root 요소가 없습니다.

NTBackup / ID: 8017

NTBackup 오류: 'C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\backup04.log 로그 파일을 여는 동안 오류가 발생했습니다.'

C# DNS nslookup 컴포넌트

http://www.codeproject.com/KB/IP/dnslookupdotnet.aspx

명령행에서, 보통 사용하는 nslookup 을 사용자 프로그래밍에서 가능하게 하는 공개 컴포넌트 입니다. - 필요한곳에 잘 써먹음...^^ -

물론 이런 컴포넌트가 아닌, nslookup.exe 의 쉘을 받아서 구현이 가능하겠지만,. 구조적이지 않다는 점이 있겠지요..^^

사용법은, 참조에서 Bdev.Net.Dns.dll 를 참조하고, 다음 예제와 같은 코드를 또는 해당 메쏘드를 기반으로 하는 추가 코드를 구현하면 됩니다.


IPAddress dnsServerAddress = IPAddress.Parse("168.126.63.1");

MXRecord[] records = Resolver.MXLookup("wssplex.net",  dnsServerAddress);

foreach (MXRecord record in records)
{
    Console.WriteLine("{0}, preference {1}", record.HostName, record.Preference);
}

특정 쿼리 타입 메쏘드 또는 공용 메쏘드에서 특정 쿼리 타입을 지정 해주거나...

IPAddress dnsServerAddress = IPAddress.Parse("168.126.63.1");

Request request = new Request();
request.AddQuestion(new Question("wssplex.net", DnsType.MX, DnsClass.IN));

Response response = Resolver.Lookup(request, dnsServerAddress);

foreach (Answer answer in Answers)
{
    MXRecord record = (MXRecord)answer.Record;
    Console.WriteLine("{0}, preference {1}", record.HostName, record.Preference);
}


그리고, 같이 배포되는 데모 프로젝트의 소스를 보면, 좀더 응용이 가능합니다. 한가지 버그?? 라면,. 도메인을 정규편식으로 체크하는 Question 클래스의 아래 정규편식 입니다.

!Regex.IsMatch(domain, @"^[a-z|A-Z|0-9|-|_]{1,63}(\.[a-z|A-Z|0-9|-|_]{1,63})+$")

보통의 도메인은 맞긴 하나,. "-" 가 들어간 도메인은 매칭이 되지 않는 정규편식 입니다. 물론 소스코드 까지 배포가 되므로,. 직접 수정후 빌드해서 참조하면 되겠습니다.^^;

검색 프로필 / ID: 2

사용자 프로필 삭제에 따라 사용자 'HOME-F042E0F327\Administrator'에 대한 Windows Search Service 인덱스 데이터를 제거할 수 없습니다. 오류 코드 0x80070422.

서비스를 사용할 수 없거나 서비스와 연관되어 사용 가능한 장치가 없기 때문에 서비스를 시작할 수 없습니다.

2008/06/17

Windows Server 2008, 10% 절전 기능 향상

Windows 제품에 대한 절전 기능은, 새로운 제품이 발표될 때마다 우수 기능중 하나로 소개 되기도 하는데요,. 이번에는 Windows Server 2008 의 향상된 절전 기능에 관련된 내용입니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=61d493fd-855d-4719-8662
-3a40ba3a0a5c&DisplayLang=en


기존의 Windows Server 2003 에 비해서, 약 10% 절전 효과가 있으며, 2003에 비해서 성능 향상으로 인한 전체적인 작업량 처리에 보다 적은양의 전원으로 동일한 작업 처리가 가능 하다는 것입니다.



더욱 뛰어난 점은, Windows Server 2008 에서 새롭게 지원하는 가상화인 Hyper-V 에서의 여러 가상화 서버를 운영하더라도 없을때와 마찮가지로 매우 적다는 것입니다.



Hyper-V 기반 가상화를 고려하고 있었다면,. 장점이 하나더 늘어나 가상화 계획에 있어서 즐거운 고민? 이 되지 않을까 싶습니다.^^; 보다 더 자세한 내용은, 링크된 문서를 참고해 보시면 좋을것 같습니다.

2008/06/15

ASP.NET 1.1.4322.0 / ID: 1020

이벤트 형식: 경고
이벤트 원본: ASP.NET 1.1.4322.0
이벤트 범주: Setup
이벤트 ID: 1020
날짜: 2008-06-12
시간: 오후 4:10:21
사용자: N/A
컴퓨터: 7UY9MCJ129WRUSC
설명:
Updates to the IIS metabase were aborted because IIS is either not installed or is disabled on this machine. To configure ASP.NET to run in IIS, please install or enable IIS and re-register ASP.NET using aspnet_regiis.exe /i.


winmgmt / ID: 62

이벤트 형식: 경고
이벤트 원본: WinMgmt
이벤트 범주: 없음
이벤트 ID: 62
날짜: 2008-06-12
시간: 오후 4:11:49
사용자: N/A
컴퓨터: 7UY9MCJ129WRUSC
설명:
WMI ADAP에서 데이터 중 하나가 크기가 0인 클래스를 가지므로 .NET CLR Data 성능 라이브러리를 처리하지 못했습니다.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.

2008/06/13

다중 원격 접속 도구 mRemote - RDP, VNC, SSH, Telnet 등



http://www.mremote.org/wiki/

오픈소스 프로젝트인 소스포지에 공개된 프로젝트중에,. 다중 원격 접속 클라이언트 프로젝트중에 하나 입니다.  최근에 유행??.. 멀티탭 및 여러가지 프로토콜을 지원하네요..

- 코멘트 달린 내용중에 추천 하였기에,. 찾아보니 소스포지 프로젝트 이기도 하고..^^ -



위키에 정리된 내용이 그닥 많치 않아서 정확치는 않지만,. RDP 터미널 서비스는 Windows 자체의 터미널 서비스 클라이언트의 COM 개체를 이용하는 것 같습니다.

VB.NET 으로 대부분 작성이 되어 있어서, 닷넷 프레임워크 2.0 이 설치되어 있어야 합니다.




현재 프로토콜 설정 목록에는 위와 같은 프로토콜을 지원합니다.

그외,. 외부 도구 연결들 여러가지 기능을 지원하는 것 같습니다. 다만 여러가지 프로토콜에 대한 동일한 설정창으로 인해서 각 프로토콜만의 특징적인 설정이 없는것 같습니다. (못찾았을수도...)

이를테면,. Windows Vista 및 Windows Server 2008 RDP 6.1 에서는 서버 인증이라던가 터미널 서비스 게이트 웨이 설정등...

이와 같은류의 툴도 몇개 있습니다.

RD Tabs - http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=72
Terminals - http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=32


12-mRemote-Logo.png
12-mRemote-2.gif
12-mRemote-1.gif

성능 저하 없이 미러링할 수 있는 데이터베이스의 수는 최대 몇 개?



- 다음 내용은 Microsoft TechNet Magazine Q&A 내용중 SQL Server 와 관련된 일부 항목을 발췌하였습니다. 실제 이러한 고민은 대부분의 관리자들이 직면해 있는 최적의 방안을 찾아내야 하는 문제 이기도 합니다.

참고로, 제가 운영하는 서버중에 DB크기 약 20G 내외의 15개 데이터베이스에 대해서 미러링이 설정되어 있으며, 트랜잭션 로그는 일 약 3G 정도, 비동기모드 환경에서도 안정적으로 운영되고 있습니다.-


답변:

이 질문에 대한 답변은 제가 자주 쓰는 말로 해야겠군요. 그때 그때 다릅니다.

안내서에는 미러링하는 데이터베이스가 인스턴스당 10개를 넘지 않도록 하라고 되어 있지만, 여기서 10개는 대부분의 사용자에게 해당되는 최대값을 추정한 수입니다. 여러분은 하드웨어 상황을 토대로 다음 요소를 고려해야 합니다.

- 주 인스턴스와 미러 인스턴스의 메모리 용량은 얼마입니까? (동일한 것이 이상적입니다.)
- 주 인스턴스와 미러 인스턴스의 처리 성능은 얼마입니까? (이것도 동일해야 합니다.)
- 미러 인스턴스의 I/O 하위 시스템 대역폭은 얼마나 됩니까? (주 인스턴스와 동일해야 합니다.)
- 각 데이터베이스에서 작업 부하로 생성되는 트랜잭션 로그는 얼마나 됩니까?
- 주 인스턴스와 미러 인스턴스 간에 사용할 수 있는 네트워크 대역폭은 얼마나 됩니까?


마지막 두 요소가 가장 중요합니다.

두 인스턴스 간에 사용할 수 있는 네트워크 대역폭이 미러링되는 모든 데이터베이스에서 초당 생성되는 트랜잭션 로그를 처리하기에 부족하면 주 데이터베이스의 성능이 저하됩니다. SQL Server 2008에서는 로그 스트림 압축으로 이 부담을 어느 정도 줄일 수 있습니다.

다음으로 중요한 문제는 미러링에 필요한 메모리 및 스레드 요구 사항입니다. 미러링된 각 데이터베이스는 스레드 하나와 약간의 메모리를 사용합니다. 저성능의 서버에 미러링되는 데이터베이스가 많고 여기에 통상적인 작업 부하가 더해지면 서버에 너무 큰 부담이 될 수 있습니다.

또한 데이터베이스 미러링의 실행 방법도 고려해야 합니다.

동기 모드에서는 모든 트랜잭션 로그 레코드가 미러링된 데이터베이스의 트랜잭션 로그에 복사될 때까지 주 데이터베이스에서 트랜잭션을 커밋할 수 없습니다. 따라서 네트워크 과부하로 인한 지연 때문에 주 데이터베이스에서 작업 부하 성능 문제가 발생할 수 있습니다.

비동기 모드에서는 주 데이터베이스에서 기다리지 않고 트랜잭션을 커밋할 수 있지만, 네트워크 지연으로 인해 미러 데이터베이스로 전송 대기 중인 트랜잭션 로그의 양이 증가할 수 있습니다.

이 경우 트랜잭션 로그 크기 문제가 발생할 수 있습니다. 더욱이, 전송되지 않은 트랜잭션 로그는 오류 발생 시 손실되므로 전송되지 않은 트랜잭션 로그가 많아질수록 복구 상황에서 데이터 손실 가능성이 높아집니다.

상황에 따라 매우 다양한 시나리오가 가능하며, 실제 프로덕션 환경에서 흥미로운 상황을 여러 번 목격했습니다.

일례로, 작업량이 매우 적고 동시에 모두 사용하는 일도 없는 데이터베이스 150개로 구성된 환경이 있었습니다. 이 환경에서는 150개의 데이터베이스가 모두 문제 없이 미러링되었습니다.

반대로, 부하가 매우 큰 데이터베이스 3개뿐이지만 네트워크 연결이 좋지 않은 환경도 있었습니다. 이 환경에서는 네트워크 대역폭 부족으로 작업 부하 성능 저하가 발생하여 하나의 데이터베이스도 제대로 미러링할 수 없었습니다.

성공의 관건은 다름 아닌 로그 생성을 계산하는 것입니다.

미러링하려는 데이터베이스 수를 지원하기에 충분한 네트워크 대역폭이 확보된다면 괜찮습니다. 실전에 들어가기 전에 구성을 테스트하여 데이터베이스 유지 관리 작업을 비롯하여 트랜잭션 로그가 생성될 수 있는 모든 작업이 포함되도록 하십시오.


12-TechNetB_masthead_ltr.gif

2008/06/12

Vbscript - 지정된 길이로 문자열 자르기

입력된 문자열을 지정된 길이로 자르는 함수. 2byte 문자열 입력도 계산됨.

    Function packString( ByVal strString, ByVal intWidth)
        ON ERROR RESUME NEXT
        Err.Clear

        strString = CStr(strString)
        If Err.Number Then
            Call Wscript.Echo "INVALID_ERRORMESSAGE_TYPE_AS_INPUT"
            Err.Clear
            Wscript.Quit("EXIT_INVALID_PARAM")
        End If

        intWidth      = CInt(intWidth)

        If Err.Number Then
            Call Wscript.Echo "INVALID_ERRORMESSAGE_TYPE_AS_INPUT"
            Err.Clear
            Wscript.Quit("EXIT_INVALID_PARAM")
        End If

        If IsNull(strString) OR IsEmpty(strString) OR Len(strString) = 0 Then

            If intwidth = 0 then 

            packString = "TEXT_NA"
            Exit Function

            Else

            packString = "TEXT_NA" & Space(intWidth-3)
            Exit Function

            End If  
        End If
       
        If intWidth >= LengthinBytes(strString) Then
       
            packString = strString  & Space(intWidth-LengthinBytes(strString))

        Else

            If intWidth = 0 then
                packString = LeftBytes(strString, LengthinBytes(strString))
            Else
                packString = LeftBytes(strString, intWidth)
            End If

        End If

    End Function

그외,. COM 개체를 이용하는 경우에는,..

Set objCmdLib = CreateObject("Microsoft.CmdLib")
Set objCmdLib.ScriptingHost = WScript.Application

wscript.echo objCmdLib.packString("한글","2")


Vbscript - 정규편식을 이용한 문자열 패턴 적합 여부 체크

정규편식을 이용해서,.
입력된 문자열이 지정된 정규편식에 부합하는지 체크하는 함수

        Function matchPattern(ByVal strMatchPattern, ByVal strPhrase)             

            ON ERROR RESUME NEXT
            Err.Clear

            Dim objRegEx        
            Dim Matches         
            Dim intResultsCount 
            
            intResultsCount = 0  

            Set objRegEx = New RegExp
            If (NOT IsObject(objRegEx)) Then
                WScript.Echo "L_ERROR_CHECK_VBSCRIPT_VERSION"
            End If

            objRegEx.Global = True
            objRegEx.IgnoreCase = True
            objRegEx.Pattern = strMatchPattern

            Set Matches = objRegEx.Execute(strPhrase)
            intResultsCount = Matches.Count

            If intResultsCount > 0 Then
                matchPattern = intResultsCount
            Else
                matchPattern = "NO_MATCHES_FOUND"
            End If

        End Function

예제,. wscript.echo matchPattern("[0-9]{4}", "2008") 는 매칭이 되므로, 1을 반환하며 지정된 매칭이 되는 횟수를 출력 해줌.

또는,. COM 개체를 이용하는 경우에는,.

Set objCmdLib = CreateObject("Microsoft.CmdLib")
Set objCmdLib.ScriptingHost = WScript.Application

a = "[0-9]{4}"
b = "2008"

wscript.echo objCmdLib.matchPattern(a, b)


Vbscript - 문자열의 크기(길이) 구하기

다음 스크립트는,. 입력된 문자열의 크기(길이) 를 구하는 함수
2byte 언어의 경우 알아서 계산..

    Function LengthinBytes(ByVal strString)
       Dim i, strChar
       LengthinBytes = 0
       For i =1 To Len(strString)
           strChar = Mid(strString, i, 1)
           If Asc(strChar) > 255 OR Asc(strChar) < 0 Then
        LengthinBytes = LengthinBytes + 2
        Else
            LengthinBytes = LengthinBytes + 1
        End If
       Next
    End Function


이를테면,.
LengthinBytes("한글1") 하면 5byte

또는 COM 개체를 이용하는 경우에는,.

Set objCmdLib = CreateObject("Microsoft.CmdLib")
Set objCmdLib.ScriptingHost = WScript.Application

wscript.echo objCmdLib.LengthinBytes("한글1")


Vbscript - WMIDateTime 형식으로 변경 하기

WMI 시간 형식은, 20080611182532.000000+540 와 같습니다. 물론 대부분 WMI --> DateTime 형식으로 변경하는게 대부분 이겠지만...^^

그 반대로, DateTime --> WMI 시간 형식으로 변경하는 스크립트 입니다. 본 스크립트는 Windows 내장 Microsoft.CmdLib 컴포넌트에서 제공해 주는 함수중 하나 입니다.

Function changeToWMIDateTime(ByVal strDateTime,strTimeZone)
        ON ERROR RESUME NEXT
        Err.Clear 

        Dim arrDateTimeCheck  ' to store the date-time values
        Dim strDate           ' to store temporary date value
        Dim arrDate           ' array to store date values(MMDDYYYY)
        Dim strMonth          ' to store Month value
        Dim strYear           ' to store Year value
        Dim strDay            ' to store Day  value
        Dim strTime           ' to store temporary date value
        Dim arrTime           ' array to store date values(MMDDYYYY)
        Dim i                 ' for looping
 Dim iYearPosition     ' Used to hold the position of year in Date.

        ' input strDateTime is like "mm/dd/yy|yyyy,hh:mm:ssAM|PM"
        ' input Timezone is like "'+|-' UUU"

        arrDateTimeCheck = split(strDateTime,",")
        ' Finally format the  input like "YYYYMMDDHHMMSS.000000+TIMEZONE"

        ' first format the month and day. Append the four digit year
        ' Conver the 2 digit year to 4 digit year.
        ' If there are already 4 digits, then don't worry.

        iYearPosition = InstrRev(arrDateTimeCheck(0),"/")
         If Len(arrDateTimeCheck(0)) - iYearPosition = 2 Then
          arrDateTimeCheck(0) = Left(arrDateTimeCheck(0),iYearPosition) & Left(Year(Date),2) &
                                            Right(arrDateTimeCheck(0),2)
         End If

        'now date is mm/dd/yyyy
        'Spliting the array for month,day,year
        arrDate = split(arrDateTimeCheck(0) , "/" )

        ' The date, month  must be of 2 digits
        ' If they are of single digit length < 2, append a "0"
        For i=0 to ubound(arrDate) - 1
            If Len(arrDate(i)) < 2 then
                arrDate(i) = "0" & arrdate(i)
            End If
        Next

        strMonth = arrDate(0)
        strDay   = arrDate(1)
        strYear  = arrDate(2)

        'for 'YYYYMMDD' Pattern
        strDate = strYear & strMonth & strDay        

        ' Take the Time for formating
        strTime  =  arrDateTimeCheck(1) 

        'NOW arrDateTimeCheck(1)="HH:MM:SSAM|PM".
        'here formating Time 24Hours independent of Locale separator  

        'Spliting the array for HH MM SS
        arrTime = split(strTime , ":" )           

        'Looking for [A|P]M string
       If  Instr(1,Lcase(arrTime(2)),Lcase("AM"),VBBinaryCompare) > 0 Then
                   'AM Conversion  for 24H
               If  arrTime(0) >=  12 Then
                    arrTime(0) = arrTime(0) - 12
               End If        
        Else
                    'PM Conversion for 24H
               If  arrTime(0)  < 12 Then
                       arrTime(0) =arrTime(0) + 12
               End If
       End If 

        'Adding leading zero  if third element  is  S[A|P]M
        If Len( arrTime(2)) = 3 then   arrTime(2)  = "0" & arrTime(2)  

        'Removing  AM|PM from  third  element in the  array
        arrTime(2) =Mid(arrTime(2),1,2) 

        ' The hours, mins and secs must be of 2 digits
        ' If they are of single digit i.e Len < 2 , append a "0"
        For i=0 to ubound(arrTime)
                If Len(arrTime(i)) < 2 then
                       arrTime(i) = "0" & arrTime(i)
                End If
        Next

        strTime = Join( arrTime ,"") ' formatting as HHMMSS

        ' Return the total format as "YYYYMMDDHHMMSS.000000+TIMEZONE"
         ChangeToWMIDateTime = strDate & strTime & ".000000" & strTimeZone
End Function


시간 형식은,. "mm/dd/yy|yyyy,hh:mm:ssAM|PM" 입니다.

즉,. 월/일/년,시:분:초오전/오후

예제,. wscript.echo changeToWMIDateTime("05/22/2008","+540")

2008/06/11

2008년 6월 마이크로소프트 보안 공지

WINS의 취약점으로 인한 권한 상승 문제점 (943485)
http://www.microsoft.com/korea/technet/security/bulletin/MS08-034.mspx

이 보안 업데이트는 비공개적으로 보고된 WINS(Windows Internet Name Service)의 취약점을 해결합니다. 이 취약점을 통해 권한 상승이 허용될 수 있습니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 새 계정을 만들 수도 있습니다.


Active Directory의 취약점으로 인한 서비스 거부 문제점 (953235)
http://www.microsoft.com/korea/technet/security/bulletin/MS08-035.mspx

이 보안 업데이트는 Microsoft Windows 2000 Server, Windows Server 2003, 및 Windows Server 2008의 Active Directory 구현, Windows XP 및 Windows Server 2003에 설치된 ADAM(Active Directory Application Mode, Windows Server 2008에 설치된 AD LDS(Active Directory Lightweight Directory Service)에 대해 비공개적으로 보고된 취약점을 해결합니다. Windows XP, Windows Server 2003 및 Windows Server 2008의 경우 공격자가 이 취약점을 악용하려면 유효한 로그온 자격 증명을 갖고 있어야 합니다. 취약점 악용에 성공한 공격자는 시스템에서 응답을 중지하거나 다시 시작하도록 만들 수 있습니다.


PGM (Pragmatic General Multicast)의 취약점으로 인한 서비스 거부 문제점 (950762)
http://www.microsoft.com/korea/technet/security/bulletin/MS08-036.mspx

이 보안 업데이트는 PGM(Pragmatic General Multicast) 프로토콜에서 발견되어 비공개적으로 보고된 취약점 2건을 해결합니다. 영향을 받는 시스템에서 조작된 PGM 패킷을 받으면 이 취약점을 통해 서비스 거부가 허용될 수 있습니다. 이 취약점을 악용한 공격자는 사용자 시스템이 응답을 하지 못하거나 기능을 복원하기 위하여 다시 시작하도록 만들 수 있습니다. 서비스 거부 취약점으로 인해 공격자가 코드를 실행하거나 사용자 권한이 상승되는 것은 아니지만 영향을 받는 시스템이 요청 수신을 중단하도록 만들 수 있습니다.


그외 추가적인 내용은,...
http://www.microsoft.com/korea/technet/security/bulletin/MS08-Jun.mspx

www.microsoft.com, 기존 IIS6 보다 IIS7 에서 약 10% 성능 향상

오랜만에 뉴스 메뉴에 글을 등록해 보는군요...;;
요즘 넘 바빠서... 아니 귀찮기도 하고...

각설하고,.

마이크로소프트는 자사 개발 제품에 대해서 베타?... 단계에서 부터 자사가 운영하는 사이트나 서비스에 대해서 실제 운영에 적용을 해서 테스트 단계를 거치는데요,.

다음 자료를 보면,. www.microsoft.com 의 메인 웹사이트에 대해서 기존 Windows Server 2003 IIS6 에서 Windows Server 2008 IIS 7로 변경후 약 10% 의 성능 향상이 있었다고 합니다.

http://blogs.technet.com/mscom/archive/2008/06/09/microsoft-com-operations-performance-analysis-of-iis-7-0-windows-server-2008.aspx

-- 좀더 높은 향상이 있었으면 좋았을것 같네요.. 물론 사이트 특성에 따라 성능 여하는 천차만별이기는 하지만... --




성능향상에 따라서,.
초당 요청처리수나, 동시연결수 능력도 증가 된것으로 나와 있네요.



이제는 서서히,.
Windows Server 2008 로 마이그레이션할 시동을 걸어야 할까요?..^^

2008/06/08

단계별 가이드: SSTP 원격 액세스 배포

Product: Windows Server 2008
Download: http://download.microsoft.com/download/b/b/5/bb50037f-e4ae-40d1-a898-7cdfcf0ee9d8/WS08_STEP_BY_STEP_GUIDE/DeployingSSTPRemoteAccessStepbyStepGuide.doc
Language: Korean

SSTP(Secure Socket Tunneling Protocol)는 PPTP 및 L2TP/IPsec 트래픽을 차단하는 방화벽을 통해 트래픽을 전달할 수 있는 새로운 형태의 VPN 터널입니다.

SSTP는 HTTPS 프로토콜의 SSL 채널을 통해 PPP 트래픽을 캡슐화하는 메커니즘을 제공할 뿐 아니라 PPP를 사용함에 따라 EAP-TLS와 같은 강력한 인증 방법을 구현할 수 있게 되었습니다.

HTTPS를 사용한다는 것은 웹 액세스에 공통적으로 사용되는 포트인 TCP 포트 443을 통해 트래픽이 전달된다는 의미입니다. SSL(Secure Sockets Layer)은 향상된 키 협상, 암호화 및 무결성 확인을 통해 전송 수준 보안을 제공합니다.

- SSTP 원격 액세스 배포
- SSTP(Secure Socket Tunneling Protocol)
- SSTP 원격 액세스 VPN 연결을 위한 테스트 환경 설정
- DC1 구성
- VPN1 구성
- CLIENT1 구성
- PPTP 기반 연결 실패 시뮬레이션
- SSTP 기반 연결 구성
- 추가 자료

2008/06/07

Windows Server 2008 Evaluation VHD 이미지




6월 3일자로 영문 버젼 이미지를 배포하고 있습니다.
영문이긴 하지만,. MUI 팩을 설치하면 한글로 변경 되므로...


Windows Server 2008 Evaluation Virtual Hard Drive Images (for Hyper-V)

http://www.microsoft.com/downloads/details.aspx?FamilyID=060f0c51-339a-4c4e-bb6e-716bb7401fd4&DisplayLang=en


Windows Server 2008 Evaluation Virtual Hard Drive Images (for Virtual Server 2005)

http://www.microsoft.com/downloads/details.aspx?FamilyID=961db8ce-8473-47c2-92eb-b822ec5af0c9&DisplayLang=en



07-Windows%20Server%202008%20logo_3.png

2008/06/04

MSFTPSVC / ID: 100

이런 현상이 너무 빈번하게 발생을 합니다. 원인 부탁드립니다. 로그에 완전 엄청 쌓여서요~

이벤트 형식: 경고
이벤트 원본: MSFTPSVC
이벤트 범주: 없음
이벤트 ID: 100
사용자: N/A

설명:
서버가 다음 오류 때문에 Windows NT 계정 'Administrator'에 로그온하지 못했습니다(로그온 실패: 알 수 없는 사용자 이름이거나 암호가 틀립니다. ). 데이터는 오류 코드입니다.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.

가장 많이 본 글