Scripting ¾ð¾î ¹× Visual Basic À» ÀÌ¿ëÇÑ IIS °ü¸® ÀÚµ¿È­ ±¸Çö

4.-2 PEJLove.IISAdmin ÄÄÆ÷³ÍÆ®ÀÇ »ç¿ë¹ý 1


¾È³çÇϽʱî? ¼Û¿ø¼®ÀÔ´Ï´Ù.
À̹ø °­Á¿¡¼­´Â ½ÇÁ¦·Î PEJLove.IISAdmin ÄÄÆ÷³ÍÆ®ÀÇ »ç¿ë¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ±×¸®°í, ±× Àü¿¡ »ç¼ÒÇÑ Á¤Á¤»çÇ×À» ¾Ë·Áµå¸®°Ú½À´Ï´Ù. Áö³­ °­Á¿¡¼­ Á¦°¡ '¿ªÇÒ'À» 'Roll'À̶ó°í Ç¥±âÇߴµ¥, ¾Ë¾Æº¸´Ï 'Role'À̾ú½À´Ï´Ù. ^_^;... Á˼Û...

¢Â PEJLove.IISAdmin ÀÇ Àüü ¸Þ¼ÒµåÀÇ ¸ñ·Ï
¼Ò½º¸¦ º¸½Å ºÐµéÀº ¾Æ½Ã°ÚÁö¸¸, ÀÌ PEJLove.IISAdmin ÄÄÆ÷³ÍÆ®¿¡´Â ¸Þ¼Òµå¸¸ ÀÖ°í ¼Ó¼ºÀº Çϳªµµ ¾ø½À´Ï´Ù. º°´Ù¸¥ ÀÌÀ¯°¡ À־ ±×·± °ÍÀº ¾Æ´Ï°í, ±×Àú ¸¸µé´Ùº¸´Ï ¾î¼´Ù... ^_^;... »ç½Ç, PEJLove.IISAdmin ÄÄÆ÷³ÍÆ®¿¡´Â ±×¾ß¸»·Î ±âº»ÀûÀÎ ¼öÁØÀÇ ¸Þ¼Òµåµé¸¸ ÀÖ½À´Ï´Ù. ¸ðµÎ 9 °³ÀÇ ¸Þ¼Òµåµé·Î ±× ¸ñ·ÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.

¸Þ ¼Ò µå ±â     ´É
GetServerState() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ »óŸ¦ ±¸ÇÑ´Ù.
SetServerState() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ »óŸ¦ ¼³Á¤ÇÏ°í ±× °á°ú »óŸ¦ ±¸ÇÑ´Ù.
GetDefaultDoc() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ ±âº» ¹®¼­¸¦ ±¸ÇÑ´Ù.
SetDefaultDoc() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ ±âº» ¹®¼­¸¦ ¼³Á¤ÇÑ´Ù.
GetAccessPermit() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ °¢Á¾ ±ÇÇÑÀ» ±¸ÇÑ´Ù.
SetAccessPermit() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹öÀÇ °¢Á¾ ±ÇÇÑÀ» ¼³Á¤ÇÑ´Ù.
GetLastServerIndex() ÇöÀç ±¸¼ºµÇ¾îÁø °¡»ó À¥ ¼­¹öµé Áß¿¡¼­ °¡Àå Index °ªÀÌ Å« °¡»ó À¥ ¼­¹öÀÇ Index ¸¦ ±¸ÇÑ´Ù.
GetServerBindings() ÁöÁ¤µÈ Index ÀÇ °¡»ó À¥ ¼­¹ö·ÎºÎÅÍ Binding Á¤º¸¸¦ °¡Á®¿Í¼­ ¹è¿­ ÇüÅ·Πµ¹·ÁÁØ´Ù.
CreateWebServer() »õ °¡»ó À¥ ¼­¹ö¸¦ »ý¼ºÇÏ°í »ý¼ºµÈ À¥ ¼­¹öÀÇ Index ¸¦ ±¸ÇÑ´Ù.


º¸½Ã´Ù½ÃÇÇ ±×´ÙÁö ¾î·Á¿î ³»¿ëÀÇ ¸Þ¼ÒµåµéÀº ¾ø½À´Ï´Ù. À̹ø °­Á¿¡¼­´Â ¸ÕÀú À§ÀÇ ¸®½ºÆ® Áß GetServerState() ¸Þ¼Òµå¿Í SetServerState() ¸Þ¼Òµå¿¡ °üÇØ¼­ ¼³¸íÀ» µå¸®µµ·Ï ÇϰڽÀ´Ï´Ù.


¢Â GetServerState() ¸Þ¼Òµå¿Í SetServerState() ¸Þ¼Òµå
À̸§¿¡¼­µµ ¹Ù·Î ¾Æ½Ç¼ö ÀÖµíÀÌ, ÀÌ ¸Þ¼ÒµåµéÀº ±â´É»ó ÇѽÖÀ» ÀÌ·ç´Â ¸Þ¼Òµåµé·Î °¢°¢ ÁöÁ¤ÇÑ °¡»ó À¥¼­¹öÀÇ ÇöÀç »óŸ¦ ¾ò°Å³ª ¼³Á¤ÇÏ´Â ¸Þ¼ÒµåµéÀÔ´Ï´Ù. - Àüü ÄÚµå´Â ÀÚ·á½Ç¿¡ ÀÖ´Â ÄÄÆ÷³ÍÆ®ÀÇ ¼Ò½º¸¦ ´Ù¿î·Îµå ¹ÞÀ¸¼Å¼­ »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù. °­Á¿¡¼­´Â Áö¸é ±æÀÌ»ó Çٽɺκи¸À» ¼³¸íµå¸± °ÍÀÔ´Ï´Ù.

GetServerState() ¸Þ¼ÒµåÀÇ °æ¿ì ½ÇÁ¦ ¸Þ¼Òµå ¼±¾ðºÎ´Â ´ÙÀ½°ú °°½À´Ï´Ù.

    
			
Public Function GetServerState(ServerIndex As Variant, Optional IPAddress As Variant) As Variant
    


º¸½Ã´Ù½ÃÇÇ, µÎ °³ÀÇ Variant º¯¼ö¸¦ ÀÎÀÚ·Î ¹Þ°í Variant ÇüÀ¸·Î ¸®ÅÏÀ» Çϴµ¥, ÀÌ ¸Þ¼Òµå¿¡ ³Ñ°ÜÁÖ´Â ÀÎÀÚ¸¦ String À̳ª Integer ·Î ÁöÁ¤ÇÏÁö ¾Ê°í Variant ·Î ÁöÁ¤ÇÑ °ÍÀº Á¦ ³ª¸§´ë·ÎÀÇ ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. GetServerState() ¸Þ¼Òµå¸¦ À§¿¡¼­Ã³·³ ÀÛ¼ºÇÏÁö ¾Ê°í ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÏ¿´´Ù°í °¡Á¤ÇϰڽÀ´Ï´Ù.

    
			
Public Function GetServerState(ServerIndex As Integer, Optional IPAddress As String) As Integer
    


À졧 º¸±â¿¡´Â óÀ½ÀÇ Äڵ庸´Ù ±×·²µíÇØ º¸ÀÔ´Ï´Ù. »ç½Ç ÀÌ·± ÇüÅÂÀÇ ÄÚµå ÀÛ¼º¹ýÀÌ ¿Ã¹Ù¸¥ ¹æ¹ýÀÏ °ÍÀÔ´Ï´Ù. ±×·¯³ª, ÀÌ·¸°Ô ÀÛ¼ºÇÑ ÄÄÆ÷³ÍÆ®¸¦ ASP ¿¡¼­ ´ÙÀ½°ú °°ÀÌ È£ÃâÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.

    

Dim Temp, MyServerIndex, MyIPAddress
Dim MyObject

... Áß·« ...

Temp = MyObject.GetServerState(MyServerIndex, MyIPAddress)
    


±× ÀÌÀ¯´Â GetServerState() ¸Þ¼ÒµåÀÇ µÎ ÀÎÀÚ´Â °¢°¢ Integer ¿Í String À¸·Î ¼±¾ðµÇ¾úÁö¸¸, ASP ÀÇ ¸ðµç º¯¼ö´Â Variant ÇüÀ̹ǷΠº¯¼öÇüÀÌ Æ²¸®´Ù´Â ¿¡·¯¸¦ ³»°í Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. À§ÀÇ ASP Äڵ带 Á¤»óÀûÀ¸·Î ÀÛµ¿½Ã۱â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù.

    

Dim Temp, MyServerIndex, MyIPAddress
Dim MyObject

... Áß·« ...

Temp = MyObject.GetServerState(CInt(MyServerIndex), CStr(MyIPAddress))
    


±×·¡¼­, CInt(), CStr() °°Àº º¯È¯ ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í, óÀ½ÀÇ ASP ÄÚµåó·³ ÀÚ¿¬½º·´°Ô ÄÚµùÀ» Çϱâ À§Çؼ­ ¸ðµç ÀÎÀÚ¸¦ Variant ·Î ¼±¾ðÇÑ °ÍÀÔ´Ï´Ù. (°á±¹Àº Á¦ °ÔÀ¸¸§ ¶§¹®À̶ó´Â °á·ÐÀÌ... -_-;...)

GetServerState() ¸Þ¼Òµå¿¡¼­ IPAddress ÀÎÀÚ¿¡´Â IIS °¡ ¼³Ä¡µÈ ¸Ó½ÅÀÇ IP ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ½Ã¸é µË´Ï´Ù. ¸¸¾à »ý·«ÇϽøé ÇöÀç ·ÎÄà ¸Ó½ÅÀ» IIS °¡ ¼³Ä¡µÈ ÄÄÇ»ÅͶó°í °¡Á¤ÇÕ´Ï´Ù. ServerIndex ÀÎÀÚ´Â IIS ¿¡ ¼³Ä¡µÈ ¿©·¯°³ÀÇ °¡»ó À¥¼­¹ö Áß ¾î¶² ¼­¹ö¸¦ ´ë»óÀ¸·Î ÀÛ¾÷ÇÒ °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î 1 ºÎÅÍ ½ÃÀÛÇÏ´Â Á¤¼ö°ªÀÌ µé¾î°©´Ï´Ù.

Àß ÀÌÇØ°¡ °¡Áö ¾ÊÀ¸½Ã´Â ºÐµéÀ» À§Çؼ­ ´Ù½Ã ¼³¸íµå¸®¸é, ¿¹Àü¿¡ ¼³¸íµå¸° °Í(¿©±â¸¦ Click!)ó·³ IIS ´Â »ç¶÷µéó·³ '±âº» À¥ »çÀÌÆ®', '¼Û±ºÀÇ ½É½ÉÇ®ÀÌ À¥ ¼­¹ö' µîµîÀÇ ÀϹÝÀûÀ¸·Î »ç¶÷µéÀÌ ÀÌÇØÇÏ´Â ¹æ¹ýÀ¸·Î´Â °¢°¢ÀÇ °¡»ó À¥ ¼­¹ö¸¦ ±¸ºÐÇÒ ¼ö ¾øÀ¸¹Ç·Î °¡»ó À¥¼­¹ö¸¦ »ý¼ºÇÒ ¶§ °íÀ¯ÇÑ Index ¸¦ ÁöÁ¤Çؼ­ ±× Index ¸¦ ÀÌ¿ëÇØ¼­ °¡»ó À¥ ¼­¹ö¸¦ ±¸ºÐÇÕ´Ï´Ù. µû¶ó¼­, IIS ¸¦ óÀ½ ¼³Ä¡ÇÏ°í ³ª¸é ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¾îÀÖ´Â °¡»ó À¥ ¼­¹öÀÎ '±âº» À¥ »çÀÌÆ®'¿Í '°ü¸® À¥ »çÀÌÆ®'ÀÇ Index ´Â °¢°¢ 1 °ú 2 ÀÌ µÇ°í ±× ´ÙÀ½¿¡ ¸¸µé¾îÁö´Â °¡»ó À¥ ¼­¹ö´Â 3, 4 .... Çϰí Index °¡ ÁöÁ¤µË´Ï´Ù. ´ÙÀ½ÀÇ ±×¸²À» º¸½Ã±â ¹Ù¶ø´Ï´Ù.



À§ÀÇ ±×¸²Àº Á¦ ·ÎÄà ÄÄÇ»ÅÍÀÇ IIS ¸¦ Active Directory Browser ·Î »ìÆìº» °ÍÀÔ´Ï´Ù. À¥ ¼­ºñ½º¸¦ ÀǹÌÇÏ´Â WSSong2/W3SVC ³ëµå¸¦ º¸½Ã¸é ±× ÇÏÀ§ ³ëµå¿¡ 1, 2, 3, Filters, Info ÇÏ´Â ³ëµåµéÀÌ ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù. (Á¶±Ý È¥µ¿ÀÌ µÇ½Ç¼öµµ Àִµ¥, 1), 2), 3)... Àº ´Ü¼øÈ÷ Active Directory Browser ¿¡¼­ ºÙÀÎ ¼­¼ö·Î Á¦°¡ ¸»ÇϰíÀÚ ÇÏ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù.) ÀÌ °æ¿ì, ¿ª½Ã 1 °ú 2 ´Â °¢°¢ '±âº» À¥ »çÀÌÆ®'¿Í '°ü¸® À¥ »çÀÌÆ®'¸¦ ³ªÅ¸³»´Â °ÍÀ̰í, 3 Àº Á¦°¡ ÀÛ¾÷ÇÏ´Â Á¦°¡ Á÷Á¢ Ãß°¡ÇÑ °¡»ó À¥ ¼­¹ö¸¦ ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù.

ServerIndex °¡ Áß¿äÇÑ ÀÌÀ¯´Â ÀÛ¾÷ÇÒ ¼­¹öÀÇ °´Ã¼¸¦ ¾ò¾î³»±â À§ÇÑ ADsPath ¸¦ ÀÛ¼ºÇÒ ¶§ ÇʼöÀûÀÎ ¿ä¼ÒÀ̱⠶§¹®ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, IP ÁÖ¼Ò°¡ 123.123.123.123 ÀÎ ¼­¹öÀÇ IIS ÀÇ '±âº» À¥ »çÀÌÆ®'ÀÇ ADSI °´Ã¼¸¦ ¾ò±â À§ÇÑ ADsPath ´Â IIS://123.123.123.123/W3SVC/1 ÀÌ µË´Ï´Ù. ¶Ç´Â, ÇöÀç ·ÎÄà ¸Ó½ÅÀÇ IIS ÀÇ 15 ¹øÂ°·Î ¸¸µé¾îÁø ÀÓÀÇÀÇ À¥ ¼­¹öÀÇ ADSI °´Ã¼¸¦ ¾ò±â À§ÇÑ ADsPath ´Â IIS://LocalHost/W3SVC/15 °¡ µË´Ï´Ù. ÀÌ·±½ÄÀ¸·Î, ¾Æ·¡ÀÇ GetServerState() ¸Þ¼Òµå»óÀÇ ÄÚµå´Â ÁÖ¾îÁø µÎ °³ÀÇ ÀÎÀÚ¸¦ »ç¿ëÇØ¼­ ÇØ´ç À¥ ¼­¹öÀÇ °´Ã¼¸¦ ¾ò¾î³¾¼ö ÀÖ´Â ADsPath ¸¦ ¸¸µé¾î ³À´Ï´Ù.

    

... »ý·« ...

If IsMissing(IPAddress) Then

  ADsPath = "IIS://LocalHost/W3SVC/" & ServerIndex

Else

  ADsPath = "IIS://" & IPAddress & "/W3SVC/" & ServerIndex

End If

... »ý·« ...
    


´«Ä¡°¡ ¹Ù¸£½Å ºÐµé²²¼­´Â ÀÌ¹Ì °ÆÁ¤ÇÏ°í °è½Ã°ÚÁö¸¸, ÀÌ·± ÀÌÀ¯·Î IIS »ó¿¡¼­ 'Ä£¼÷ÇÑ À̸§'('±âº» À¥ »çÀÌÆ®'¿Í °°Àº...)Áß¿¡ XXX ¶ó´Â ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÈ °¡»ó À¥ ¼­¹ö¸¦ °Ë»öÇÑ´ÙµçÁö ÇÏ´Â °Ë»ö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº, °Ë»öÇϰíÀÚ ÇÏ´Â IIS ¿¡ Á¸ÀçÇÏ´Â ¸ðµç °¡»ó À¥ ¼­¹ö¸¦ ÇϳªÇϳª µÚÁö¸é¼­ ã¾Æº¸´Â ¼ö¹Û¿¡´Â ¾ø½À´Ï´Ù. ±×·¡¼­, Àú°°Àº °æ¿ì¿¡´Â °¡»ó À¥ ¼­¹öµéÀÇ ±âº» Á¤º¸¸¦ °¡Áö°í ÀÖ´Â Table À» SQL 7.0 »ó¿¡ Çϳª ¸¸µé¾î ³õ°í ȸ¿ø Á¤º¸¿Í ¸ÅνÃŰ´Â ¹æ¹ýÀ» »ç¿ëÇß½À´Ï´Ù. Âü°íÇϽñ⠹ٶø´Ï´Ù.

ADsPath ¸¦ ±¸ÇÑµÚ ¾Æ·¡ÀÇ ÄÚµåó·³ GetObject() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¿øÇÏ´Â °¡»ó À¥ ¼­¹öÀÇ ADSI °´Ã¼¸¦ ¾ò½À´Ï´Ù. ¸¸¾à ¿¡·¯°¡ ¹ß»ýÇÏ¸é ¸ðµç °ÍÀ» ÃʱâÈ­ ½ÃŲÈÄ -1 À» ¸®ÅÏÇϰí ÇÔ¼ö¸¦ Á¾·áÇϰí, Á¤»óÀûÀ¸·Î °´Ã¼°¡ ¾ò¾îÁö¸é ServerState ¼Ó¼ºÀ» ÀÌ¿ëÇØ¼­ ÇØ´ç ¼­¹öÀÇ ÇöÀç »óŸ¦ ³ªÅ¸³»´Â Á¤¼ö°ªÀ» ¾ò¾î¼­ ¸®ÅÏÇÕ´Ï´Ù. °¢°¢ÀÇ Á¤¼ö°ªÀÇ Àǹ̴ 1 : '½ÃÀÛÇÏ´Â Áß', 2 : '½ÃÀ۵ǾúÀ½', 3 : 'Á¤ÁöÇÏ´Â Áß', 4 : 'Á¤ÁöµÇ¾úÀ½', 5 : 'ÀϽà Á¤Áö Áß', 6 : 'ÀϽà Á¤Áö µÇ¾úÀ½', 7 : '´Ù½Ã ½ÃÀÛÇÏ´Â Áß' ÀÔ´Ï´Ù.

    

... »ý·« ...
			
Set WebServer = GetObject(ADsPath)

 '* WebServer °´Ã¼¸¦ ¾òÁö ¸øÇϸé Error. 
If Err.Number <> 0 Then

  Set WebServer = Nothing
  GetServerState = -1

  Exit Function

End If


WebServerState = WebServer.ServerState


Set WebServer = Nothing
GetServerState = WebServerState

... »ý·« ...
    

  ¡Ø IIsWebServer ÀÇ ¼Ó¼ºÀÎ ServerState ¼Ó¼º¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ Àüü ¼Ó¼º ¹× ¸Þ¼Òµå¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!



À̹ø¿£ SetServerState() ¸Þ¼ÒµåÀÇ Äڵ带 »ìÆìº¸°Ú½À´Ï´Ù. ¸Þ¼ÒµåÀÇ À̸§À» º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ ÀÌ ¸Þ¼Òµå´Â ÁöÁ¤ÇÑ °¡»ó À¥ ¼­¹ö¸¦ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ °ª¿¡ µû¶ó Á¤Áö½ÃŰ°Å³ª, ½ÃÀÛ½ÃŰ´Â µîÀÇ ÀÛ¾÷À» ÇÏ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù. ½ÇÁ¦ ¸Þ¼Òµå ¼±¾ðºÎ´Â ´ÙÀ½°ú °°½À´Ï´Ù.

    
			
Public Function SetServerState(ServerIndex As Variant, StateNum As Variant, Optional IPAddress As Variant) As Variant
    


GetServerState() ¸Þ¼Òµå¿Í ºñ±³Çؼ­ StateNum À̶ó´Â ÀÎÀÚ°¡ Çϳª ´õ Ãß°¡ µÇ¾ú´Âµ¥, ÀÌ ÀÎÀÚ´Â °¡»ó À¥ ¼­¹ö¸¦ ½ÃÀÛ½Ãų °ÍÀÎÁö Á¤Áö½Ãų °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â Á¦°¡ Á¤ÇÑ ÀÓÀÇÀÇ ¼ýÀÚ°ªÀÔ´Ï´Ù. ±¸Ã¼ÀûÀÎ °ª°ú Àǹ̴ 1 : '½ÃÀÛ', 2 : 'Á¤Áö', 3 : 'ÀϽà Á¤Áö' ÀÔ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °ªÀº ¹«Á¶°Ç '½ÃÀÛ'À» ÀǹÌÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù.

SetServerState() ¸Þ¼Òµå ¿ª½Ã GetServerState() ¸Þ¼Òµå¿Í ¸¶Âú°¡Áö·Î ¹Þ¾ÆµéÀÎ ÀÎÀÚ°ªµéÀ» »ç¿ëÇØ¼­ ¿øÇÏ´Â ¼­¹öÀÇ °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù. ±×¸®°í, ¿¡·¯°¡ ¹ß»ýÇÏ¸é ¿ª½Ã -1 À» ¸®ÅÏÇϰí Á¾·áÇÕ´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é ½ÇÁ¦·Î °¡»ó À¥ ¼­¹öÀÇ »óŸ¦ ¼³Á¤ÇÏ´Â ¸Þ¼Òµå¸¦ È£ÃâÇÏ°Ô µÇ´Âµ¥, ´ÙÀ½ÀÇ ÄÚµå´Â ¹Ù·Î ±× ºÎºÐÀÔ´Ï´Ù.

    

... »ý·« ...
			
WebServerState = WebServer.ServerState
Err.Clear

Select Case StateNum

  Case 1

    If CInt(WebServerState) = 3 Or CInt(WebServerState) = 4 Then

      WebServer.Start

    ElseIf CInt(WebServerState) = 5 Or CInt(WebServerState) = 6 Then

      WebServer.Continue

    End If

  Case 2

    If CInt(WebServerState) = 1 Or CInt(WebServerState) = 2 Then

      WebServer.Stop

    End If

  Case 3

    If CInt(WebServerState) = 1 Or CInt(WebServerState) = 2 Then

      WebServer.Pause

    End If

  Case Else

    If CInt(WebServerState) = 3 Or CInt(WebServerState) = 4 Then

      WebServer.Start

    End If
           
End Select

... »ý·« ...
    

  ¡Ø IIsWebServer ÀÇ ¸Þ¼ÒµåÀÎ Continue ¸Þ¼Òµå¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ ¸Þ¼ÒµåÀÎ Pause ¸Þ¼Òµå¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ ¸Þ¼ÒµåÀÎ Start ¸Þ¼Òµå¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ ¸Þ¼ÒµåÀÎ Status ¸Þ¼Òµå¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ ¸Þ¼ÒµåÀÎ Stop ¸Þ¼Òµå¿¡ °üÇÑ Á¤º¸¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!
  ¡Ø IIsWebServer ÀÇ Àüü ¼Ó¼º ¹× ¸Þ¼Òµå¸¦ º¸½Ã·Á¸é ¿©±â¸¦ Ŭ¸¯!


¸ÕÀú ÁöÁ¤µÈ °¡»ó À¥ ¼­¹öÀÇ ÇöÀç »óŸ¦ ÆÄ¾ÇÇÑ ÈÄ Àû´çÇÑ ¸Þ¼Òµå¸¦ È£ÃâÇØÁÝ´Ï´Ù. À§ÀÇ Äڵ忡¼­ »ç¿ëµÈ WebServer.Start, WebServer.Stop, WebServer.Continue, WebServer.Pause (±×¸®°í, ¿©±â¿¡¼­´Â »ç¿ëµÇÁö ¾ÊÀº Status ¸Þ¼Òµå±îÁö...)¸Þ¼ÒµåµéÀº IIsWebServer °´Ã¼¿¡¼­ Á¦°øÇÏ´Â ¸Þ¼Òµåµé·Î¼­ ÁöÁ¤µÈ ÀÓÀÇÀÇ °¡»ó À¥ ¼­¹ö(ÀÌ °æ¿ì¿¡´Â WebServer °´Ã¼)ÀÇ »óŸ¦ Á¶Á¤ÇÏ´Â ¸Þ¼ÒµåµéÀÔ´Ï´Ù.

¿©±â±îÁö ÁøÇàÇÑ ÈÄ ¿¡·¯ °Ë»ç¸¦ Çϰí, ±× ´ÙÀ½¿¡ º¸±â¿¡´Â º°°Í ¾Æ´ÏÁö¸¸ ÀÌ·ÐÀûÀ¸·Î´Â ±²ÀåÈ÷ Èï¹Ì·Î¿î ÄÚµå ºÎºÐÀÌ ³ª¿É´Ï´Ù. ´ÙÀ½ÀÇ SetServerState() ¸Þ¼ÒµåÀÇ ÄÚµå Áß °¡Àå ¸¶Áö¸· ºÎºÐÀ» º¸½Ã±â ¹Ù¶ø´Ï´Ù.

    
	
  ... »ý·« ...
  
  WebServer.GetInfo
  WebServerState = WebServer.ServerState
    
  Set WebServer = Nothing
  SetServerState = WebServerState
    
End Function
    


SetServerState() ¸Þ¼Òµå´Â ÀÌ¹Ì ¸»¾¸µå·ÈµíÀÌ ÁöÁ¤ÇÑ °¡»ó À¥ ¼­¹öÀÇ »óŸ¦ Á¶Á¤ÇÏ°í ±× Á¶Á¤µÈ °á°ú¸¦ ¸®ÅÏÇØÁÝ´Ï´Ù. ±×·±µ¥, À§ÀÇ Äڵ带 º¸¸é ADSI ¸Þ¼ÒµåÀÎ GetInfo ¸Þ¼Òµå¸¦ ´Ù½Ã ÇÑ ¹ø È£ÃâÇØ¼­ ´Ù½Ã °¡»ó À¥ ¼­¹öÀÇ »óŸ¦ °¡Á®¿Í¼­ ±× °ªÀ» ¸®ÅÏÇØÁÝ´Ï´Ù. ¿Ö ¶Ç´Ù½Ã GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇØ¼­ ADSI °´Ã¼(ÀÌ °æ¿ì´Â IIsWebServer °´Ã¼ÀÎ WebServer)ÀÇ »óÅ Á¤º¸¸¦ °»½ÅÇØ¾ß ÇÒ±î¿ä? ¾Æ¸¶ óÀ½ IIS °ü¸® ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ºÐµéÀº GetInfo ¸Þ¼Òµå¸¦ »©¸Ô°í ÄÚµùÇÏ½Ç È®·üÀÌ ³ôÀ» °ÍÀÔ´Ï´Ù.

±× ÀÌÀ¯´Â ADSI ÆÄÆ®¿¡¼­ ¼³¸íµå¸° °Íó·³ ÇöÀç PEJLov.IISAdmin ÄÄÆ÷³ÍÆ®°¡ °¡Áö°í ÀÖ´Â IIS Á¤º¸´Â ½ÇÁ¦ IIS Á¤º¸°¡ ¾Æ´Ï¶ó ADSI »óÀÇ ¼Ó¼º ij½¬»óÀÇ Á¤º¸, Áï ½ÇÁ¦ Á¤º¸ÀÇ º¹»çº»À̱⠶§¹®ÀÔ´Ï´Ù. SetServerState() ¸Þ¼ÒµåÀÇ ÄÚµå ù ºÎºÐ¿¡¼­ .ServerState ¸Þ¼Òµå°¡ »ç¿ëµÇ¸é¼­ ³»ºÎÀûÀ¸·Î È£ÃâµÈ GetInfo ¸Þ¼Òµå°¡ ¼Ó¼º ij½¬¿¡ ·ÎµåÇÑ °¡»ó À¥ ¼­¹öÀÇ »óÅ Á¤º¸¿¡´Â ´ç¿¬È÷µµ º¯°æµÇ±â ÀüÀÇ »óÅ Á¤º¸°¡ µé¾îÀÖÀ» °ÍÀÔ´Ï´Ù. ±×¸®°í, ÀÌ ¼Ó¼º ij½¬ÀÇ Á¤º¸´Â WebServer.Start, WebServer.Stop µîÀÇ Á¦¾î ¸Þ¼Òµå·Î ½ÇÁ¦ IIS »óÀÇ °¡»ó À¥ ¼­¹öÀÇ »óŰ¡ º¯°æµÈ ÈÄ¿¡µµ GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇØÁÖÁö ¾ÊÀ¸¸é °»½ÅµÇÁö°¡ ¾Ê½À´Ï´Ù.

°á±¹, À§¿¡ Á¦½ÃµÈ Äڵ忡¼­ WebServer.GetInfo ¶óÀÎÀ» »ý·«ÇÑ´Ù¸é, ¸®ÅϵǴ °¡»ó À¥ ¼­¹öÀÇ »óÅ´ ½ÇÁ¦ »óÅÂ(º¯°æµÈ »óÅÂ)°¡ ¾Æ´Ï¶ó, º¯°æµÇ±â ÀÌÀü¿¡ ÀÌ¹Ì ·ÎµåµÇ¾ú´ø ¿¹Á¤ »óÅ Á¤º¸°¡ ¸®ÅÏµÇ°í ±»ÀÌ µûÁöÀÚ¸é ³í¸® ¿¡·¯·Î ºÐ·ùÇÒ¼ö ÀÖ´Â »óŰ¡ µÇ´Â ¼ÀÀÔ´Ï´Ù.


¢Â ASP ¿¡¼­´Â...
ÀÌ µÎ°³ÀÇ ¸Þ¼Òµå¸¦ ASP ÇüÅ·Π¹Ù²Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù. ´Ù¸¸, ¿©±â¿¡¼­ ¿¡·¯Ã³¸® ºÎºÐÀº »ý·«Çϵµ·Ï ÇϰڽÀ´Ï´Ù. ASP ·Î¸¸ ÄÚµùÇÏ½Ç ºÐµé²²¼­´Â ´ÙÀ½ÀÇ Äڵ带 include ½ÃÄѼ­ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. ±×¸®°í, ¹°·Ð ±×·± °æ¿ì¿¡´Â ÀÎÀÚ¸¦ »ý·«ÇÏ½Ç ¼öµµ ¾ø°í, '±¸¼º ¿ä¼Ò ¼­ºñ½º'ÀÇ ÇýÅÃÀ» ¹ÞÀ¸½Ç ¼öµµ ¾øÀ¸¹Ç·Î '¿ªÇÒ' ±â¹ÝÀÇ COM+ º¸¾È ±â´ÉÀ» »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.

    
			
Public Function GetServerState(ServerIndex, IPAddress)

  Dim WebServer
  Dim ADsPath
  Dim WebServerState
  
  
  '* ADsPath ¸¦ ¾ò´Â´Ù.
  If Trim(IPAddress) = "" Then
  
    ADsPath = "IIS://LocalHost/W3SVC/" & ServerIndex
  
  Else
  
    ADsPath = "IIS://" & IPAddress & "/W3SVC/" & ServerIndex
  
  End If
    
  Set WebServer = GetObject(ADsPath)
  WebServerState = WebServer.ServerState
  
  Set WebServer = Nothing
  GetServerState = WebServerState
    
End Function

  

Public Function SetServerState(ServerIndex, StateNum, IPAddress)
    
  Dim WebServer
  Dim ADsPath
  Dim WebServerState
  
  
  '* ADsPath ¸¦ ¾ò´Â´Ù.
  If Trim(IPAddress) = "" Then
  
    ADsPath = "IIS://LocalHost/W3SVC/" & ServerIndex
  
  Else
  
    ADsPath = "IIS://" & IPAddress & "/W3SVC/" & ServerIndex
        
  End If
    
    
  Set WebServer = GetObject(ADsPath)
  WebServerState = WebServer.ServerState

  Select Case StateNum
  
    Case 1
  
      If CInt(WebServerState) = 3 Or CInt(WebServerState) = 4 Then
    
        WebServer.Start
    
    
      ElseIf CInt(WebServerState) = 5 Or CInt(WebServerState) = 6 Then
    
        WebServer.Continue
    
      End If
            
    Case 2
        
      If CInt(WebServerState) = 1 Or CInt(WebServerState) = 2 Then WebServer.Stop
            
    Case 3
        
      If CInt(WebServerState) = 1 Or CInt(WebServerState) = 2 Then WebServer.Pause
            
    Case Else
        
      If CInt(WebServerState) = 3 Or CInt(WebServerState) = 4 Then WebServer.Start
            
  End Select
		
  WebServer.GetInfo
  WebServerState = WebServer.ServerState
  
  Set WebServer = Nothing
  SetServerState = WebServerState
		
End Function
    


ÀÌ °æ¿ì ASP ¿¡¼­ ¸Þ¼Òµå¸¦ È£ÃâÇÏ·Á¸é ´ÙÀ½ÀÇ ÄÚµå¿Í °°ÀÌ ÄÚµùÇϼžßÇÕ´Ï´Ù. VBScript ¿¡¼­´Â ÇöÀç±îÁö ¹öÀüÀ» ¸··ÐÇϰí Optional Ű¿öµå°¡ Áö¿øµÇÁö ¾Ê±â ¶§¹®¿¡ ÀÎÀÚ¸¦ »ý·«ÇÒ ¼ö°¡ ¾øÀ¸¹Ç·Î º¸½Ã´Â °Íó·³ ºó °ª("")ÀÌ¶óµµ ÀÔ·ÂÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù. ¸¸¾à ºó °ª("")À» »ý·«ÇÏ½Ã¸é ±¸¹® ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù.

    
			
'* À§ÀÇ ¸Þ¼Òµå°¡ µé¾îÀÖ´Â Include ÆÄÀÏÀ» include ÇÑ´Ù.

<%
Dim Temp

Temp = GetServerState(1, "")
Temp = GetServerState(1, "LocalHost")
Temp = GetServerState(1, "123.123.123.123")

Temp = SetServerState(1, 2, "")
Temp = SetServerState(1, 2, "LocalHost")
Temp = SetServerState(1, 2, "123.123.123.123")

... ÇÏ·« ...
    



¢Â ¸¶Ä¡¸ç...
À̹ø °­Á¿¡¼­´Â ´Ü¼øÈ÷ µÎ °³ÀÇ ¸Þ¼ÒµåÀÇ Äڵ带 ¼³¸íÇØµå·È½À´Ï´Ù. ¾Æ¸¶ ¾ÕÀ¸·Î ³²Àº ¾ó¸¶µÇÁö ¾Ê´Â ³ª¸ÓÁö °­Áµµ °ÅÀÇ ÀÌ·±½ÄÀÏ °Í °°½À´Ï´Ù. °Ìµµ ¾øÀÌ ½ÃÀÛÇÑ °­Á°¡ °ÅÀÇ ³¡À» ÇâÇØ Ä¡´Ý°í ÀÖ´Â°É »ý°¢Çغ¸¸é Á¶±ÝÀº µÎ·Æ±âµµ ÇÕ´Ï´Ù. ^_^;...

°¨»çÇÕ´Ï´Ù.