컴퓨터2008.10.17 13:51
IIS 에서 사용되는 VBSCRIPT 의 예제에 대한 설명입니다.

윈도우서버로 웹서비스를 운영하면서 불편한 수동작업을 바로 처리해주는 스크립트덕에 그나마 편하게 운영을 하고 있습니다.

다음은 IIS 로그디렉토리를 한꺼번에 변경하는 스크립트의 예제입니다.
로그 루트디렉토리는 사용자하기 나름이니 변경하시고 사용하시기 바랍니다.

Option Explicit 
'On Error Resume Next

Dim websvc, domain Dim SiteROOT, DomainName, vSiteID, SiteLogDir
Dim gWindowsFolder, gFSO

Set websvc = GetObject("IIS://LocalHost/W3svc")
If (Err <> 0) Then
    WScript.Echo "NO Website info"
    WScript.Quit
End if

err.clear

Set gFSO = CreateObject("Scripting.FileSystemObject")

for each domain in websvc
    if domain.class = "IIsWebServer" Then
        vSiteID = domain.Name
        DomainName = Trim(domain.ServerComment)
        wscript.Echo vSiteID&" : "&DomainName
        SiteLogDir = "C:\WINNT\system32\LogFiles\"&DomainName
        If Not gFSO.FolderExists(SiteLogDir) Then
            gFSO.CreateFolder SiteLogDir
        End if 
        domain.LogFileDirectory = SiteLogDir
        domain.SetInfo < BR >     end If
Next

위 스크립트는 설정이 되어 있는 모든 웹사이트의 로그디렉토리를 [ C:\WINNT\system32\LogFiles\도메인 ] 방식으로 변경하는 스크립트입니다.

Option Explicit
변수를 사용하기전에 미리 선언을 하도록 하는 부분
으로 짧은 스크립트에서는 큰 역활을 못하지만
좀 긴 스크립트에서는 변수의 사용시 오타에 의한 구문오류를 사전에 차단하는 효과를 가집니다.
머, 필수 사항은 아니고 권장사항입니다.
 
On Error Resume Next
오류 발생시 무시하고 다음줄의 스크립트를 실행하도록 하는 부분입니다.
이부분은 일단 오류가 발생하면 오류코드가 리턴되는데 일반적으로는 스크립트가 바로 종료됩니다. (결과가 어떨지 모르는 스크립트가 마구돌면 기분도 안좋아지겠죠..? ) 하지만, 이 오류메세지를 이용해서 작업을 진행하고자 할때도 있습니다.

위 스크립트에는 현재 스크립트가 실행하는 서버에 IIS 가 설치되어 있는지에 관한 체크 부분이 포함되어 있습니다.
바로 아래 부분이죠

Set websvc = GetObject("IIS://LocalHost/W3svc")
If (Err <> 0) Then
  WScript.Echo "NO Website info"
 WScript.Quit
End if
err.clear

오류가 발생하지 않으면 Err의 오류코드값은 0 입니다. 에러가 발생하면 각각의 에러코드 값을 가지게 됩니다.
이전 ADODB 개체를 이용한 포트 스캔 는 에러코드 값에 따라서 체크를 하는 예제입니다.

IIS 5, 6 버젼은 각각의 사이트정보를 metabase 라는 저장소에 저장을 합니다.
이들 정보를 읽어오기 위해서는 GetObject 라는 명령어를 이용해야 합니다.

GetObject 를 이용해서 불러온 값들은 배열처럼 사용이 되고, ( Dictionary 개체와도 비슷합니다. )
이들 값중 사이트관련 정보만 추려보기 위해서는 class 의 내용을 보면 됩니다.

다음은 각각의 사이트 정보를 읽어오는 부분입니다.
IIS 관리자 페이지를 열어보면 다음과 같은 항목들을 볼수 있습니다.

사용자 삽입 이미지

버튼으로 보이는 부분은 전부 스크립트를 이용해서 수정을 할수가 있습니다.

Posted by Zasfe

댓글을 달아 주세요