2003/12/30

GC에 접속할수 없을때도, 도메인에 로그인 할수 있을까?

일반적으로 GC(Global Catalog)에 접속하여, 인증을 받지 못하는 경우에는 도메인에 접속하지 못합니다. GC에는 전제 도메인에 대한 로그온 인증 기능을 하기 때문입니다.

네이티브 모드로 도메인에 로그온할때, GC는 유니버설그룹 멤버십을 체크합니다.

만일, 네트웍 환경이나, GC서버자체 문제등 여러가지 원인으로 인해서 GC에 접속할수 없을경우 도메인에 로그인은 실패하게 됩니다.

GC에 접속하지 못한 경우에도 도메인에 로그온을 허용하고 싶다면,
다음과 같은 순서로 레지스트리값을 변경합니다.

1. 각 DC의 레지스트리값 중,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters를
찾은후,

2. IgnoreGCFailures 라는 서브키를 새로 만듭니다.

3. 저장후, DC를 restart 합니다.

*주의 :
만일, GC를 통하지 않고 도메인에 로그온을 허용할경우 보안상 크게 취약점이 발생합니다.
예로, 특정 네트웍 리소스에 접근이 가능해집니다. 만일, GC에 access 하지 못할경우 SID 토큰을 얻을수 없습니다. 이런경우 특정 리소스 제한설정이 적용되지 않기 때문입니다.

2003/12/25

SFC(System File Checker)가 hotfix등 최신파일을 덥어쓰는 경우

sfc(System File checker)는 최근에 설치된 핫픽스나 파일위치에 상관없이 설치미디어, 서비스팩으로 설치된 파일에(dll등..)에 문제가 있을경우 원본파일로 교체를 해버립니다.

핫픽스나, sp업데이트 작업을 해서 완료된 시스템도 구버젼의 파일로 교체하는 오류가 있습니다.
 
MS에서는 이오류를 Windows 2K SP4에서 수정을 했으며, 가장 최근에 설치된 패치나 업데이트 파일을 교체하기전에 확인옵션이 추가되어 교체를 원하는 파일만 교체할수 있습니다.

sfc수행후 리붓하다음, 꼭!! Windows Update를 통해서 다시 최신 파일로 업데이트를 하시는게 좋습니다.

ntfs.sys 파일이 손상된 경우 복구방법

ntfs.sys missing or corrupt 라는 에러는, 업그레이드 과정이나, 부팅중 또는 종료중에 예기치 않은 시스템 종료가 된 경우에 주로 발생합니다.

에러메시지의 전체적인 내용은 다음과 같습니다.

"Windows could not start because the following file is missing or corrupt: System32\Drivers\Ntfs.sys"

다음과 같은 방법으로 ntfs.sys파일을 교체합니다.

1. CDROM부팅을 합니다.

2. 복구콘솔 모드로.

3. 콘솔모드에서 \windows\system32\drivers 로 이동합니다.
*Windows 2000 의 경우는 WINNT 밑입니다..

4. 기존 ntfs.sys를 파일명을 변경 한후, CDROM에서 ntfs.sys를 복사해 옵니다.
ren ntfs.sys ntfs.sys.bad
cpoy 드라이브명:\i386\ntfs.sys

5. 리붓후, 시스템에 이상이 없는지 점검....




24-TechNetB_masthead_ltr.gif

윈도우 코어파일을 삭제했을 경우?

윈도우 코어 파일의 경우 인위적인 삭제가 쉽지 않습니다..

윈도우 탐색기에서 핵심파일을 삭제할려고 할때, 삭제할수 없다는 메시지를 간혹 보여주기도 합니다. 이유는 해당 프로세스가 로드된 상태이거나, 다른 프로세스에 의해서 점유된 상태이기 때문입니다.

그러나, 인위적이던, 특정 프로그램 설치로 인해서든, 아니면 HDD에 배드가 발생해서든간,
코어파일이 삭제되었을 경우 복구해야 할 경우가 있습니다.

뭐 복구방법은 여러가지가 있을수 있으나, 다음과 같은 방법이 있습니다.

1. 먼저 레지스트리값에서 윈도우 설치 원본위치를 수정하는 것입니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion 의 SourcePath의 위치를 Windows 원본 파일이 있는 위치로 수정합니다. 원본CD를 넣은 CDROM 드라이브를 지정하면 됩니다.


2. 레지스트리 저장하고, command line에서 sfc /scannow 를 하시면
시스템에 삭제 또는 변경된 시스템파일을 검색하여, 원본파일로 교체를 할수 있습니다.
그리고, 리붓을 하면 완료됩니다.

*참고로 sfc(Microsoft Windows File Checker)는 관리자권한으로 로컬콘솔에서 실행해야 합니다... 터미널에선 안됨..-_-;

2003/12/24

VSS가 포함된 디스크조각모음시 VSS스냅샷이 사라지는 현상

VSS스냅샷(Shadow Copy)은 저장시 시스템 클러스터 사이즈인 block당 16KB로 할당됩니다. VSS서비스는 시스템클러스터 사이즈에 종속되는 서비스 이기 때문입니다.

만일 시스템 클러스터 크기가 16KB보다 작은 시스템일경우, VSS생성과정중에 디스크 조각 I/O와 일반적인 기록 I/O간 차이로 인해서 VSS가 진행되지 않는 원인 될수도 있습니다.
또는 VSS수행 결과, Shadow Copy 저장공간이 갑자기 커지는 결과가 될수도 있습니다.

다시 설명하면, 시스템에 할당된 클러스터 사이즈의 차이로 인해서, 예상보다 소비되는 클러스터의 갯수가 달라져 전체적으로 디스크의 이용량이 커질수도 있다는 얘기입니다.

VSS수행시, 사용자가 지정된 VSS저장 한계가 설정되어 있을경우, 예전에 Shadow Copy본은 엎어집니다. 당연히, 할당공간에 한계가 있기 때문이 겠죠...

이런 문제를 해결하는 방법은:
디스크 클러스터 사이즈를 16KB 이거나, 또는 큰 사이즈로 다시 디스크를 포맷하는 것.

-운영중인 시스템에 적용하는 것이 무리이므로, 시스템 계획시 사전점검을 하는것 좋을듯 합니다. 그런데, 요즘 시스템은 16KB보다 훨씬크게 포맷하므로 특별히 문제는 없을듯 합니다...


*용어설명 : 클러스터(cluster)
PC의 저장기술 측면에서의 클러스터는 하드디스크 위에 파일을 저장하는 논리적 단위이며, 컴퓨터의 운영체계에 의해 관리된다.
클러스터는 하드디스크 그 자체에 만들어지는 물리적인 단위가 아닌 논리적인 단위이기 때문에, 경우에 따라 클러스터의 크기를 다양하게 설정할 수 있다. 그러나, 클러스터의 크기가 커지면서 지불해야할 대가가 있다면, 그것은 크기가 적은 파일들 (예를 들어 디렉토리와 같은 것들) 조차도 하나의 클러스터를 모두 차지해 버려 낭비적 요소가 있다는 것이다.
그러므로, 만약 클러스터 한개의 크기를 2,048 바이트로 설정한 경우라면, 10 바이트 짜리 파일조차도 2,048 바이트를 소모하게 되는 것이다(실제로 많은 운영체계에서 클러스터의 기본 크기를 4,096 바이트나 8,192 바이트로 설정하고 있다)

2003/12/13

RIS를 이용한 인스톨시, 시리얼 자동입력/파티션 설정

■ RIS를 이용해서 윈도우 설치시, 시리얼키를 넣는 과정을 자동화하고 싶은경우 다음과 같이 설정파일에 직접 시리얼키를 지정해 놓을경우 설치과정에서 시리얼키를 묻지 않습니다.

오피스나, 다른 일부 프로그램의 경우도 설정파일에 시리얼키를 넣어 설치과정을 간소화해놓은 프로그램도 있습니다..
아시는 분은 아시겠지만, 와우CD류가 대부분 그렇게 해놓지요...

1. i386\templates 폴더에 ristndrd.sif를 텍스트 편집기로 엽니다.
2. 파일항목중에... [UserData] 부분에 ProductID 를 추가해 주시면 됩니다.

예,.
[UserData]
FullName = "%USERFIRSTNAME% %USERLASTNAME%"
OrgName = "%ORGNAME%"
ComputerName = %MACHINENAME%
ProductID = "32J4A-P07TY-86RE2-8U3H1-XXXXX"


■ RIS를 이용한 설치시, 파티션을 직접설정 하기.
RIS를 Default 상태의 설정파일을 이용할경우 우리가 일반적으로 말하는 통하드. 즉,
사용가능한 모든 공간을 하나의 파티션으로 만들어 버립니다..

우리가 원하는건 이게 아니죠. C는 10G, D는 20G 머 이런식이죠.

[RemoteInstall]
Repartition = No
UseWholeDisk = No

그럴때, 설치시 직접파티션을 나누고 지정을 하게 할려면 다음을 넣어줍니다.



이외 설치프로그램의 종류도 지정이 가능합니다. 자세한건, RIS 설정파일 설명서를 참조하시기 바랍니다.

Runas 를 이용한 관리자권한으로 프로그램 시작

일상적인 관리작업에서 보안을 위해서는 관리자계정으로 로그인하지 않는 것이 좋은 방법입니다. 그러나, 관리자 권한이 필요한 프로그램의 경우 Runas를 이용하면 됩니다.

Runas는 일반계정으로 로그인후, Runas를 이용해서 권한상승을 해서 관리자 작업을 할수있게 해주는 Command Line 명령어 입니다.

리눅스에서 su 명령어와 똑같은 기능을 한다고 보시면 됩니다.

물론, GUI상태에서도 팝업메뉴를 통해서 "다음 계정으로 실행...." 을 이용해도
동일한 효과입니다.


사용법은 간단합니다. 예로는...

1. 관리자권한으로 Cmd 명령창을 이용할경우.
C:\>runas /user:administrator cmd
administrator의 암호 입력:
cmd을(를) 사용자 "SERVERINFO\administrator"(으)로 시작하려고 합니다...

2.도메인환경의 경우...
/user:도메인명\Administrator 과 같이 해주면 됩니다.

3.IIS관리자를 열경우..(mmc프로그램 실행시...)
runas /user:Administrator "mmc %systemroot%\system32\inetsrv\iis.msc"

4.노트패드로 특정파일을 열경우.
runas /user:Administrator "notepad my_file.txt"

5.컴퓨터관리 MMC를 열경우.
runas /user:Administrator "mmc %windir%\system32\compmgmt.msc"

6.AD 사용자 및 컴퓨터 MMC를 열경우.
runas /user:Administrator "mmc %windir%\system32\dsa.msc"


* 만약 Runas 명령어가 안될경우. 시스템의 서비스중 "Secondary Logon" 가
실행중인 상태이어야만 합니다.



12-runas.PNG

2003/11/26

ASP.NET 버젼에 따른 IIS 해당 웹사이트 .NET Framework 버전 지정

서버에 최초 설치되는 .NET Framework 의 버젼에 따라서, IIS에서도 ASP.NET을 설치된 프레임웍의 버젼에 따라 실행되게 됩니다.

Windows 2000 의 경우 다운로드 받아 설치한 버젼이며, Windows Server 2003의 경우 Defalut로 1.1 버젼이 설치되게 됩니다.

Asp.net 웹사이트 프로그래밍시, 작업 컴퓨터의 프레임웍버젼과 실제 서버에서 운영되는 프레임웍간 버젼차이로 에러 또는 기능상 문제가 될수 있습니다.

예로, 작업컴퓨터에서는 1.1로 작업했는데, 서버에는 1.0이 설치된 경우이겠죠.

그런데, 중요한 것은 웹서버에 사이트가 여러개인경우 특정 사이트에만 특정버젼의 .NET Framework 을 지정하게 해야 하는 경우입니다.


■ 이런경우 다음과 같은 방법으로 지정하면 됩니다.

1. 해당 웹사이트의 사이트 인덱스를 확인.
--> Windows Server 2003의 경우 쉽게 확인이 가능하지만, IIS5에서는 확인이 쉽지가 않다. 다음 Vbscript 코드로 쉽게 확인을 할수가 있습니다.

Dim objWWW,
colSites Set objWWW = GetObject("IIS://serverinfo/W3SVC") 
For Each 
colSites in objWWW If IsNumeric(colSites.Name) 
Then 
Wscript.Echo "Site index:" & colSites.Name & _ " Site Name:" & colSites.ServerComment 
End If 
Next


출력결과 :
Site index:1 Site Name:기본 웹 사이트
Site index:2 Site Name:Microsoft SharePoint 관리
Site index:397007713 Site Name:www.serverinfo.pe.kr
Site index:738020274 Site Name:whois.serverinfo.pe.kr


2. 사이트인덱스 확인후, 해당 .NET Framework 을 지정.
-설치된 프레임웍은 WindowsDirectory\Microsoft.NET\Framework\ 폴더밑에서 확인.

ASP.NET 1.0을 재귀적으로 설치할 경우
aspnet_regiis -s W3SVC/1/ROOT/AspVerApp1

또는
ASP.NET 1.0을 비재귀적으로 설치할 경우
aspnet_regiis -sn W3SVC/1/ROOT/AspVerApp1

위 명령어를 실행할경우, 기존에 IIS에 설정된 프레임웍을 지정한 프레임웍 버젼으로 변경하게 됩니다


2003/11/20

Windows Server 2003에서 VSS(Volume Shadow Copy) 설정

Volume Shadow Copy 는 Windows Server 2003 에서 새롭게 지원하는 기능으로, 아주 짧은 시간에 로드 없이 복사본을 유지하는 기능 입니다.

1. 윈도우탐색기 또는 MMC의 디스크관리자 디스크 등록정보 선택.

2. 관리메뉴에서 속성 - 섀도 복사본 탭 선택(윈도우탐색기)

3. 설정하고자 하는 드라이브를 선택후, 설정 클릭.
(기본설정이 되어 있지 않다면, 기본 설정값으로 매 주중 07:00에 실행되도록 설정된다.)

4.섀도 복사본 저정은 특정 드라이브에 저장 가능하도록 선택이 가능하며, 최소 용량은 100M 입니다.

5.스케쥴설정은 기본설정값을 사용하거나, 새로 지정이 가능합니다.
(스케쥴 설정은 윈도우 보조프로그램의 스케쥴러에서의 설정법과 동일.)

6.설정값 저장완료후, "지금 만들기" 를 바로 실행된다.





□ 다음과 같은 방법으로 섀도복사본을 확인가능하다.

1. 윈도탐색기에서 확인.



2. Command Line에서 확인

C:\>vssadmin list shadows
vssadmin 1.1 - 볼륨 섀도 복사본 서비스 관리 명령줄 도구
(C) Copyright 2001 Microsoft Corp.

섀도 복사본 세트 ID의 콘텐트: {3af9eedd-66b1-4029-84dd-f64c565eed78}
다음 작성 시간에 1 섀도 복사본 포함: 2003-11-19 오후 5:50:23
섀도 복사본 ID: {17534ef3-c06c-4388-8f6e-f2012b5184d1}
원본 볼륨: (C:)\\?\Volume{46498d72-0e2c-11d8-b584-806e6f6e6963}\
섀도 복사본 볼륨: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
원본 컴퓨터: SERVERINFO
서비스 컴퓨터: SERVERINFO
공급자: 'Microsoft Software Shadow Copy provider 1.0'
형식: ClientAccessible
특성: Persistent, Client-accessible, No auto release, No writers, Differential


*섀도 복사본 서비스의 좋은점은 윈도우 시스템 및 특정 서비스에서 점유하고 있는 파일도 저장이 가능하다는 것이다. 그리고, 기존 백업방법에서 VSS를 지원하는 백업시 백업 및 복원 시간을 많이 줄일수 있다.

Volume Shadow Copy 클라이언트 프로그램은,

C:\WINDOWS\system32\clients\twclient  또는,

http://www.microsoft.com/downloads/details.aspx?familyid=E382358F-33C3-4DE7-
ACD8-A33AC92D295E&displaylang=ko
 에서 다운로드 가능합니다.


19-vss_configure_1.PNG
19-vss_configure_2.PNG

2003/11/18

ERD Commander 2003 이란?

최근 Windows NT는 아주 중요한 레지스트리 파일이나, 시작옵션의 복사본을 저장할수 있는 응급복구디스크(ERD)를 만들수 있습니다.

MS는 이와 같은 기능은 Automated System Recovery(ASR)과 the Recovery Console(RC) 로 대체를 하고 있습니다.

Winternals Software사의 ERD Commander 2003이 ERD를 만들수 있는 가장 좋은 툴이 아닐까 생각됩니다.



프로그램 시작시, ERD Commander는 컴퓨터를 스캔합니다. 만약, 멀티OS가 세팅된 시스템이라면, 작업코자 하는 시스템을 선택할수 있습니다. 선택후, 레지스트리나, 특정 오류를 점검하고, 수정합니다.

ERD Commander는 Windows XP와 같은 시작메뉴, 몇몇 데스크탑 아이콘을 제공합니다.
시작메뉴는 다음과 같은 메뉴가 있습니다.

- Administration Tools
(System Information, Service and Driver Manager, Locksmith, Event Log Viewer, Disk Management, TCP/IP Configuration, File Sharing, System Compare, System Restore)
- FileRestore
- Explorer
- Search
- Registry Editor
- Notepad
- Console

특이할만한 점은 관리메뉴에서 Locksmith 툴은 해당 컴퓨터의 어떤 계정이라도 패스워드를 리셋이 가능합니다.


Service and Driver Manager는 특정 서비스를 부팅시 실행되지 않도록 중지 또는 disable 설정을 할수 있습니다.

Explorer은 모든 디스크 드라이브와 공유폴더 및 원격연결드라이브를 엑세스 할수 있습니다.


FileRestore는 시스템에서 삭제된 파일을 복원하는 기능입니다.


ERD Commander 2003 버젼에 새롭게 추가된 기능으로는 .zip/.cap등 압축파일을 지원하며,디스크포맷이나, 파티션설정도 가능합니다.

또한, 문제발생시 원인규명를 위해 드라이버, 서비스, 시스템파일등을 부팅시스템이 아닌, 다른 시스템에 특정시점으로 복원하거나, 비교할수 있습니다.

자세한 정보는 제작사 웹사이트 http://www.winternals.com 를 방문해 보시기 바랍니다.

*참고로 유료 프로그램입니다만, 값어치는 충분히 할수 있는 프로그램입니다.

17-windowsEnviroment.gif
17-locksmith.gif
17-fileexplorer.gif
17-filerestore.gif

2003/11/12

Windows 2000 시간서버와 동기화 설정

서비스 항목에서 "Windows Time" 서비스가 활성화가 되어 있는지 먼저 확인합니다.

C:\>net stop "Windows Time"
C:\>net time /SETSNTP:time.windows.com
C:\>net start "Windows Time"

와 같이 하면, MS에서 운영하는 시간서버와 동기화하게 됩니다. 물론, 시간기준은 현재 운영체제의 지역설정을 기준으로 설정됩니다.

위와 같이하면, 기본값인 "SpecialSkew" 로 설정됩니다.


- 동기화 옵션은 다음과 같은 종류가 있습니다.

Period: REG_DWORD 또는 REG_SZ (레지스트리값임)
시간 서비스의 동기화 횟수를 제어하는 데 사용됩니다. 문자열 값이 지정된 경우 아래 값 중 하나여야 합니다.
0 = 하루에 한 번
65535, "BiDaily" = 이틀에 한 번
65534, "Tridaily" = 3일에 한 번
65533, "Weekly" = 일주일에 한번
65532, "SpecialSkew" = 동기화가 세 번 성공될 때까지 45분에 한번, 이후 8시간에 한번(하루에 세 번) [기본값]
65531, "DailySpecialSkew" = 동기화가 한 번 성공될 때까지 45분에 한 번, 이후 하루에 한 번
freq = 하루에 freq 번


- NTP서버의 경우도 레지스트리에서 직접지정이 가능합니다.

NtpServer: REG_SZ(옵션)
시간 원본을 수동으로 구성하는 데 사용됩니다. 동기화할 DNS 이름 또는 IP 주소에 이 값을 설정합니다. 하나의 DNS 이름 또는 IP 주소만 지정합니다. net time 명령을 사용하여 명령줄에서 이 값을 수정할 수 있습니다.
기본적으로 값은 비어 있음

마지막으로 레지스트리 위치는
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
입니다.

다른 한국지역 Time Server를 지정하고자 할경우 [ ] 을 참고하시기 바랍니다.

2003/11/06

SQL서버에서 sp_OACreate를 활용한 메일발송 예제

다음 Query는 SQL Server에서 메일을 발송하는 예제입니다. 이 쿼리는 IIS-SMTP 서비스가 실행되고 있어야 합니다. 아래 코드는 CDONTS 컴포넌의 객체를 생성하여 보내는 방법입니다.

DECLARE @SenderAddress varchar(100) 
DECLARE @RecipientAddress varchar(100) 
DECLARE @Subject varchar(200) 
DECLARE @Body varchar(8000) 
DECLARE @oMail int--Object reference 
DECLARE @resultcode int 

SET @SenderAddress = 'serverinfo@serverinfo.pe.kr'
SET @RecipientAddress = 'webmaster@serverinfo.pe.kr'
SELECT @Subject = '이벤트 발생날짜 ' + CAST(getdate() AS varchar(12)) 
SET @Body = 'This is the body of my email'
EXEC @resultcode = sp_OACreate 'CDONTS.NewMail',
    @oMail OUT IF @resultcode = 0 
BEGIN EXEC @resultcode = sp_OASetProperty @oMail,
    'BodyFormat',
    0 EXEC @resultcode = sp_OASetProperty @oMail,
    'MailFormat',
    0 EXEC @resultcode = sp_OASetProperty @oMail,
    'Importance',
    1 EXEC @resultcode = sp_OASetProperty @oMail,
    'From',
    @SenderAddress EXEC @resultcode = sp_OASetProperty @oMail,
    'To',
    @RecipientAddress EXEC @resultcode = sp_OASetProperty @oMail,
    'Subject',
    @Subject EXEC @resultcode = sp_OASetProperty @oMail,
    'Body',
    @Body EXEC @resultcode = sp_OAMethod @oMail,
    'Send',
    NULL EXEC sp_OADestroy @oMail 
END


활용은 백업등 SQL Server 작업 에이젼트에서 특정작업후, 다음단계로 확인메일을 보내는 것으로 활용할수 있습니다. sp_OACreate 프로시져는 해당 호스트에 설치된 OLE오브젝트의 인스턴스를 생성할수 있습니다. 자세한 사용법은 온라인도움말을 참조하시기 바랍니다.



06-TechNetB_masthead_ltr.gif


137GB 이상 ATAPI hard disk 를 접근가능 설정

Windows XP Service Pack 1 (SP1) and Windows 2000 SP3 이후부터는
48bit LBA를 지원합니다.

137GB이상 48-bit LBA를 가능하게 할려면, 다음과 같이 하면 됩니다.

1. regedit
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters
3. 새로운 DWORD 값 생성.
4. 이름에 EnableBigLba
5. 값에 1을 지정합니다.
6. 레지스트리를 닫고, 컴퓨터를 재시작하면 적용됩니다.

만약에, 48-bit LBA 를 지원하지 않는 OS로 멀티부팅을 이용하시면 블루스크린이
발생할수 있으니, 주의해야 합니다.

* 만약 에러가 발생할경우 로그온이 가능하면(안전모드포함), 레지스트리를 이전상태로 복원하시고, 부팅이 전혀되지 않을경우 CD롬 부팅을 통해서 레지스트리 파일을 교체해야 합니다. 물론, 레지스트리를 백업해놓았을 경우입니다.

시스템 재시작후에도 여전히 137GB를 인식하지 못한다면 시스템 메인보드의 바이오스에서 지원하지 않거나, 적합하지 않기 때문입니다. 이런경우 메인보드 제조사에 문의를 해야 합니다.



05-TechNetB_masthead_ltr.gif

Windows XP SP1 / Windwos2000 에서 폴더 Listing Reset

다음 예와 같이 폴더 Listing 이 string 대신에 numeric에 의해서 sorting이 됩니다.

 Win2K Listing         
 XP Listing --------------------   ------------------
 1.txt                 
 1.txt 110.txt               
 2.txt 12.txt               
 8.txt 2.txt                 
 12.txt 23.txt               
 23.txt 8.txt                 
 110.txt 

강제적으로 폴더 sorting 을 string 기준으로 할려면 다음과 같이 레지스트리 값을 수정합니다.

1. regedit.exe

2. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
3. 새로운 DWORD 값을 생성.

4. 이름을 NoStrCmpLogical 로 지정.

5. 값으로 1 을 지정.

6. 레지스트리를 닫고, 컴퓨터를 재시작하면 적용됩니다.

 컴퓨터 전제에 적용할려면, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer 에서 위와 같은 순서로 작업하면 됩니다.


Recovery Console (RC) 에서 administrator 패스워드 없이 작업

다음과 같은 순서에 의해서 레지스트리를 수정하면 됩니다.

1. regedit.txt

2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\
CurrentVersion\Setup\RecoveryConsole

3. SecurityLevel(보안레벨)에서 1로 수정합니다. (0 일경우 패스워드를 요구합니다ㅏ.)

4. 레지스트리를 닫으면, 바로 적용됩니다.


이 과정은 MMC 콘솔에서도 동일하게 설정이 가능합니다.

로컬보안정책 -> 로컬정책 -> 보안옵션 에서
복구콘솔:자동 관리자적 로그온 허용을 "사용함"으로 하면 됩니다.

* 이 설정은 특히 주의해야 합니다. 복구작업시 편리함이 있기는 하지만,
관리자 권한이 없어도 복구콘솔에 접근이 가능하기 때문입니다.


배치파일에서 입력된 인수값 모두 출력

test.bat

------------------------------------------------------
@echo off echo %*
------------------------------------------------------

다음과 같이 실행하면,

C:\>test a b c d e f g h i j k l m n o p 결과는 다음과 같이 출력됩니다.

a b c d e f g h i j k l m n o p

마지막에 asterisk(*) 를 사용하면, 모든 인수를 출력합니다.

2003/11/05

배치파일에서 최대 인수 갯수

다음과 같은 test.bat 에서는 9개의 인수를 사용할수 있습니다.

test1.bat 코드
------------------------------------------------------------------------------
@rem test.bat @echo off echo %1 %2 %3 %4 %5 %6 %7 %8 %9
------------------------------------------------------------------------------

실행.
c:\>test1 a b c d e f g h i 결과는 다음과 같이 출력합니다.

a b c d e f g h i 인수 0(%0) 은 프로그램이나, 배치파일의 이름입니다.

만일 9보다 큰 숫자의 이상의 인수를 사용한다면, 예로, %11 또는 %22 등 사용하면, 다음과 같습니다.

test2.bat 코드
------------------------------------------------------------------------------
@rem test.bat @echo off echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %21 %32
------------------------------------------------------------------------------

실행. C:\>test2 a b c d e f g h i j k l 결과. test a b c d e f g h i a0 b1 c2

숫자 10 이상을 사용하면, 맨앞자 1에 해당하는 a와 다음글자0 이 붙여져 출력됩니다.

그래서, %1 ~ %9 까지를 인수로 사용합니다.

다운로드한 Widnwos 업데이트 패키지 내용 확인

다양한 third-party 어플리케이션(예, winzip...)으로 다운로드한 Windows업데이트 패키지 내용을 보거나, 열수 있습니다.

그러나, 업데이트 패키중 Deltas-aware(IPD-aware)와 같은 내부 패키지 종류가 있는데, 업데이트된 패키지를 실행할때 바이너리 파일을 재생성 합니다.

그러나,써드파티 프로그램으로 업데이트된 패키지를 열대, 단 하나의 바이너리 파일만 볼수 있습니다.

업데이트된 패키지 내용을 보기위해서는 -x 스위치를 사용하면 됩니다.

WindowsXP-KB24146-x86-ENU.exe -x:d/temp/package


그냥, -x 스위치을 사용하면, 해당 업데이트 파일이 있는 폴더에 파일을 풉니다.

2003/11/04

SQL 자동증가값 초기화

테이블 시퀀스 필드의 경우 대부분 자동증가값을 이용을 하는데요.
어떤 경우 이부분에 있어 다시 재 초기화가 필요한 경우가 있습니다.
중간에 사라진 레코드가 너무 많아서 시퀀스값 사이가 클 경우 이겠지요..

DBCC CHECKIDENT(Table명,RESEED,초기값)

ex, DBCC CHECKIDENT(tb_board,RESEED,1)

초기값은 시퀀스값을 초기값을 기준으해서 값이 증가합니다.

IE6의 보안설정에 의한 쿠기 제한에 따른 웹서버 헤더추가

인터넷익스플로러 에서는 다음과 같은 개인 보안정책에 의해서 쿠기제한을 설정할수 있습니다.



다음 개념에 대해서 간략하게 이해를 해야 합니다.

□지속성 쿠키와 세션 쿠키 비교
Internet Explorer 6의 쿠키 처리 방법을 이해하려면 지속성 쿠키와 세션 쿠키의 차이점을 아는 것이 좋습니다. 지속성 쿠키는 정의된 만료 시간에 도달할 경우 삭제됩니다. 반면, 지정된 만료 시간이 없는 세션 쿠키는 Internet Explorer를 닫을 때 삭제됩니다. 지속성 쿠키는 사용자의 컴퓨터의 쿠키폴더에 만료시간까지 실제 파일로 저장되는 형태를 말합니다. 이부분이 다중사용자 컴퓨터의 경우(게임방 컴퓨터..) 보안에 취약합니다.

□제1 컨텍스트와 제3 컨텍스트
Internet Explorer 6은 제1 컨텐트를 호스트 도메인과 연관된 것으로 정의합니다. 제3 컨텐트는 호스트 도메인 이외의 도메인에서 만들어집니다. 예를 들어, 주소 표시줄에 www.wideworldimporters.com을 입력하여 이동했더니 이 사이트에 www.wingtiptoys.com의 배너 광고가 떠있다고 가정해 보십시오. 이 두 사이트에 쿠키를 설정할 경우, www.wideworldimporters.com의 쿠키가 제1 컨텍스트 쿠키이고 www.wingtiptoys.com의 쿠키가 제3 컨텍스트 쿠키가 됩니다.

이따금 상업용 웹 페이지에는 제1 컨텐트와 제3 컨텐트가 혼재해 있습니다. Internet Explorer 6 개인 정보 기능은 제1 컨텐트와 제3 컨텐트를 구별합니다. 이 때 근간이 되는 가정은 사용자의 제1 및 제3과의 관계가 서로 다르다는 것입니다. 실제로 사용자는 제3을 알지 못할 수도 있고 제3과 새로운 관계를 설정할 것인지 선택할 수도 있습니다. 이러한 이유 때문에 제3 컨텐트에 대한 기본 개인 정보 설정은 제1에 대한 설정보다 엄격합니다.

참고 www.wideworldimporters.com 및 toys.wideworldimporters.com은 둘 다 wideworldimporters.com이라는 동일한 최소 도메인을 갖고 있습니다. 동일한 최소 도메인을 호스트 도메인으로 공유하는 컨텐트를 제1 컨텐트로 간주하며, 마찬가지로 이러한 도메인에서 설정된 쿠키는 제1 쿠키로 간주합니다. 최소 도메인은 동일한 최상위 도메인(TLD)을 가져야 합니다. .com, .net, .org 등을 일반적인 TLD의 예로 들 수 있습니다.

위를 보통 도메인 쿠기라고 합니다. 도메인 쿠기를 생성했을경우 하위 도메인에 일괄적으로 동일한 쿠키가 적용됩니다.


쿠기 사용은 P3P압축정책에 의한 쿠키이어야 합니다. IE6는 3단계 쿠키 동작에 의해 처리를 합니다.



쿠기압축정책이 없는 지속성 쿠기의 경우 해당쿠기 허용을 제1컨텍스트 및 제3컨텍스트 모두 거부를 합니다. 그래서 대부분의 사이트에서 지속성 및 세션쿠기를 사용해서 카운터 및 게시판등에서 사용자 입력값을 저장해 두는데, 압축정책이 없으므로 클라이언트 컴퓨터에서 쿠기가 적용되지 않습니다.

특히나, 문제는 쿠키를 통해서 인증을 처리하는 웹사이트의 경우 문제가 큽니다.
대부분을 그렇게 하고 있다는데 있습니다.

■ 해결방법

다음과 같이, 웹서버의 헤더에 다음 P3P 쿠키규약을 등록해 줍니다. 물론, 대부분은 되지만, 보안이 강화된 브라우져에서는 쿠키가 안먹는 경우를 대비해서 등록을 해줍니다.

개인 정보 태그 및 해당 압축 토큰으로 용도, 수신인, 범부 및 액세스 토큰을 결합하여 예제에 대한 압축 정책을 만들 수 있습니다. 압축 정책은 다음 구문을 사용하는 사용자 지정 HTTP 응답 헤더를 통해 전송합니다.

P3P: CP="CAO PSA CONi OTR OUR DEM ONL"
*해당 코드에 대한 자세한 설명은 P3P 규약문서를 참고하시기 바랍니다.
(http://www.w3c.org/tr/p3p)



이 헤더는 ASP(Active Server Pages)를 사용하거나 Microsoft® Windows® 2000 서버 및 사용이 많은 다른 웹 서버의 컴퓨터 관리 콘솔을 통해 HTTP 응답에 추가할 수 있습니다. 쿠키 압축 정책이 HTTP 응답에 있는 쿠키 데이터와 함께 서버에서 전송되고 쿠키에 대한 결정과 설정은 클라이언트(Internet Explorer 6)에서 수행된다는 점에 주의합니다.

ASP코드에서 헤더를 추가하는 방법은 다음과 같습니다.
<% Response.AddHeader "Set-Cookie" , "test=id=server&pwd=1234" %>


■ 테스트
IE6이 설치된 웹브라우져의 보안정책을 최대로 설정한후 임의 쿠키가 설정되는지 점검을 해보아야 합니다.


03-ie6_privacy.bmp
03-ie6_rist.bmp
03-iis_header_set.JPG

2003/10/24

날짜에 특정 일수나, 시간등을 추가하는 예제

날짜에 특정 일수나,
시간등을 추가하는 방법중 하나는 TimeSpan(Int32, Int32, Int32, Int32) 생성자를 이용하면 됩니다.

public TimeSpan(int days, int hours, int minutes, int seconds);

매개 변수: days 일 수입니다.
hours 시간(시)입니다.
minutes 시간(분)입니다.
seconds 시간(초)입니다.


다음은 오늘날짜에 365일, 즉 1년을 추가하는 예제입니다.

TimeSpan Day365 = new TimeSpan(365, 0, 0, 0, 0);

NewDate = DateTime.Now + Day365;


시간,분,초 등은 위 매개변수을 참조.

DB쿼리시 Transaction 이용하기

다음 코드는 ASP.NET 코드내에서 Transaction 을 처리하는 예제 코드 입니다. Transaction 은 SQL Server에서 처리를 해주어도 되나, DB에서보다는 ASP코드에서 Transaction 을 처리하는 것이 포퍼먼스가 훨씬 뛰어나며 DB서버의 로드를 줄일수 있습니다.

string ConnectStr = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection Con = new SqlConnection(ConnectStr);
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = Con;
Con.Open();
SqlTransaction kissme7Trans; //Transaction 시작
kissme7Trans = Con.BeginTransaction(IsolationLevel.ReadCommitted);
Cmd.Transaction = kissme7Trans;
try {
    ....SQL 처리 코드.... //에러가 없을경우    Transaction Commit 
kissme7Trans.Commit();
} catch (Exception ex) {
    .....Exception 발생시 처리 코드..... //*예외발생시    Transaction Rollback 
kissme7Trans.Rollback();
} finally {
    Con.Close();
}


Referrer값 체크로 특정파일에 직접 접근 거부

레퍼러값을 체크하는 방법 2가지 입니다. 먼저, 레퍼러값이 null 값일경우 Default.aspx 페이지로 리다이렉팅. 만일 레퍼러값이 있을경우 현재, 사이트의 도메인과 레퍼러주소의 도메인이 다를경우 다시 Redirect 를 합니다. 바로 Redirect 를 해도 되지만, 자바스크립트로 Alert 를 띄운후 처리..


public void UrlReferrerCheck(string refferUrl) {
        if (Request.UrlReferrer == null) {
            string script = "< script>alert('직접 접근할 수 없습니다!!');" + 
"location.href='/Default.aspx';
            "; Page.RegisterClientScriptBlock("
            done ", script);
            //Response.Redirect(refferUrl);

        } else {
            string refer = Request.UrlReferrer.ToString();
            string ServerPath = Request.Url.ToString();
            ServerPath = ServerPath.Substring(0, ServerPath.LastIndexOf(" / "));
            if (refer.IndexOf(ServerPath) == -1) {
                string script = " < script> alert('직접 접근할 수 없습니다!!');
                " + "
                location.href = '/Default.aspx';
                "; Page.RegisterClientScriptBlock("
                done ", script); //Response.Redirect(refferUrl); } } }

Web.Config 에서 DB연결문 설정

ASP.NET(C#) 에서 DB커넥션 부분은 전역으로 설정하는 코드로 웹 Root에 있는 Web.Config 파일에서 아래 부분을 등록하면 됩니다.

 <? xml version="1.0" encoding="utf-8" ?>
     <configuration>
         <appSettings>
             < add key="ConnectionString" 
value="server=192.168.1.200;database=db_name;user                                    
              id=db_id;password=db_password;Network                                     
              Library=DBMSSOCN">
                 </add> </appSettings> < system.web> .......... 계속......

실제 사용되는 부분에서는 다음과 같이 하면 됩니다.

private void LoadData() {
    string ConnectStr = ConfigurationSettings.AppSettings["ConnectionString"];
    SqlConnection Con = new SqlConnection(ConnectStr);
    SqlCommand Cmd = new SqlCommand();
    Cmd.Connection = Con;...............코드 계속...
}


ASP.NET 메일발송 예제 코드

다음은 ASP.NET(C#) 에서 메일을 발송하는 예제코드 입니다.


using System.Web.Mail;
private void SmtpMailSend() {
    MailMessage mail = new MailMessage();
    mail.From = "보내는 사람";
    mail.To = "받는사람";
    mail.Cc = "참조";
    mail.Subject = "메일 제목";
    mail.Body = "메일 본문 내용";
    mail.BodyFormat = MailFormat.Html;
    //메일 Fotmat 형식
    mail.Priority = MailPriority.High;
    //메일 중요도
    SmtpMail.Send(mail);
    //메일 발송
}


2003/06/28

Windows Server 2003 개인방화벽(ICF) 사용

인터넷 연결 방화벽은 ISP를 통하여 전화 접속을 통하거나 또는 ADSL 또는 케이블 모뎀을 통하여 인터넷 연결을 할 때 전화 접속 연결 및 LAN 연결을 보호하는데 유용합니다.

또한 ICS 호스트 컴퓨터를 보호하기 위하여 ICS 호스트 컴퓨터에 대한 인터넷 연결에 인터넷 연결 방화벽을 사용할 수 있습니다.

Windows 2000 Server 에서는 마땅한 방화벽 툴이 없었습니다. 그 대안으로 IPSEC의 필터링 기능을 사용했습니다. 물론, IPSEC의 본래 기능은 필터링보다는 패킷보안 이죠.

Windows Server 2003 에서는 XP에서 제공하던 ICF 툴을 제공합니다. 물론, 사용법이 쉽긴 하지만, INBound에 대해서만, 그리고, 해당 포트에 대해서만 필터링이 가능한, 간단한 툴입니다.



INBound, OutBound, IPAddress, Domain, Subnet, Protocol, Port 등등 관리자마음대로 세팅을 할수 있는 기능은 제공하지 않습니다.

이를테면, 10.0.0.2 번에는 TCP모든 포트를 허용하고, UDP에대해서는 161번만 허용.... 이런 기능은 제공하지 않습니다. 그리고, TCP/IP 등록정보의 TCP/IP 필터링이 있긴한데, 별 쓸모없습니다.. 쓸모가 없다기 보다는 불편하다는 거죠..

제어할수 있는 기능도 미흡하구요. 위치는 네트워크 및 인터넷 연결 -> 해당 네크워크 인터페이스의 속성 -> 고급 에 있습니다.



27-icf_01.JPG
27-icf_02.JPG

2003/06/27

Windows Server 2003 시간서버와 동기화 하기

Windows 2000 Server 의 경우 표준시와 동기화 할려면, 레지스트리를 수정해주어야만 했었다. 그러나, Windows Server 2003의 경우는 제어판에서 간단하게 지정해 줄수 있다.



■ 한국시간 표준시를 제공하는 서버는 다음과 같습니다.
아래 서버중에서 자기가 속해 있는 ISP 또는 맘에 드는 곳으로 선택하심.. 됩니다.

데이콤 (gps.bora.net)
코넷 (ntp.kornet.net)
한국표준과학연구원 시간주파수 연구실 (time.kriss.re.kr) <--- 추천
부산대학교 (ntp1.cs.pusan.ac.kr / ntp2.cs.pusan.ac.kr)
PSINet Korea (time.nuri.net)
GNGIDC (ntp1.gngidc.net / ntp2.gngidc.net)

*데이콤과 GNGIDC, 부산대학교의 타임 서버는 GPS 수신기로부터 표준시각 정보를 제공받아 표준시각을 유지하고 있으며, 한국 표준과학 연구원의 타임서버는 세슘원자시계로부터 직접 표준시각 정보를 받아 표준시각을 유지하고 있다고 합니다.

일반적으로 자신이 사용하는 인터넷 회선의 ISP것을 사용하는 것이 좋습니다.


■ 참고사항
시간동기화는 UDP 123 포트를 통해서 동기화가 이루어 집니다. 그래서 방화벽이나 Proxy서버내에 있을경우 UDP123 포트가 열려있어야 합니다. 물론, OutBound 겠죠.^^

위의 방법의 경우, 수동 동기화 및 시간서버 지정입니다. 보다 세부적인 값 설정은 레지스트리 수정을 통해서 제어를 할수 있습니다.


W32Time 서비스 레지스트리 값
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

AvoidTimeSyncOnWan : REG_DWORD(옵션)
컴퓨터가 다른 사이트의 컴퓨터와 동기화되지 않도록 합니다.
0 = 시간 원본의 사이트를 무시합니다[기본값].
1 = 컴퓨터가 다른 사이트의 시간 원본과 동기화되지 않습니다. 

GetDcBackoffMaxTimes : REG_DWORD(옵션)
도메인 컨트롤러 찾기가 연속적으로 실패했을 때 백오프(Backoff) 간격을 두 배로 늘리는 최대 횟수입니다. 최대 대기 시간 동안 응답이 없을 때마다 이벤트가 기록됩니다.
0 = 연속 시도 간의 대기는 항상 최소이고 이벤트가 기록되지 않습니다.
7 = [기본값] 

GetDcBackoffMinutes : REG_DWORD(옵션)
마지막 시도가 실패한 경우 도메인 컨트롤러를 찾기 전에 대기하는 초기 시간(분)입니다.
15 = [기본값] 

LocalNTP : REG_DWORD
SNTP 서버를 시작하는 데 사용됩니다.
0 = 이 컴퓨터가 도메인 컨트롤러가 아니면 SNTP 서버를 시작하지 않습니다[기본값].
1 = SNTP 서버를 항상 시작합니다. 

NtpServer : REG_SZ(옵션)
NtpServer : REG_SZ(옵션) 시간 원본을 수동으로 구성하는 데 사용됩니다. 동기화할 원본 NTP 서버의 IP 주소 또는 DNS 이름을 이 값으로 설정합니다. net time 명령을 사용하면 명령줄에서 값을 수정할 수 있습니다. 기본적으로 값이 비어 있습니다.

Period : REG_DWORD 또는 REG_SZ
시간 서비스의 동기화 간격을 제어하는 데 사용됩니다. 문자열 값이 지정된 경우 아래 나열된 값 중 하나여야 합니다. 숫자(예: 65535)를 사용하여 문자열 값을 지정하는 경우 이 값을 REG_DWORD로 만들어야 하고, 단어(예: BiDaily)를 사용하여 문자열 값을 지정하는 경우에는 항목을 REG_SZ로 만들어야 합니다.
0 = 하루에 한 번
65535, "BiDaily" = 이틀에 한 번
65534, "Tridaily" = 3일에 한 번
65533, "Weekly" = 일주일에 한 번
65532, "SpecialSkew" = 동기화가 3번 성공할 때까지 45분에 한 번씩 실행하고 그 이후에는 8시간에 한 번씩 하루 3번[기본값]
65531, "DailySpecialSkew" = 동기화가 한 번 성공할 때까지 45분에 한 번씩 실행하고 그 이후에는 하루에 한 번
freq = 하루 freq번 

ReliableTimeSource : REG_DWORD(옵션)
해당 컴퓨터의 시간을 신뢰할 수 있는지 여부를 나타내는 데 사용됩니다.
0 = 해당 컴퓨터의 시간을 신뢰할 수 없습니다[기본값].
1 = 해당 컴퓨터의 시간을 신뢰할 수 있습니다(도메인 컨트롤러에서만 유효). 

Type : REG_SZ
컴퓨터의 동기화 방식을 제어하는 데 사용됩니다.
Nt5DS = 도메인 계층 구조로 동기화합니다[기본값].
NTP = 수동으로 구성된 원본으로 동기화합니다.
NoSync = 시간을 동기화하지 않습니다. 




26-time_server.JPG
26-Microsoft_TechNet.gif

2003/05/23

ASP.NET에서 4MB이상 대용량 파일 업로드 하기

■ 요약 기본적으로 ASP.NET 웹 응용 프로그램의 업로드 가능한 파일 크기는 4096 Kbytes로 되어있어 자료실등의 자료를 더큰용량을 업로드 할 경우 업로드가 되지 않습니다. 4M 제한은 악의적인 대용량 업로드로 인한 서버의 피해를 줄이고자 함입니다.

■ 대용량 파일 업로드 하기 4MB 이상 크기의 파일을 업로드 하기 위해서는 machine.config (혹은, web.config) 파일에서 속성 값을 변경해주면 됩니다.

<configuration>
 <system.web>
  <httpRuntime
         executionTimeout="90" 
         maxRequestLength="4096" 
         useFullyQualifiedRedirectUrl="false" 
         minFreeThreads="8" 
         minLocalRequestFreeThreads="4" 
         appRequestQueueLimit="100"/>
 </system.web>
</configuration>
 

maxRequestLength - ASP.NET에서 지원하는 최대 파일 업로드 크기를 나타냅니다. 이 제한은 서버에 큰 파일을 게시할 때 발생하는 서비스 거부 공격을 방지하는 데 도움이 됩니다.

*업로드된 용량이 클수록 Asp.NET코드에서 별도 처리를 해주지 않을경우 다운로드 파일 크기 많큼 메모리가 소비되니, 주의해야 합니다.

IIS 재설치한 후에 ASP.NET 매핑 복구

■ 요약

Microsoft .NET Framework SDK(Software Development Kit)나 Visual Studio .NET을 설치한 후에 IIS(Internet Information Server) 매핑이 이루어져 ASP.NET 새 파일의 확장명과 설정이 연결됩니다.

그런데, SDK나 Visual Studio 설치 프로그램을 실행했을 때 IIS를 설치하지 않았거나, SDK 또는 Visual Studio 설치 프로그램을 실행한 후 IIS를 제거하고 다시 설치한 경우에는 이러한 설정이 제대로 이루어지지 않습니다. ASP.NET 페이지를 보려고 하면 예기치 않은 동작이 발생합니다.

■ 매핑복구방법

*아래 2가지 방법중 하나를 실행하면 됩니다. 개인적으로 1번을 추천.

1. Aspnet_regiis.exe 유틸리티 이용.

cmd 프롬프트에서 "\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe" -i를 실행하면 자동으로 등록됩니다.

-i 옵션은 ASP.NET을 IIS세팅하고, 전역 메타베이스에 등록을 해줘 하위 사이트에서 ASP.NET을 사용할수 있도록 해줍니다. 또한, 기존 ASP.NET버젼을 업데이트 해줍니다.

2. Aspnet_isapi.dll을 통해 레지스트리 등록

regsvr32 -i \Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll을 레지스트리에 직접 등록합니다.

*참로고 Windows Server 2003에 기본으로 설치된 프레임웍의 버젼은\Windows\Microsoft.NET\Framework\v1.1.4322\ 입니다.
최신 버젼의 프레임웍으로 설정할 경우 해당 버젼의 폴더에서 실행하면 됩니다.




23-TechNetB_masthead_ltr.gif

2003/05/02

IIS6에서 asp,asp.net 같은 동적파일 설정 및 해제

Windows Server 2003에서 보안을 높이기 위해 기본적으로 설치되는 서비스를 최소화했으며, 설치되는 서비스라도 enable이 안되어 있습니다.

IIS를 설치했는데, 단순html페이지는 브라우징이 되나, asp나, aspx는 안됩니다. 이것은 MS에서 의도적으로 꼭 enable을 해야만 되게끔 되어 있습니다.

enable이 안되어 있는 경우 다음과 같은 에러메시지를 뿌립니다.
--------------------------------------------------------------------------------------------------
기본적으로 인터넷 정보 서비스(IIS)가 Microsoft Windows Server 2003 제품군에 설치되면 IIS는 정적 콘텐트(HTML)만 제공합니다. Active Server Pages(ASP) 또는 ASP.NET 페이지 같은 동적 콘텐트를 요청하면 다음과 같은 오류 메시지 중 하나가 나타납니다.

HTTP 오류 404 - 파일을 찾을 수 없습니다.
-또는-
HTTP 오류 404 - 파일 또는 디렉터리를 찾을 수 없습니다.

IIS가 다른 종류의 콘텐트를 제공하도록 하려면 관리자는 IIS 관리 콘솔의 웹 서비스 확장 노드에서 이 콘텐트를 잠금 해제해야 합니다. 이렇게 하려면 기존의 웹 서비스 확장을 사용 가능하게 설정하거나 새 웹 서비스 확장을 추가하십시오.
--------------------------------------------------------------------------------------------------

enable 방법은 다음과 같습니다. 물론, cgi나, php를 사용하는 경우도 동일합니다.

IIS 6.0에서 기존의 웹 서비스 확장 설정
1. IIS 관리자를 열고 마스터 서버 노드(즉, servername 노드)를 확장한 다음 웹 서비스 확장 노드를 선택합니다.
2. IIS 관리자의 오른쪽 창에서 설정할 확장을 마우스 오른쪽 단추로 누릅니다. 이 예에서는 Active Server Pages를 누릅니다.
3. 허용 확인

IIS 6.0에 새 웹 서비스 확장 추가
IIS가 웹 서비스 확장 목록에 아직 나열되지 않은 특정 ISAPI(Internet Server Application Programming Interface) 또는 CGI(Common Gateway Interface) 확장을 요청하는 콘텐트를 제공하도록 하려면 다음순서로 하시면 됩니다. 물론, php도 동일합니다.
1. IIS 관리자를 열고 마스터 서버 노드를 확장한 다음 웹 서비스 확장 노드를 선택합니다.
2. IIS 관리자의 오른쪽 창의 작업에서 새 웹 서비스 확장 추가를 누릅니다.
3. 확장 이름 상자에 추가할 확장의 알기 쉬운 이름(예: "FrontPage Server Extensions")을 입력합니다.
4. 필요한 파일 상자에서 추가를 누른 다음 특정 확장에 대한 요청을 처리할 파일의 경로와 이름을 선택합니다. 경로와 파일 이름을 선택한 후에 확인을 누릅니다.
5. 확장을 즉시 사용할 수 있어야 하는 경우 확장 상태를 [허용됨]으로 설정 확인란을 선택합니다.




02-iis6ex.gif

Windows Server 2003 시스템 구성 유틸리티(msconfig.exe)

Windows95,98에서 msconfig를 지원을 했습니다. 그러나, Windows2000에서는 지원을 하지 않았지만, 다운로드 받아서 설치를 해서 사용할수 있었습니다. 굳이 msconfig를 사용하지 않더라도 할수 있습니다.

그러나, msconfig 툴을 사용하면 쉽게 환경설정을 할수 있습니다.
시스템 구성 유틸리티(Msconfig.exe)는 Microsoft 고객기술지원부 기술자가 Windows 구성 문제를 진단할 때 사용하는 일상적인 문제 해결 단계를 자동화한 것입니다.

이 도구를 사용하면 시스템 구성을 수정하고 제거 프로세스 방법을 통해 문제를 해결할 수 있습니다.

□ Msconfig 유틸리티 툴을 통해서 가능한 작업

- 일반 : 시작이 일반, 또는 시스템의 점검을 위한, 시작시 로드할 설정파일 선택가능.
- System.ini : 시작옵션에서 system.ini를 로드할경우 ini내의 모듈별 로드
- Win.ini : system.ini와 같이 모듈별 로드 가능.
- Boot.ini : 시스템시작시 부트옵션을 설정할수 있습니다. 물론, 직접파일을 수정도 가능.
- Services : 서비스의 시작옵션을 제어할수 있습니다. 이부분도 관리도구에서 직접가능.
- Startup : 부팅시 자동시작 프로그램 및 서비스 선택가능.




02-msconfig.gif

2003/04/26

C# COM+ 생성 및 등록 방법

1. C# 클레스라이브러리 프로젝트 생성.

2.참조에 System.EnterpriseSevices 참조추가 및 using에 추가 및 using System.Runtime.InteropServices; 추가.

3.sn.exe로 강력한 이름생성. sn.exe -k "test.snk"

4.Assemblyinfo.cs 의 [assembly: AssemblyKeyFile("..\\..\\sampleClass.snk")] 추가.

5.cs파일내 Class에 [ClassInterface(ClassInterfaceType.AutoDual)] 추가.

6.컴파일 한후 gacutil.exe -i test.dll 로 전역어셈블리케시에 등록

7.regsvcs.exe test.dll 로 COM+서비스에 등록.

8.해당COM요소의 등록정보->보안-> 인증에서 "어플리케이션 엑세스 체크" 해제.

9.asp3파일내에서 객체를 생성하여 사용.


### 샘플C#코드  ###

using System;
using System.Runtime.InteropServices;
using System.EnterpriseServices;

[assembly: ApplicationName(".NET COM+ 컴포넌트 예제")]    <-------
[assembly: ApplicationActivation(ActivationOption.Server)]    <-------
     
namespace sampleClass
{
 [ComVisible(true)]   <-------
 [ClassInterface(ClassInterfaceType.AutoDual)]  <-------
 
 public class MyComponent : ServicedComponent  <-------  상속필수.
 {
  public string ReturnString()
  {
   return "Hello";
  }
 }
}



구성요소 서비스에 등록된 화면. 


랜카드 교체후에도 이전 랜카드 정보가 그대로 남아있을때

현상 :

기존의 랜카드를 새로운 랜카드로 교체한후 , ip 등의 네트웍정보 세팅시 기존의 랜카드에 세팅이 되어 있어 중복세팅이 불가능하다고 에러메시지를 나타냅니다.

네트워크 어댑터에 사용자가 입력한 XXX.XXX.XXX.XXX IP 주소는 이미 Name of adapter 어댑터에 할당되었습니다. 컴퓨터에 실제로 존재하지 않거나 작동하지 않는 레거시 어댑터이기 때문에 Name of adapter은(는) 네트워크 및 전화 접속 연결 폴더에서 숨겨져 있습니다. 어댑터에 같은 주소로 할당하고 사용하면, 하나의 어댑터만 이 주소를 사용하게 됩니다. 이는 올바르지 않은 시스템 구성을 초래합니다. 고급 대화 상자의 IP 주소 목록에 다른 IP 주소를 입력하시겠습니까?


다음 순서대로 해주면 됩니다.

시작 -> 설정 -> 제어판 -> 하드웨어 추가/제거 -> 다음 클릭 - > 장치 제거/분리 - > 장치 제거 -> 숨김 장치 제거 표시 를 하시면 기존에 있던 랜카드가 그대로 남아있습니다.

이전 랜카드를 제거를 하시고 새로 추가된 랜카드도 다시 제거를 한 다음 랜카드를 다시 잡아 주시면 됩니다.

원격서버 및 로컬 터미널 세션 끊어 주기

Windows2000 Server 및 Windows Server 2003 에서는 관리용 터미널 세션으로 2개 밖에 제공하지 않습니다.

그런데, 터미널에 접속후 연결을 끊지 않을 경우 다른 사용자의 로그인이 불가능합니다.

방법은 query session 으로 세션상태를 점검한후, 다음 3개의 명령을 이용해서 세션을 원래대로 해주면 됩니다.

단, 원격서버의 세션을 끊을때는 원격서버에 대한 Admin권한이 있어야 하며, RPC DCOM을 통해서 처리됩니다.

사용법은 간단합니다.

■ reset session
터미널 서버에서 세션을 다시 설정(삭제)할 수 있도록 합니다.
reset session {세션이름 | 세션id} [/server:서버이름] [/v]

■ logoff
세션에서 사용자를 로그오프시키고 서버에서 세션을 삭제합니다.
logoff [세션이름 | 세션id] [/server:서버이름] [/v]

/v : 수행할 동작에 대한 정보를 표시합니다.

■ tsdiscon
터미널 서버에서 세션의 연결을 끊습니다.

tsdiscon [세션id | 세션이름] [/server:서버이름] [/v]


■ query session
터미널 서버에 있는 세션에 대한 정보를 표시합니다. 목록에는 활성 세션뿐 아니라 서버에서 실행하는 다른 세션에 대한 정보도 표시됩니다.
query session [세션이름 | 사용자이름 | 세션id] [/server:서버이름] [/mode] [/flow] [/connect] [/counter]

/mode : 현재의 라인 설정을 표시합니다.
/flow : 현재의 흐름 제어 설정을 표시합니다.
/connect : 현재의 연결 설정을 표시합니다.
/counter : 만든 세션, 연결이 끊긴 세션 및 다시 연결된 세션의 전체 개수를 포함하여 현재의 카운터 정보를 표시합니다.

IIS 상태 코드 - HTTP 및 FTP

HTTP 코드

1xx - 정보 전달용
이 상태 코드는 임시 응답을 나타냅니다. 클라이언트가 정식 응답을 받으려면 하나 이상의 1xx 응답을 받을 준비가 되어 있어야 합니다.
a.. 100 - 계속 작업합니다.
b.. 101 - 프로토콜을 전환합니다.

2xx - 완료
상태 코드의 이러한 클래스는 서버가 클라이언트 요청을 받아들였음을 나타냅니다.

a.. 200 - 클라이언트 요청이 성공했습니다.
b.. 201 - 만들어졌습니다.
c.. 202 - 받아들여졌습니다.
d.. 203 - 권한이 없는 정보입니다.
e.. 204 - 내용이 없습니다.
f.. 205 - 내용을 다시 설정합니다.
g.. 206 - 일부 내용

3xx - 리디렉션
클라이언트 브라우저는 요청을 처리하기 위해 좀더 조치를 취해야 합니다. 예를 들어, 브라우저는 서버에서 다른 페이지를 요청해야 하거나 프록시 서버를 사용하여 요청을 반복해야 할 수 있습니다.
a.. 300 - 여러 선택
b.. 301 - 영구적으로 이동됩니다.
c.. 302 - 찾았습니다.
d.. 303 - 기타 참조
e.. 304 - 수정되지 않았습니다.
f.. 305 - 프록시를 사용합니다.
g.. 306 - 이 코드는 예약되었지만 사용되지 않습니다.
h.. 307 - 임시 리디렉션

4xx - 클라이언트 오류
오류가 발생하고 클라이언트에 문제가 있는 것으로 나타납니다. 예를들어, 클라이언트가 존재하지 않는 페이지를 요청하거나 올바른 인증 정보를 제공하지 않을 수도 있습니다.
a.. 400 - 요청이 잘못되었습니다.
b.. 401 - 액세스가 거부되었습니다. IIS는 오류의 원인을 보다 구체적으로 나타내는 여러 다른 401 오류를 정의합니다. 이러한 특정 오류 코드는 브라우저에 표시되지만 IIS 로그에는 표시되지 않습니다.
a.. 401.1 - 로그온하지 못했습니다.
b.. 401.2 - 서버 구성으로 인해 로그온하지 못했습니다.
c.. 401.3 - 리소스의 ACL에 의해 액세스가 거부되었습니다.
d.. 401.4 - 필터에 의해 권한을 부여하지 못했습니다.
e.. 401.5 - ISAPI/CGI 응용 프로그램에 의해 권한을 부여하지 못했습니다.
c.. 403 - 금지. IIS는 오류의 원인을 보다 구체적으로 나타내는 여러 다른 403 오류를 정의합니다.
a.. 403.1 - 실행 액세스 금지
b.. 403.2 - 읽기 액세스 금지
c.. 403.3 - 쓰기 액세스 금지
d.. 403.4 - SSL이 필요합니다.
e.. 403.5 - SSL 128이 필요합니다.
f.. 403.6 - IP 주소가 거부되었습니다.
g.. 403.7 - 클라이언트 인증서가 필요합니다.
h.. 403.8 - 사이트 액세스가 거부되었습니다.
i.. 403.9 - 사용자가 너무 많습니다.
j.. 403.10 - 구성이 올바르지 않습니다.
k.. 403.11 - 암호 변경
l.. 403.12 - 매퍼가 액세스를 거부했습니다.
m.. 403.13 - 클라이언트 인증서를 취소했습니다.
n.. 403.14 - 디렉터리 목록이 거부되었습니다.
o.. 403.15 - 클라이언트 액세스 라이센스가 초과되었습니다.
p.. 403.16 - 클라이언트 인증서가 신뢰되지 않거나 잘못되었습니다.
q.. 403.17 - 클라이언트 인증서가 만료되었거나 아직 유효하지 않습니다.
d.. 404 - 찾을 수 없습니다.
e.. 404.1 - 사이트를 찾을 수 없습니다.
f.. 405 - 메서드를 허용할 수 없습니다.
g.. 406 - 받아들일 수 없습니다.
h.. 407 - 프록시 인증이 필요합니다.
i.. 412 - 전제 조건이 실패했습니다.
j.. 414 - 요청 URI가 너무 깁니다.

5xx - 서버 오류
서버에 오류가 발생하여 요청을 완료할 수 없습니다.
a.. 500 - 내부 서버 오류
b.. 500.12 - 응용 프로그램 다시 시작
c.. 500.13 - 서버 사용량이 많습니다.
d.. 500.15 - GLOBAL.ASA의 요청을 허용할 수 없습니다.
e.. 500-100.ASP - ASP 오류(이 코드는 IIS 5.0에서만 발생함)
f.. 501 - 구현되지 않았습니다.
g.. 502 - 불량 게이트웨이
h.. 503 - 서비스를 사용할 수 없습니다.
i.. 504 - 게이트웨이가 시간을 초과했습니다.
j.. 505 - HTTP 버전이 지원되지 않습니다. 일반 HTTP 상태 코드와 그 원인
a.. 200 - 성공했습니다. 이 상태 코드는 IIS가 요청을 성공적으로 처리했음을 나타냅니다.
b.. 304 - 수정되지 않았습니다. 클라이언트가 이미 해당 캐시에있는 문서를 요청하고 이 문서는 캐시된 이후로 수정되지 않았습니다.
클라이언트가 서버에서 문서를 다운로드하는 대신 문서의 캐시된 복사본을 사용합니다.
c.. 401.1 - 로그온하지 못했습니다. 올바르지 않은 사용자 이름이나 암호로 인해 로그온 시도가 실패했습니다.
d.. 401.3 - 리소스의 ACL에 의해 액세스가 거부되었습니다. 이것은 NTFS 사용 권한에 문제가 있음을 나타냅니다. 이 오류는 액세스하려는 파일의 사용 권한이 올바른 경우에도 발생할 수 있습니다. 예를 들어, IUSR 계정에 C:\Winnt\System32\Inetsrv 디렉터리에 대한 액세스 권한이 없는 경우 이 오류가 나타납니다. 이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
187506 IIS 사이트의 작동에 필요한 NTFS 권한 목록

e.. 403.1 - 실행 액세스 금지. 이 오류 메시지의 두 가지 일반적인 원인은 다음과 같습니다.
a.. 실행 권한이 부족합니다. 예를 들어, 사용 권한이 없음으로 설정되는 디렉터리에서 ASP 페이지에 액세스하려고 하거나 디렉터리에서 스크립트 권한으로 CGI(Common Gateway Interface) 스크립트를 실행하려고 하는 경우 이 오류 메시지가 나타납니다. 실행 권한을 수정하려면 MMC(Microsoft ManagementConsole)에서 해당 디렉터리를 마우스 오른쪽 단추로 누르고 등록 정보를 누른 다음 디렉터리 탭을 누르고 실행 권한 설정이 액세스하려는 콘텐트에 적절한지확인합니다.
b.. 실행하려는 파일 형식에 대한 스크립트 매핑은 사용 중인 동사(예: GET 또는 POST)를 인식하도록 설정되지 않습니다. 이 작업을 확인하려면 MMC에서 디렉터리를 마우스 오른쪽 단추로 누르고 등록 정보를 누른 다음 디렉터리 탭에서 구성을 누르고 해당 파일 형식에 대한 스크립트 매핑이 사용중인 동사를 허용하도록 설정되었는지 확인합니다.
f.. 403.2 - 읽기 액세스 금지. IIS가 디렉터리에 대한 읽기액세스 권한을 허용하도록 설정되었는지 확인합니다. 또한 기본 문서를 사용하려면 이 문서가 있는지 확인합니다. 이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
247677 오류 메시지: 403.2 Forbidden: Read Access Forbidden

g.. 403.3 - 쓰기 액세스 금지. IIS 사용 권한 및 NTFS 사용 권한이 디렉터리에 대한 쓰기 액세스 권한을 부여하도록 설정되었는지 확인합니다.이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248072 오류 메시지: 403.3 Forbidden: Write Access Forbidden

h.. 403.4 - SSL이 필요합니다. 보안 채널 필요 옵션을 해제하거나 HTTP 대신 HTTPS를 사용하여 페이지에 액세스합니다. 인증서가 설치되어 있지 않은 웹 사이트에 대해 이 오류가 나타나면 Microsoft 기술 자료의 다음 문서를 참조하십시오.
224389 오류 메시지: HTTP Error 403, 403.4, 403.5 Forbidden: SSL Required

i.. 403.5 - SSL 128이 필요합니다. 128비트 암호화 필요 옵션을 해제하거나 128비트 암호화를 지원하는 브라우저를 사용하여 페이지를 봅니다. 인증서가 설치되어 있지 않은 웹 사이트에 대해 이 오류가 나타나면 Microsoft 기술 자료의 다음 문서를 참조하십시오.
224389 오류 메시지: HTTP Error 403, 403.4, 403.5 Forbidden: SSL Required

j.. 403.6 - IP 주소가 거부되었습니다. 현재 IP 주소에 대한 액세스가 거부되도록 서버가 구성되었습니다. 이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248043 오류 메시지: 403.6 - 금지: IP 주소 거부

k.. 403.7 - 클라이언트 인증서가 필요합니다. 서버가 클라이언트 인증의 인증서를 요구하도록 구성되었지만 올바른 클라이언트 인증서가 설치되어 있지 않습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
190004 Error 403.7 또는 $$Connection to Server Could Not Be Established$$

186812 PRB: 오류 메시지: 403.7 사용 금지: 클라이언트 인증서가 필요함

l.. 403.8 - 사이트 액세스가 거부되었습니다. 서버에 액세스하는 데 사용하는 도메인의 도메인 이름 제한이 설정되었습니다.이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248032 오류 메시지: Forbidden: Site Access Denied 403.8

m.. 403.9 - 사용자가 너무 많습니다. 서버에 연결된 사용자 수가 설정되어 있는 연결 제한을 초과합니다. 이 제한을 변경하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248074 오류 메시지: 액세스 금지: 연결된 사용자가 너무
많습니다. 403.9

참고: Microsoft Windows 2000 Professional 및 Microsoft Windows XP Pofessional에서 IIS는 연결이 10개로 자동 제한됩니다. 이 제한을 변경할 수 없습니다.
n.. 403.12 - 매퍼가 액세스를 거부했습니다. 액세스하려는 페이지에 클라이언트 인증서가 필요하지만 클라이언트 인증서에 매핑된 사용자 ID로는 파일에 액세스할 수 없습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
248075 오류: HTTP 403.12 - Access Forbidden: Mapper Denied Access

o.. 404 - 찾을 수 없습니다. 이 오류는 액세스하려는 파일이 이동되거나 삭제된 경우에 발생합니다. URLScan 도구를 설치한 후 제한된 파일 확장명을 갖는 파일에 액세스하려고 하는 경우에도 발생합니다. 이 경우 로그 파일 항목에서 해당 요청에 대해 "Rejected by URLScan"이 나타납니다.
p.. 500 - 내부 서버 오류. 광범위한 서버쪽 오류에 대해 이 오류 메시지가 나타납니다. 이벤트 뷰어 로그에는 이 오류가 발생하는 이유에 대한 자세한 내용이 포함될 수 있습니다. 또한 HTTP 오류 메시지를 해제하여 오류에 대한 자세한 설명을 나타낼 수 있습니다. HTTP 오류 메시지를 해제하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
294807 HOWTO: 서버쪽에서 Internet Explorer 5 $$HTTP 오류 메시지 표시$$ 기능 해제

q.. 500.12 - 응용 프로그램 다시 시작. 이 동작은 IIS가 응용 프로그램을 다시 시작하고 있는 중에 ASP 페이지를 로드하려고 했음을 나타냅니다. 이 메시지는 페이지를 새로 고치면 사라집니다. 페이지를 새로 고쳐도 이 메시지가 나타나면 Global.asa 파일을 검색 중인 바이러스 백신 소프트웨어가 원인일 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음
문서를 참조하십시오.
248013 오류 메시지: HTTP 오류 500-12 응용 프로그램 다시 시작

r.. 500-100.ASP - ASP 오류. 코드에 오류가 있는 ASP 페이지를 로드하려고 하면 이 오류 메시지가 나타납니다. 오류에 대한 좀더 구체적인 정보를 보려면 HTTP 오류 메시지를 해제합니다. 기본적으로 이 오류는 기본 웹 사이트에서만 사용할 수 있습니다.기본이 아닌 웹 사이트에서 이 오류를 보는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
261200 500-100.asp의 ASP 오류 메시지 대신 HTTP 500 오류 메시지가 나타난다

s.. 502 - 불량 게이트웨이. 유효한 HTTP 헤더 세트를 반환하지 않는 CGI 스크립트를 실행하려고 하면 이 오류 메시지가 나타납니다.


FTP 코드

1xx - 긍정적인 예비 회신

이 상태 코드는 동작이 시작되었지만 클라이언트가 새 명령을 계속 수행하기 전에 다른 회신을 기대한다는 것을 나타냅니다.
a.. 110 마커 회신을 다시 시작합니다.
b.. 120 nnn 분 내에 서비스 준비
c.. 125 데이터 연결이 이미 열려 있고 전송을 다시 시작합니다.
d.. 150 파일 상태에 문제가 없으며 지금 데이터 연결을 열려고 합니다.
2xx - 긍정적인 완료 회신

동작이 완료되었습니다. 클라이언트가 새 명령을 실행할 수 있습니다.
a.. 200 명령에 문제가 없습니다.
b.. 202 명령이 구현되지 않으며 이 사이트에 불필요합니다.
c.. 211 시스템 상태 또는 시스템 도움말 회신
d.. 212 디렉터리 상태
e.. 213 파일 상태
f.. 214 도움말 메시지
g.. 215 NAME 시스템 형식. 여기서 NAME은 지정된 번호(Assigned Numbers) 문서 목록의 공식 시스템 이름입니다.
h.. 220 새 사용자에게 서비스가 준비되었습니다.
i.. 221 서비스가 컨트롤 연결을 닫습니다. 필요한 경우 로그아웃됩니다.
j.. 225 데이터 연결을 열지만 전송하지 않습니다.
k.. 226 데이터 연결을 닫습니다. 요청된 파일 동작에 성공했습니다(예: 파일 전송 또는 파일 중단).
l.. 227 Passive 모드 입력(h1,h2,h3,h4,p1,p2)
m.. 230 사용자가 로그인하여 진행합니다.
n.. 250 요청된 파일 동작이 문제 없이 완료되었습니다.
o.. 257 "PATHNAME"이 만들어졌습니다.
3xx - 긍정적인 중간 회신

명령이 성공했지만 서버에는 요청을 처리하는 데 클라이언트의 추가 정보가 필요합니다.
a.. 331 사용자 이름에 문제가 없으며 암호가 필요합니다.
b.. 332 로그인을 위해 계정이 필요합니다.
c.. 350 좀더 자세한 정보를 보류 중인 요청된 파일 동작입니다.
4xx - 일시적인 부정적 완료 회신

명령이 성공하지 못했지만 오류는 일시적입니다. 클라이언트가 명령을 다시 시도하면 성공할 수도 있습니다.
a.. 421 서비스를 사용할 수 없으며 컨트롤 연결을 닫습니다. 이것은 서비스가 프로그램을 종료해야 함을 아는 경우 명령에 대한 응답이 될 수
있습니다.
b.. 425 데이터 연결을 열 수 없습니다.
c.. 426 연결이 닫히고 전송이 중단됩니다.
d.. 450 요청된 파일 동작이 수행되지 않았습니다. 파일을 사용할수 없습니다(예: 파일 사용 중).
e.. 451 요청된 동작이 중단되었습니다. 처리 중 로컬 오류가 발생했습니다.
f.. 452 요청된 동작이 수행되지 않았습니다. 시스템의 저장 공간이 부족합니다.
5xx - 영구적인 부정적 완료 회신

명령이 성공하지 못했으며 오류는 영구적입니다. 클라이언트가 명령을 다시 시도하면 같은 오류가 나타납니다.
a.. 500 구문 오류, 명령을 인식할 수 없습니다. 여기에는 명령줄이 너무 긴 경우와 같은 오류가 포함됩니다.
b.. 501 매개 변수 또는 인수의 구문 오류입니다.
c.. 502 명령이 구현되지 않았습니다.
d.. 503 명령 순서가 잘못되었습니다.
e.. 504 해당 매개 변수에 대해 명령이 구현되지 않았습니다.
f.. 530 로그인되지 않았습니다.
g.. 532 파일을 저장하는 데 계정이 필요합니다.
h.. 550 요청된 동작이 수행되지 않았습니다. 파일을 사용할 수 없습니다(예: 파일 없음. 액세스 못함)
i.. 551 요청된 동작이 중단되었습니다. 페이지 형식을 알 수 없습니다.
j.. 552 요청된 파일 동작이 중단되었습니다. 현재 디렉터리 또는 데이터 집합에 대해 저장소 할당이 초과되었습니다.
k.. 553 요청된 동작이 수행되지 않았습니다. 파일 이름을 허용할 수 없습니다.



일반 FTP 상태 코드와 그 원인

a.. 150 - FTP는 두 가지 포트를 사용합니다. 즉, 명령을 보내는 경우에는 21을, 데이터를 보내는 경우에는 20을 사용합니다. 상태 코드 150은 서버가 포트 20에서 새 연결을 열어 데이터를 보내려고 한다는 것을 나타냅니다.
b.. 226 - 이 명령은 포트 20에서 데이터 연결을 열어 파일 전송과 같은 동작을 수행합니다. 이 동작이 완료되고 데이터 연결이 닫힙니다.
c.. 230 - 이 상태 코드는 클라이언트가 올바른 암호를 보낸 후에 나타납니다. 사용자가 로그온되었음을 나타냅니다.
d.. 331 - 클라이언트가 사용자 이름을 보낸 후에 이 상태 코드가 나타납니다. 이 동일한 상태 코드는 제공된 사용자 이름이 시스템의 올바른 계정인지 여부에 관계 없이 나타납니다.
e.. 426 - 이 명령은 데이터 연결을 열어 동작을 수행하지만 이 동작이 취소되고 데이터 연결이 닫힙니다.
f.. 530 - 이 상태 코드는 사용자 이름과 암호 조합이 유효하지 않으므로 사용자가 로그온할 수 없음을 나타냅니다. 사용자 계정을 사용하여 로그온하는 경우 사용자 이름 또는 암호를 잘못 입력했거나 익명 액세스만 허용하도록 선택했을 수 있습니다. 익명 계정으로 로그온하는 경우 IIS가 익명 액세스를 거부하도록 구성되었을 수도 있습니다.
g.. 550 - 이 명령은 지정된 파일을 사용할 수 없으므로 실행되지 않습니다. 예를 들어, 이 상태 코드는 존재하지 않는 파일을 가져오려고(GET) 하거나 쓰기 액세스 권한이 없는 디렉터리에 파일을 두려고(PUT) 하는 경우에 발생합니다.

 
http://support.microsoft.com/kb/318380


26-TechNetB_masthead_ltr.gif

2003/04/18

Remote SMTP CDONTS를 이용하여 메일발송

다음 Asp 코드는 Remote SMTP Server를 이용해서 메일을 발송하는 예제 코드입니다.

'Send by connecting to port 25 of the SMTP server.
Dim iMsg
Dim iConf
Dim Flds
Dim strHTML

Const cdoSendUsingPort = 2

set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")

Set Flds = iConf.Fields

'Set the CDOSYS configuration fields to use port 25 on the SMTP server.

With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
ToDo: Enter name or IP address of remote SMTP server.
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "remote server"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Update
End With

'Build HTML for message body.
strHTML = ""
strHTML = strHTML & ""
strHTML = strHTML & ""
strHTML = strHTML & " This is the test HTML message body
"
strHTML = strHTML & ""
strHTML = strHTML & ""

'Apply the settings to the message.
With iMsg
Set .Configuration = iConf
.To = "mailfrom@serverinfo.pe.kr" 'ToDo: Enter a valid email address.
.From = "mailto@serverinfo.pe.kr" 'ToDo: Enter a valid email address.
.Subject = "This is a test CDOSYS message (Sent via Port 25)"
.HTMLBody = strHTML
.Send
End With

'Clean up variables.
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing

MsgBox "Mail Sent!"


참고 : MSDN

2003/04/17

Windows2003 에서 오픈포트별 서비스 찾는 방법

해당 포트를 사용하는 프로세스 출력하기

Netstat.exe 유틸리티에는 각 연결과 관련된 프로세스 ID를 표시할 수 있는 새로운 -o 스위치가 Windows2003부터 지원합니다.

이 프로세스 ID 정보는 특정 포트에서 수신하는 프로세스(프로그램)를 확인하는 데 사용할 수 있습니다.

예를 들어 netstat -ano 명령은 다음과 같은 출력을 생성할 수 있습니다. ..

---------------------------------------------------
Proto    Local Address    Foreign Address    State        PID
TCP      0.0.0.0:80       0.0.0.0:0          Listening    888
TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1772
TCP    0.0.0.0:8787           0.0.0.0:0              LISTENING       1772
TCP    10.0.0.20:445          10.0.0.16:2138         ESTABLISHED     4
TCP    10.0.0.20:1010         10.0.0.16:2797         ESTABLISHED     4
TCP    10.0.0.20:1010         10.0.0.16:2798         ESTABLISHED     4
TCP    10.0.0.20:1037         207.46.106.107:1863    ESTABLISHED     504
TCP    10.0.0.20:2685         220.85.13.185:80       CLOSE_WAIT      504
TCP    10.0.0.20:2686         220.85.13.186:80       CLOSE_WAIT      504

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

작업 관리자를 사용하면 나열되는 프로세스 ID를 프로세스 이름(프로그램)에 대조할 수 있습니다. 이 기능을 사용하면 프로그램이 현재 사용하고 있는 특정 포트를 찾을 수 있습니다.

프로그램이 이 특정 포트를 이미 사용하고 있으므로 다른 프로그램은 같은 포트를 사용할 수 없습니다.

2003/04/09

Windows2003 Server 제품군 종류

Windows NT와 Windows 2000 Server 등 마이크로소프트의 기존 서버 제품군의 장점을 그대로 살리면서 보안, 성능, 안정성 등이 한층 강화된 Windows Server 2003이 출시됨으로 인해 하이엔드 서버 시장에서의 마이크로소프트의 영향력이 보다 확대될 것으로 예상된다. 5월부터 본격적으로 판매될 Windows Server 2003 제품군은 ▲ 기능에 중점을 둠으로써 웹 서비스를 제공하고 호스팅하는 데 적합한 Windows Server 2003 Web Edition, ▲ 기업 규모에 관계없이 일상적인 업무를 처리하는 데 이상적인 Windows Server 2003 Standard Edition, ▲ 중간 규모 이상의 기업에 적합한 서버로 기업 인프라, 업무용 응용 프로그램, 전자상거래 업무 등에 필요한 기능을 제공하는 Windows Server 2003 Enterprise Edition, ▲ 대형 데이터베이스와 고성능 애플리케이션을 구동하는 데 적합한 서버인 Windows Server 2003 Datacenter Edition 등 네 개의 제품으로 구성돼 있다.


Windows2003 Server Web Edition
IIS(Internet Information Services) 6.0, 마이크로소프트 ASP.NET, 마이크로소프트 .NET Framework의 장점을 활용한 Web Edition은 웹 응용프로그램과 웹 페이지, XML 웹 서비스의 구축 및 호스팅을 위해 설계되었다. 그런 점에서 Windows Server 운영체제의 차세대 웹 인프라 기능을 갖고 있다. Windows Server 2003 Web Edition이 지원하는 주요 내용을 살펴보면 우선 ASP.NET과 .NET Framework를 포함한 고급 웹 응용 프로그램 개발과 호스팅 기능을 운영체제에 통합해 제공하고 있다. 또 2웨이 SMP(대칭형 다중 처리)와 2GB의 램을 지원한다. 그러나 웹 서버용으로 설계된 제품인 만큼 Active Directory와 같은 기능을 수행할 수 없기 때문에 소프트웨어 제한 정책, 원격 설치 서비스, 마이크로소프트 메타디렉토리 서비스, IAS(인터넷 인증 서비스) 등의 관리 기능을 사용할 수 없다.
-64비트 아이태티움 지원 안함
-Hot Add(가동중 메모리 추가) 지원안함
-비균등 메모리 액세스(NUMA) 지원안함
-프로세스제어 지원안함
-RAM 2G 까지 지원
-4-Way 지원
-터미널서버 지원안함
-NLB지원
-섀도 복사본 복원 지원안함
-WMI 필터링 지원안함
-Windows Media Service 지원안함

Windows2003 Server Standard Edition
기업 규모에 관계없이 일상적인 업무를 처리하는 데 적합한 Windows Server 2003 Standard Edition은 스마트 카드 지원, 대역폭 조절 및 플러그 앤 플레이 지원 등과 같은 측면에서 Windows 2000 Server의 기능을 향상시켰다. 또 공용 언어 런타임 등과 같은 새로운 기술을 통해 악의적 코드나 잘못 설계된 코드로부터 네트워크를 더 안전하게 보호할 수 있다. 따라서 Windows Server 2003 Standard Edition은 파일 및 프린터 공유, 인터넷 보안 연결, 중앙 집중화된 데스크톱 응용 프로그램 배포와 직원, 파트너 및 고객 간의 원활한 공동 작업 수행에 필요한 솔루션을 제공한다.
-64비트 아이태티움 지원 안함
-Hot Add(가동중 메모리 추가) 지원안함
-비균등 메모리 액세스(NUMA) 지원안함
-프로세스제어 지원안함
-RAM 4G까지 지원
-8-Way지원
-AD지원
-터미널 서버지원
-WMI지원
-Windows Media Service지원

Windows2003 Server Enterprise Edition
중간 규모 이상의 기업에 적절한 Windows Server 2003 Enterprise Edition은 네트워킹, 메시징, 인벤토리 및 고객 서비스 시스템, 데이터베이스, 전자상거래 웹 사이트, 파일 및 인쇄 서버 등의 응용프로그램을 실행하는 데 적합하다. 특히 최적의 유연성과 확장성을 제공하기 위해 Enterprise Edition은 32bit 에디션과 64bit 에디션으로 제공된다.
Enterprise Edition의 특징적인 기능을 살펴보면 우선 클러스터 서비스를 들 수 있다. 최대 8노드의 클러스터를 지원하는 Windows Server 2003 Enterprise Edition은 서버 클러스터를 이용해 중요한 데이터베이스 관리, 파일 공유, 인트라넷 데이터 공유, 메시징 및 일반 비즈니스 응용 프로그램의 가용성과 내결함성을 높였다.
따라서 응용프로그램에 향상된 확장 옵션을 제공할 뿐만 아니라 지리적으로 분산된 클러스터 환경에서 하드웨어를 더욱 쉽게 추가할 수 있다.
-인텔 64비트 아이테니움 지원
-Hot Add 지원
-NUMA지원
-프로세스 제어 지원
-메모리 64G까지 지원
-64-Way지원
-터미널서버 세션 디렉토리 지원
-NLB 및 클러스터서비스 지원

Windows2003 Server Datacenter Edition
최고 수준의 확장성과 가용성, 안정성이 필요한 기업의 미션 크리티컬한 업무 영역에 사용될 수 있도록 설계된 Windows Server 2003 Datacenter Edition은 2003 Enter-prise Edition에 비해 더욱 강력한 다중 처리와 더 많은 메모리를 지원한다. 따라서 Windows 2003 Datacenter Edition은 OEM 등의 공인 서버 공급업체와 마이크로소프트에서 제공하는 Windows Datacenter Program을 통해서만 구입할 수 있다.
-일부 기능을 제외한 모든 기능 지원.




08-TechNetB_masthead_ltr.gif

2003/04/05

FTP 클라이언트에서 가상 디렉터리가 안보일 경우

□ 상황
FTP 클라이언트를 사용할 때는 FTP 서비스용으로 인터넷 서비스 관리자에서 만든 가상 디렉터리를 생성하였으나, FTP클라이언트로 접속했을때 가상 디렉토리 목록이 보이지 않습니다.

그러나 가상 디렉터리에 "cd" 명령을 실행하거나 해당 가상 디렉터리의 "ls" 또는 "dir"을 실행하면 내용 목록이 나타납니다.


□ 해결 과정
해결 방법은 FTP 클라이언트가 그 이름을 볼 수 있도록 가상 디렉터리의 위치에 같은 이름으로 실제 디렉터리를 만드는 것입니다.

/ --> c:\inetpub\ftproot
/sample --> d:\ftpvdir

c:\inetpub\ftproot\sample 디렉터리를 만들면 FTP 클라이언트가 디렉터리 목록에서 해당 디렉터리를 보게 됩니다. FTP 클라이언트는 d:\ftpvdir에 있는 파일을 보고/가져올 수 있습니다.
그러나, 파일을 c:\inetpub\ftproot\sample에 실제로 배치하면 FTP 클라이언트가 보지 못하거나 가져올 수 없습니다. 비어 있는 폴더로 있어야 합니다.

또한 FTP 서비스 등록 정보에서 추가를 선택하여 디렉터리 탭에서 FTP 서비스에 대한 가상 디렉터리를 만들 수 있습니다. 가상 디렉터리 별칭은 해당 디렉터리로 변경하는 데 사용됩니다.

디렉터리로 변경하는 방법은 FTP 서버에 액세스할 때 웹 브라우저를 사용하는지 아니면 표준 FTP 클라이언트를 사용하는 지에 따라 약간 차이가 있으나 대동소이 합니다.

2003/02/24

StandAlone System 시스템 백업 및 복원

백업 시스템디스크 전체백업.
백업시 시스템상태 꼭. 백업.
hdd 관리도구에서 포맷후, 꼭 활성화 체크.
활성화를 할경우 bootable 상태가 됨. 복원.
시스템전체복원 및 시스템상태복원.
시스템상태 복원결과, 레지스트리 복사. winnt 폴더 전체 복사.
복원 hdd에 system 계정에 full 권한세팅.

2003/02/13

Oracle ODBC 세팅시 에러가 날 경우

Window상에 오라클을 설치했을 경우 관련 드라이버가 설치되었고, ODBC 및 OLE-DB 테스트에서 접속이 잘이루어 짐에도 불구하고, 다음과 같은 에러가 발생합니다.

현상:

Oracle 지원 ODBC 드라이버를 이용할경우
---------------------
Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle 클라이언트 및 네트워킹 구성 요소가 없습니다. 이 구성 요소는
Oracle Corporation에서 제공하며 Oracle 버전 7.3.3 또는 그 이후 버전의 클라이언트 소프트웨어 설치의 일부입니다. 공급자가 작동하려면 이 구성 요소가 설치되어야 합니다.

MS 지원 ODBC 드라이버를 이용할경우
--------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 드라이버 관리자] SQL_HANDLE_ENV에서 드라이버의 SQLAllocHandle을 실패했습니다.



원인:
Oracle ODBC 및 OLE-DB를 통해서 오라클서버에 접속할때, IIS의 asp에서 접속을 시도하게 됩니다. 그러나, 일반적으로 oracle 폴더는 관리자만 접근가능하도록 세팅이 되어 있습니다. 물론, 디폴트상태에서는 everyone 접근이지만, 보안을 강화하는 측면에서 관리자만 세팅을 해놓습니다.


그래서, iis의 실행계정인 IWAM_(computer이름) 이 접근을 하지 못해서 에러가 나는 것입니다. 그러나, 이런경우 에러메시지를 권한관련 에러를 뿌려야 하는데, 에러 메시지를 보면 드라이버 문제라고 표시를 합니다.


해결방법:

대상 디렉토리 : ORACLE_HOME 폴더(D:\Oracle\Ora81)
권한을 줄 개정 : IWAM_(computer이름)
권한의 종류 : 읽기 및 실행권한

여러 웹 서버에서 단일 로그온을 구현하는 방법

ㄴㅇㄹㄴㅇㄹ

2003/02/11

Windows2000 기본 서비스 포트 종류

The information in this article applies to:
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Server
-------------------------------------------------------------------------------

SUMMARY
=========
This article describes the most common ports, protocols, and services that are opened on a Windows 2000-based server that is running Active Directory. The purpose of this article is to list the different services and their respective ports, not to explain how to configure the ports for either a firewall or a proxy.


MORE INFORMATION
==================


21/TCP (Transmission Control Protocol) -- FTP
------------------------------------------
This File Transfer Protocol (FTP) server is part of Internet Information Services (IIS) and is administered from the IIS administration tool. FTP is a common method to transfer files between two networked computers and to enable the convenient use of remote file storage capabilities.

25/TCP -- SMTP
---------------
This Simple Mail Transfer Protocol (SMTP) service is administered from the IIS administration tool. SMTP is the protocol that is used to send e-mail messages by means of the Internet.


80/TCP -- HTTP
--------------
Hypertext Transfer Protocol (HTTP) is the set of rules for exchanging files (for example, text, graphic images, sound, video, and other multimedia
files) on the World Wide Web (WWW).In comparison to the Transmission Control Protocol/Internet Protocol(TCP/IP) suite of protocols (that are the basis for information exchange on the Internet), HTTP is a program protocol.


88/UDP (User Datagram Protocol) -- Kerberos
------------------------------------------
Kerberos protocol is a network authentication method that is based on the key distribution model. This protocol enables entities that are communicating over networks to prove their identity to each other and at the same time this protocol can prevent eavesdropping or replay attacks. The Kerberos Key Distribution Center (KDC) listens on this port for ticket requests. Port 88 for the Kerberos protocol can also be TCP/UDP.


119/TCP -- NNTP
--------------
Network News Transfer Protocol (NNTP) is the predominant protocol that is used by computers for managing the notes that are posted on Usenet newsgroups. NNTP servers manage the global network of collected Usenet newsgroups.


123/UDP -- 시간 동기화 서버


135/TCP -- RPC
--------------
Remote procedure call (RPC) is a facility that enables a program on one Windows-based computer (the client computer) to invoke the services of another program that is running on a separate Windows-based computer (the
server) in a distributed network.RPC is a program-level protocol that can use the communications services of any of the Windows networking protocols, which includes TCP/IP.


137/UDP -- NetBIOS Name Server
------------------------------
The network basic input/output system (NetBIOS) Name Server (NBNS) protocol, which is part of the NetBIOS over TCP/IP (NetBT) family of protocols, provides a means for hostname and address mapping on a NetBIOS-aware network.


138/UDP -- NetBIOS Datagram
---------------------------
The NetBIOS Datagram is part of the NetBIOS over TCP/IP (NetBT) family of protocols and is used for network logon and browsing.


139/TCP -- NetBIOS Session Services
-----------------------------------
NetBIOS Session Services are part of the NetBIOS over TCP/IP (NetBT) family of protocols and is used for server message block (SMB), file sharing, and printing.


389/UDP -- LDAP
---------------
LDAP is the Lightweight Directory Access Protocol. LDAP is designed to be a standard way of providing access to directory services. In Windows 2000, LDAP is the primary way that the operating system accesses the Active Directory database.


443/TCP -- HTTPS
----------------
Secure Hypertext Transfer Protocol (HTTPS) is a variant of HTTP that is used for handling secure transactions. HTTPS is a unique protocol that is Secure Sockets Layer (SSL) underneath HTTP.


445/TCP -- SMB
--------------
The SMB protocol is used for file sharing in Microsoft Windows NT and Windows 2000. Windows 2000 enables you to run SMB directly over TCP/IP, without the extra layer of NetBT.


464/TCP -- Kerberos Password V5
-------------------------------
The Kerberos change password protocol is used to deny an administrator from setting a password for a new user. This functionality is useful in some environments, and this proposal can be used to enable password setting. This protocol is used when users changes their passwords.


500/TCP -- ISAKMP
-----------------
Internet Security Association and Key Management Protocol (ISAKMP) or IKE (for Windows 2000) is the key exchange mechanism for a virtual private network (VPN). ISAKMP manages the exchange of cryptographic keys and employs a two-phase process for establishing the Internet Protocol security (IPSec) connection between two gateways.


563/TCP -- SNEWS
-----------------
SNEWS is secure NNTP.


593/TCP -- RPC over HTTP
------------------------
RPC over HTTP is used for COM+ Internet Services and requires IIS to operate.


636/TCP -- LDAP over SSL
------------------------
When SSL is enabled, LDAP data that is transmitted and received is encrypted.


1067/TCP -- Installation Bootstrap Service
--------------------------------------
The installation bootstrap protocol server.


1068/TCP -- Installation Bootstrap Service
--------------------------------------
The installation bootstrap protocol client.


1433/TCP - MSSQL Server


1521/TCP -- 오라클


1645/UDP -- IAS: Internet Authentication Service
-------------------------------------------
This service is used for processing Remote Authentication Dial-In User Service (RADIUS) authentication messages and is supported by IAS to provide backward compatibility with earlier RADIUS servers.


1646/UDP -- IAS: Internet Authentication Service
-------------------------------------------
This service is used for processing RADIUS accounting messages and is supported by IAS to provide backward compatibility with earlier RADIUS servers.


1701/UDP -- L2TP
----------------
Layer 2 Tunneling Protocol (L2TP) is a method for encapsulating standard Point-to-Point Protocol (PPP) by means of a variety of media. The protocol also enables encapsulation of PPP by using UDP packets.


1723/UDP -- PPTP
----------------
PPTP is an abbreviation for Point-to-Point Tunneling Protocol. It is an Internet protocol that is commonly used in VPN products. Windows NT supports PPTP server, and both Windows NT and Microsoft Windows 95 support PPTP client.


1755/TCP/UDP -- 윈도우 스트리밍 서비스


1812/UDP -- IAS Internet Authentication Service
------------------------------------------
This service is used for processing RADIUS authentication messages.



1813/UDP -- IAS Internet Authentication Service
------------------------------------------
This service is used for processing RADIUS authentication messages.



3268/TCP -- Microsoft Global Catalog
----------------------------------
Active Directory global catalogs listen on this port.


3269/TCP -- Microsoft Global Catalog with LDAP/SSL
-----------------------------------------------
Microsoft global catalog SSL connections listen on this port.



3389/TCP -- RDP
---------------
Remote Desktop Protocol (RDP) is the protocol that enables a thin client to communicate with the Terminal server over the network. This protocol is based on the International Telecommunication Union (ITU) T.120 protocol, an international, standard multiple-channel conferencing protocol that is currently being used in the Microsoft NetMeeting conferencing software product.


4899 - Remote Administrator

WSH 및 CDONTS를 사용 예약 전자 메일 메시지 만들기

Windows NT Option Pack(NTOP) 및 Windows 2000은 SMTP(Simple Mail Transfer Protocol) 서비스를 기본적으로 설치하여 일반적으로 전자 메일 기반 HTML 양식 처리를 위한 ASP(Active Server Page)를 통해 이를 다양한 목적으로 사용할 수 있도록 합니다. 다음 예제에서는 메일 보내기를 위한 WSH 스크립트뿐만 아니라 메일 보내기를 위한 예약 작업 및 메일 내용을 업데이트할 수 있는 텍스트 파일의 작성을 단계별로 설명합니다.
  1. 예약 작업을 설정하는 첫 단계로 스케줄러 서비스가 실행 중인지 확인합니다.
    1. 작업 표시줄에서 시작, 설정을 차례로 누른 다음 제어판을 누릅니다.
    2. 제어판에서 서비스 애플릿을 두 번 누릅니다.
    3. 작업 스케줄러 서비스가 나올 때까지 아래로 스크롤합니다.
    4. 상태실행 중으로 표시되어 있는지 확인합니다.
    5. 시작자동으로 표시되어 있는지 확인합니다.
    6. 닫기를 눌러 서비스 애플릿을 종료하고 제어판을 닫습니다.
  2. 다음 내용의 텍스트 파일을 만들고 컴퓨터에 C:\Mailout.txt로 저장합니다.
    <p>This is line 1.</p> <p>This is line 2.</p>
  3. WSH 스크립트를 만들어서 방금 만든 텍스트 파일을 읽습니다. 다음 코드를 복사하여 컴퓨터에 "C:\mailout.vbs"로 저장합니다. 보내는 사람/받는 사람을 사용자 지정하려면 strFromstrTo 변수 값을 변경합니다.


  4. 보낼 메일의 예약 작업을 만듭니다. 명령 세션을 열고 다음 예와 같이 입력합니다. 다음 작업은 오후 9시에 한 번 실행됩니다. AT 9:00pm Cscript.exe C:\Mailout.vbs 다음 작업은 매주 월요일 오전 6시에 실행됩니다. AT 6:00am /every:M Cscript.exe C:\Mailout.vbs 다음 작업은 매월 1일 오전 1시에 실행됩니다. AT 1:00am /every:1 Cscript.exe C:\Mailout.vbs 위의 작업에서 선택한 예약 시간이 되면 전자 메일이 보내집니다.



10-TechNetB_masthead_ltr.gif

테이블에서 중복 행을 제거하는 방법

Microsoft SQL Server 테이블에는 중복 행이나 고유하지 않은 기본 키가 없어야 합니다. 본 문서에서는 기본 키를 간략히 "키" 또는 "PK"로 지칭하기도 합니다. 그렇다고 해서 "키" 또는 "PK"가 반드시 "기본 키"를 나타내는 것은 아닙니다.

중복 PK는 엔티티 무결성을 위반하는 것이며 관계형 시스템에서는 허용되지 않습니다. SQL Server에는 엔티티 무결성을 유지하기 위한 인덱스, UNIQUE 제약 조건, PRIMARY KEY 제약 조건, 트리거 등의 다양한 메커니즘이 포함되어 있습니다.

그럼에도 불구하고 중복된 기본 키가 발생하는 예외적 경우가 있습니다. 이런 경우에는 중복된 기본 키를 제거해야 합니다. 중복 PK가 SQL Server 외부의 비관계형 데이터에 존재하고 PK 고유성이 항상 유지되도록 설정되지 않은 상태에서 데이터를 들여올 경우가 여기에 해당합니다. 각 테이블에서의 엔티티 무결성이 항상 유지되도록 설정하지 않는 등의 데이터베이스 디자인 오류로 인해서도 중복된 기본 키가 발생합니다.

대개 고유 인덱스를 만들려고 할 때 중복 PK가 발견되는데, 이런 경우에는 다음 메시지와 함께 작업이 중단됩니다. 이 메시지는 다음과 같습니다.

Msg 1505, Level 16, State 1 Create unique index aborted on duplicate key.

다음은 중복된 기본 키를 확인하고 제거하는 절차입니다.
create table t1(col1 int, col2 int, col3 char(50))
insert into t1 values (1, 1, 'data value one')
insert into t1 values (1, 1, 'data value one')
insert into t1 values (1, 2, 'data value two')

1. 첫 단계는 중복된 기본 키 값이 있는 행을 확인하는 것입니다.
SELECT col1, col2, count(*) FROM t1 GROUP BY col1, col2 HAVING count(*)

결과값이 1 이상일 경우 중복값이 있음을 의미합니다.

중복 PK 값의 집합이 많지 않은 경우 가장 좋은 방법은 이들 집합을 수동으로 하나씩 삭제하는 것입니다.

예를 들면 다음과 같습니다.

set rowcount 1 delete from t1 where col1=1 and col2=1

rowcount 값은 주어진 키 값의 중복 수에서 1을 뺀 값(n-1)이어야 합니다. 이 예에서는 2개의 중복이 있으므로 rowcount가 1로 설정됩니다. col1/col2 값은 위의 GROUP BY 쿼리 결과에서 가져온 것입니다. GROUP BY 쿼리가 여러 행을 반환하는 경우 "set rowcount" 쿼리를 각 행에 대해 한 번씩 실행해야 합니다. 이를 실행할 때마다 rowcount를 특정 PK 값의 중복 수에서 1을 뺀 값(n-1)으로 설정합니다.

행을 삭제하기 전에 행 전체가 중복인지 확인해야 합니다. 가능성이 희박하기는 하지만 PK 값이 중복되고 행 전체는 중복되지 않을 수 있습니다. 이것의 예로 기본 키가 사원 번호인 테이블에 번호는 같지만 각각 고유한 속성을 갖는 두 명의 다른 사람(또는 행)이 있는 경우를 들 수 있습니다. 이러한 경우 중복 키로 인해 행에 유효한 고유 데이터가 온 것일 수도 있습니다. 이 데이터는 나중에 조사 및 조정할 수 있도록 삭제 전에 복사해 놓고 보존해야 합니다.

테이블에 서로 다른 중복 PK 값의 집합이 많은 경우 이들 집합을 하나씩 제거하는 것은 너무 시간 낭비일 수 있습니다. 이러한 경우 다음 절차를 사용할 수 있습니다.

먼저, 위의 GROUP BY 쿼리를 실행하여 중복 PK 값의 집합 수와 각 집합의 중복 수를 파악합니다. 중복 키 값을 선택하여 보관 테이블에 넣습니다. 예를 들면 다음과 같습니다.

SELECT col1, col2, col3=count(*) INTO holdkey
FROM t1 GROUP BY col1, col2
HAVING count(*)

중복 행을 선택하여 보관 테이블에 넣고 처리 중인 중복을 제거합니다. 예를 들면 다음과 같습니다.

SELECT DISTINCT t1.* INTO holddups
FROM t1, holdkey
WHERE t1.col1 = holdkey.col1 AND t1.col2 = holdkey.col2

이 시점에서 holddups 테이블에 고유한 PK가 있어야 하지만 위의 SSN 예에서와 같이 t1에 중복 PK와 고유한 행이 동시에 있는 경우에는 이 테이블의 PK가 고유하지 않게 됩니다. holddups의 각 키가 고유한지, 중복 키와 고유 행이 동시에 존재하지 않는지 확인하십시오. 중복 키와 고유 행이 같이 존재하는 경우에는 일단 작업을 중단하고 주어진 중복 키 값을 보관할 행을 조정해야 합니다. 예를 들어, 아래 쿼리는

SELECT col1, col2, count(*)
FROM holddups
GROUP BY col1, col2

각 행에 대해 1의 개수를 반환해야 합니다. 쿼리가 각 행에 대해 1의 개수를 반환하면 아래의 5단계로 갑니다. 그렇지 않은 경우에는 중복 키와 고유 행이 같이 존재하는 것이므로 저장할 행을 결정해야 합니다. 이를 위해 대개 행을 삭제하거나 이 행에 대한 고유 키 값을 새로 만듭니다. holddups 테이블의 이러한 각 중복 PK에 대해 이들 절차 중 적절한 방법을 사용하십시오. 원본 테이블에서 중복 행을 삭제합니다. 예를 들면 다음과 같습니다.

DELETE t1 FROM t1, holdkey
WHERE t1.col1 = holdkey.col1 AND t1.col2 = holdkey.col2

고유 행을 다시 원래 테이블에 넣습니다. 예를 들면 다음과 같습니다.

INSERT t1 SELECT * FROM holddups


출처 : 데브피아

2003/02/10

서비스 팩 3 설치 후 성능모니터 에러 해결방법

서비스 팩 3 설치 후 성능 카운터 개체가 나타나지 않는 현상.

■ 현상
Windows 2000 서비스 팩 3을 설치한 이후 관리 도구성능에서 카운터 추가를 할 때 성능 개체와 성능 카운터가 나타나지 않을 수 있습니다.

■ 원인
Windows 2000 서비스 팩 3의 문제입니다. ---> 현재 나온 SP4를 설치하시면 됩니다.

■ 해결 방법
이 문제를 해결하려면 다음 방법 중 한 가지를 사용하십시오.

1.핫픽스 설치
한글 Windows 2000 핫픽스는 다음 위치에서 다운로드할 수 있습니다.

http://download.microsoft.com/download/win2000platform/Patch/Q327384/
NT5/KO/Q327384_W2K_SP4_X86_KO.exe


2.레지스트리 변경
레지스트리 편집기(Regedt32.exe)를 시작합니다. 아래의 레지스트리 키를 찾습니다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\
CurrentVersion\Perflib\CollectUnicodeProcessNames


편집 메뉴에서 DWORD를 눌러 데이터를 1에서 0으로 변경한 후 확인 버튼을 누릅니다.
  • 레지스트리 편집기를 종료합니다.

    *레지스트리를 직접 수정하는 방법을 추천합니다.



  • 09-TechNetB_masthead_ltr.gif

    가장 많이 본 글