2006/05/27

PC 자동 보안 업데이트 서비스..

Microsoft 웹사이트에, "PC 자동 보안 업데이트 서비스" 란게 등록되었습니다.

http://www.microsoft.com/korea/security/patchservice/default.mspx

한국정보보호진흥원과 함께, PC 자동 보안 업데이트 서비스를 제공한다고 합니다..
작동은,. Active-X 형태이고, 이 Active-X 가 호출되는 웹페이지 접속시 다운르드 및 설치를 하게 된다고 합니다.

윈도우 자체의 자동업데이트 보다 장점이 더 많다고 하는데,..  효과는 의문입니다..

2006/05/19

Windows 서버 시스템 개요 및 네트워크 포트

다음문서는, Microsoft 의 KB로, Windows Server를 운영하는데 필요한 각 서비스의 필요한 포트 , 프로토콜등 요구사항에 대해서 아주 잘 정리되어 있는 문서입니다.

Windows 서버 시스템의 서비스 개요 및 네트워크 포트 요구 사항
http://support.microsoft.com/kb/832017/ko

서버를 운영하시는 분이나,. 관련 프로그래머가 참조하면 도움이 될듯 합니다.^^



19-TechNetB_masthead_ltr.gif

DUMPEL 을 이용한 이벤트로그 저장

dumpel.exe 툴은,, 이벤트로그를 추출하는 유틸입니다.

Windows2000 리소스킷에 포함되어 있으며,. dumpel.exe은 이벤트로그를 텍스트 파일로 저장하는 기능을 제공합니다.

다음은 이를 이용한 vbscript로,. 예약 작업관리자에 등록하면 정기적으로 백업이 가능합니다.

Option Explicit
Const strBackupPath = "C:\Temp\" '로그파일저장경로

On Error Resume Next
Dim wshShell
Set wshShell = WScript.CreateObject("WScript.Shell")

Dim intYear, intMonth, intDay
Dim dateToday

dateToday = now
intYear = Year(dateToday)
intMonth = Month(dateToday)
intDay = Day(dateToday)

Dim strToday
strToday = CStr(intYear)
If intMonth < 10 Then
 strToday = strToday + "0"
End If
strToday = strToday + CStr(intMonth)
If intDay < 10 Then
 strToday = strToday + "0"
End If
strToday = strToday + CStr(intDay) '오늘일자 파일명

Dim strArrayEvent
strArrayEvent = Array("system", "application", "security")
'이벤트로그파일 종류


Dim strBackupFile
Dim nI
For nI = LBound(strArrayEvent) To UBound(strArrayEvent)
 strBackupFile = Left(strArrayEvent(nI), 3) & "_" & strToday & ".txt"
 wshShell.Run "dumpel -f " & strBackupPath & strBackupFile & " -l " & _
    strArrayEvent(nI) & " -t", 0
Next

물론,. 위 예제 스크립트에서는 dumpel.exe 를 이용했으나,. WMI가 가능하시면 WMI 쿼리를 통해서도 가능합니다.

여기에,. CDO.SYS를 이용해서 메일로도 받아볼수 있는 루틴을 추가할수도 있겠죠..



오래된 파일 삭제 vbscript

일정기간 이상 오래된 파일을  삭제하고자 할때,
다음 스크립트를 예약 작업관리자에 추가해 놓으면 정기적으로 삭제가 되는 스크립트 입니다.

Option Explicit

Const strRootPath = "C:\Temp\"
Const nDays = 10 '초과일수


Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

Dim oFolder, oSubFolder
Set oFolder = oFSO.GetFolder(strRootPath)

Dim oFile
For Each oSubFolder In oFolder.SubFolders
 For Each oFile In oSubFolder.Files
  If Int(Now() - oFile.DateLastAccessed) >= nDays Then
   oFile.Delete
  End If
 Next
Next

위 코드에서, boid 부분만 수정하면 됩니다.

여기에 코드를 더 추가한다면.. 특정 확장자만 지운다던가,.. 여러가지 파일속성에 따라서 삭제하는 루틴을 추가할수도 있겠죠.. 파일속성은 MSDN을 참조하시면 됩니다.
재귀호출을 통한 최하위 디렉토리까지도 가능하고..

가장 요긴하게 쓰일부분이 IIS 로그파일 관리인듯 싶습니다.


2006/05/13

IIS6 의 HTTP API의 오류 로깅

HTTP API의 오류 로깅

Microsoft KB 문서: http://support.microsoft.com/?id=820729

이 문서에서는 HTTP(하이퍼텍스트 전송 프로토콜) API의 오류 로깅 기능을 설명합니다.
HTTP 기반 응용 프로그램에서 발생하는 오류 중 일부는 처리를 위해 응용 프로그램으로 다시 전달되는 대신 HTTP API에서 자동으로 처리됩니다.

* 위 문서는 IIS6 으로 오면서, 이벤트로그에 기록하지 않는 별도의 오류를 C:\WINDOWS\system32\LogFiles\HTTPERR 에 기록하게 됩니다.

로깅되는 오류내용에 관련된 자세한 설명이 되어 있는 문서 입니다.오류로그 분석에 많은 도움이 될것으로 생각됩니다.^^  웹서버 관리자에게는 정기적으로 오류 로그분석을 통해서 웹서버 상태를 관리하는데 도움이 될듯 합니다.



12-TechNetB_masthead_ltr.gif

IIS 6 웹사이트 식별자가 순차적으로 생성되도록 설정

IIS 의 버젼이 6으로 업데이트 되면서,. IIS 관리자에서 웹사이트를 생성하면서 외관적으로 한가지 달라진 점이 있습니다..

바로,. 웹사이트 식별자(인스턴스ID) 입니다. 기존 IIS5 에서는 신규로 생성하는 웹사이트에 대해서 기존번호에 순차적으로 증가된 번호를 이용합니다.

그러나,. IIS 6에서는 랜덤하게 생성을 하게 됩니다.  다음과 같이 형식입니다.

W3SVC/1          Default Web Site
W3SVC/1036328378  WebSite1
W3SVC/1816184000  WebSite2
W3SVC/1867813904  WebSite3
W3SVC/568530179  WebSite4
W3SVC/719499532  WebSite5
W3SVC/669732006   WebSite6


일부 MVP 전문가에 의하면,, 대략 다음과 같은 룰에 의해서 ID가 정해진다고 합니다..

Description Instance ID Comment
A 66 ASCII character for B not A
B 67 ASCII character for C not B
AA 6631 No idea why 31 appears
AB 6632 No idea why 32 appears
AAA 669696 No idea why 96 appears

물론,..  이런 인스턴스ID를 유용하게 활용할곳은 그리 많지 않습니다.. 대부분의 관리자에게는 어떻게 생성되던 크게 불편함이 없을 것입니다. 다만, 생성된 웹사이트를 어떤 순서대로 생성을 했는지 알고 싶을때에는 유용할 것입니다.

그래도, 순차적은 ID 생성을 하고 싶다면 레지스트리에 키를 추가하면 됩니다.

키위치 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetMgr\Parameters




12-IncrementalSiteIDCreation.png

2006/05/12

Microsoft SQL Server 2005용 기능 팩 - 2005년 11월

SQL Server 2005에 가치를 더해주는 독립 실행형 설치 패키지 모음인 2005년 11월자 Microsoft SQL Server 2005용 기능 팩을 다운로드하십시오.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc

뭐, 기능팩이란 이름에, 날짜를 붙인거 보면,.. 지속적으로 패키지를 업데이트 해줄 모양입니다..

툴중에,, 특히 설치가 필요한 것은,.  Microsoft SQL Server 네이티브 클라이언트  입니다

Native Client 는 DB서버를 SQL Server 2005 를 이용하는 웹서버는 필히 설치를 해주며, 응용프로그램에서의 드라이버를 Native Client를 이용하므로써 SQL 2005에서 제공하는 기술 및 성능을 이용할수가 있습니다.. ^^

IIS 7 관리 닷넷 Microsoft.Web.Administration 클래스

IIS7에서는,, 닷넷 코드로 IIS를 직접관리할수 있는 클래스 어셈블리를 제공한다고 합니다.
기존에는 ADSI 또는 WMI를 통해서만 가능했죠...

다음과 같이,,. Vbscript 에서 말이죠..

strComputer = "LocalHost"
Set objIIS = GetObject _
    ("IIS://" & strComputer & "/W3SVC/AppPools/MSSharePointAppPool") objIIS.Recycle

또는,

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:{authenticationLevel=pktPrivacy}\\" _
        & strComputer & "\root\microsoftiisv2") Set colItems = objWMIService.ExecQuery _
    ("Select * From IIsApplicationPool Where Name = " & _
        "'W3SVC/AppPools/MSSharePointAppPool'") For Each objItem in colItems
    objItem.Recycle
Next

물론,. Microsoft.Web.Administration 클래스의 내부 아키텍쳐가 어떻게 되어 있는지는 아직은 알수 없으나,. WMI 리포지토리를 이용하는지도 모르겠네요..

글이 작성되는 현재시점 기준,. Vista 베타를 통해서 테스트를 해볼수 있다고 합니다.
어셈블리는 Microsoft.Web.Administration.dll  이며, 파일 위치는 %WinDir%\System32\InetSrv 에 있습니다.




닷넷을 하실줄 안다면,. VS에서 참조하여 다음과 같은 작업이 가능합니다. 다음 코드는 C# 기준 입니다.

웹사이트 생성
 ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite""http""*:8080:""d:\\MySite");
iisManager.Update();

응용프로그램 디렉토리 생성
 ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Applications.Add("/Sales""d:\\MyApp");
iisManager.Update();

가상디렉토리 생성
 ServerManager iisManager = new ServerManager();
Application app iisManager.Sites["NewSite"].Applications["/Sales"];
app.VirtualDirectories.Add("/VDir""d:\\MyVDir");
iisManager.Update();

실행 상태 및 관리
 ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Stop();

응용프로그램풀 재생
 ServerManager iisManager = new ServerManager();
iisManager.ApplicationPools["DefaultAppPool"].Recycle();

실행요청 목록
 ServerManager iisManager = new ServerManager();
foreach
(WorkerProcess w3wp in iisManager.WorkerProcesses) {
    Console.WriteLine(
"W3WP ({0})", w3wp.ProcessId);
            
    foreach 
(Request request in w3wp.GetRequests(0)) {
        Console.WriteLine(
"{0} - {1},{2},{3}",
                    request.Url,
                    request.ClientIPAddr,
                    request.TimeElapsed,
                    request.TimeInState)
;
    
}
}


아뭏튼,, Windows 버젼이 올라갈수록 또는 제품이 버젼업 될수록 점점더 닷넷과 통합되어 나오고 있습니다. 최근에 발표된 SQL Server 2005의 경우 관리툴인 매니지먼트스튜디오도 닷넷2로 제작되고 있으니깐요.. 물론 핵심 코어는 네이티브 코드 이겠지만,, ^^

닷넷을 할줄알면 앞으로 관리가 점점 더,. 훨씬 쉬워지겠죠.^^



11-iis7-web.admin.png

Encrypting File System (EFS) 알고리즘 변경

Encrypting File System (EFS)는 파일암호화 기술입니다.  Windows 2000 에서는 기본 알고리즘이 DESX 이며, XP SP1이후 부터는 AES를 기본값으로 하고 있습니다.

XP 이후부터는, 레지스트리 수정을 통해서 알고리즘을 3DES 로 변경이 가능합니다.

위치 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS

Value name: AlgorithmID
Data type: REG_DWORD
Radix: Hexadecimal
3DES: 0x6603

다른 알고리즘 헥사값., DESX: 0x6604   AES_256: 0x6610

XP SP1 이후부터는 DESX, 3DES,  AES 알고리즘을 사용하여 암호화 및 복호화가 가능합니다.

각 암호화 기술에 대한것은,,. 다음 문서나, 다른 문서를 참고해 보세요..^^
http://cnscenter.future.co.kr/std-algorithm/block.html



11-TechNetB_masthead_ltr.gif

2006/05/09

TCP/IP 추적 읽기에 대한 기본 사항

다음 Microsoft KB를 참고해 보세요.
이 문서에서는 TCP/IP 추적을 읽는 데 필요한 기본 개념과 팁 몇 가지를 다룹니다.

TCP/IP 추적 읽기에 대한 기본 사항
http://support.microsoft.com/kb/169292/


Odbcping.exe를 사용하여 SQL Server에 대한 ODBC 연결을 확인

다음 문서는 Microsoft KB 입니다.

Odbcping.exe를 사용하여 SQL Server에 대한 ODBC 연결을 확인하는 방법
http://support.microsoft.com/kb/138541/ko

굳이 위 명령어를 이용하지 않더라도, udl 파일을 통해서도 충분히 테스트는 가능하죠..



udl 확장자를 가진 빈 파일을 만들면 ODBC 뿐만 아니라,.
OLE-DB등 여러 드라이버에 대한 연결 문자열을 만들수 있습니다.



09-odbc-conf.PNG

Windows의 64비트 버전에서 적절한 페이징 파일 크기

다음 Microsoft KB 문서를 참고해 보세요. 잘 설명되어 있습니다.

Windows Server 2003 또는 Windows XP의 64비트 버전에서 적절한 페이징 파일 크기를 결정하는 방법

http://support.microsoft.com/kb/889654/ko


가장 많이 본 글