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

3.-2 °£´ÜÇÑ ADSI(Active Directory Service Interface) ¿¹Á¦


¾È³çÇϼ¼¿ä? ¼Û¿ø¼®ÀÔ´Ï´Ù. ¿À·£¸¸¿¡ Àλçµå¸³´Ï´Ù. ^_^;... ¸îÀϰ£ ÈÞ°¡µµ ´Ù³à¿À°í, »õ Á÷Àåµµ ¾Ë¾Æº¸°í Çß´õ´Ï ÇÑ Àϵµ ¾øÀÌ ³¯Â¥¸¸ Èǽ Áö³ª¹ö·È½À´Ï´Ù. ¾ó··¶×¶¥ÇÏ´Â »çÀÌ¿¡ Áö³­¹ø °­ÁÂ¿Í ÇÑ º¸¸§ Á¤µµÀÇ ÅÒÀÌ »ý°Ü¹ö·È±º¿ä. ÈÞ°¡µµ ´Ù³à¿ÔÀ¸´Ï ´Ù½Ã ±â¿î³»¼­ ¿­½ÉÈ÷ °­Á¸¦ ¾²µµ·Ï ÇϰڽÀ´Ï´Ù.

ÀÌ °­ÁÂÀÇ ÃʾÈÀ» ÀÛ¼ºÇϰí ÀÖ´ø ½ÃÁ¡ÀÎ 2000 ³â 8 ¿ù 2 ÀÏ ÇöÀç, µåµð¾î ADSI ¿Í ¸ÞŸº£À̽º °ü·Ã Âü°í ¼­ÀûÀÌ ÃâÆÇµÉ °ÍÀ̶ó´Â °ÍÀ» ¾Ë°Ô µÇ¾ú½À´Ï´Ù. Wrox ÀÇ »¡°£»ö Ç¥ÁöÀÇ ½Ã¸®Áîµé Áß Çϳª·Î, Á¤º¸¹®È­»ç¿¡¼­ ÃâÆÇµÇ´Â 'Professional ADSI Programming'À̶ó´Â Ã¥ÀÔ´Ï´Ù. 2000 ³â 8 ¿ù 7 ÀÏ ÃâÆÇ ¿¹Á¤À̶ó°íÇÏ´Ï, ¿©·¯ºÐµé²²¼­ ÀÌ °­Á¸¦ º¸½Ç ¹«·Æ¿¡´Â ÀÌ¹Ì ¼­Á¡¿¡ ³ª¿ÍÀÖ°Ú±º¿ä. ÀÌ Ã¥¿¡ ´ëÇØ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾Ë°í ½ÍÀ¸½Å ºÐÀº ¿Í¿ìºÏÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù. (¹°·Ð, Àú´Â Á¤º¸¹®È­»ç³ª ¿Í¿ìºÏ°ú ¾Æ¹«·± °ü°èµµ ¾ø½À´Ï´Ù. -_-+...)


¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 02.
Áö³­¹ø °­Á¿¡¼­ ADSI ¸¦ »ç¿ëÇÑ ¿¹Á¦¸¦ Çϳª »ìÆìº¸¾Ò½À´Ï´Ù¸¸, ¾Æ¹« ¼³¸íµµ ¾øÀÌ ¿¹Á¦ºÎÅÍ º¸¿©µå·Á¼­ ADSI ¸¦ Á¦´ë·Î ÀÌÇØÇϱ⿡´Â Èûµå¼ÌÀ» °ÍÀÔ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸Çϰí, À̹ø °­Á¿¡¼­µµ ¿ª½Ã ¼³¸í¾øÀÌ ¸î °¡Áö ¿¹Á¦¸¦ º¸¿©µå¸®µµ·Ï ÇϰڽÀ´Ï´Ù. Á¦ ³ª¸§´ë·Î ¾à°£ °í¹ÎÀ» ÇØºÃ½À´Ï´Ù¸¸, Áö·çÇÑ ¼³¸íÀ» ÀåȲÇÏ°Ô ´Ã¾î³õ´Â °Íº¸´Ù´Â Äڵ带 Á÷Á¢ º¸¿©µå¸®°í, ±× Äڵ忡 °üÇØ ¼³¸íµå¸®´Â °ÍÀÌ ´ëºÎºÐ ASP ÇÁ·Î±×·¡¸ÓÀÎ ¿©·¯ºÐµé¿¡°Ô ´õ¿í ½±°Ô ´Ù°¡°¥ °ÍÀ̶ó°í »ý°¢Ç߱⠶§¹®ÀÔ´Ï´Ù.

´ÙÀ½Àº µÎ¹øÂ° ADSI ¿¹Á¦ ÇÁ·Î±×·¥(¼Ò½º ´Ù¿î·Îµå)ÀÔ´Ï´Ù. ÀÌ ASP ÇÁ·Î±×·¥Àº ½ÇÇàµÇ´Â ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ Binding °¡´ÉÇÑ ¸ðµç ADSI Á¦°øÀÚÀÇ ¸ñ·ÏÀ» ¸®½ºÆ®·Î º¸¿©ÁÝ´Ï´Ù.

    

<%
  
  '****************************************************************** 
  '*
  '*  # TITLE         : ADSI Test Program - 02.
  '*  # PROGRAM NAME  : ADSI02.asp
  '*  # PROGRAM CONT. : ÇöÀç ·ÎÄà ¸Ó½Å¿¡¼­ »ç¿ë °¡´ÉÇÑ 
  '*                    ¸ðµç ADSI Á¦°øÀÚÀÇ ¸ñ·ÏÀ» º¸¿©ÁØ´Ù.
  '*  # SUB ROUTINE   :	
  '*  # CLIENT SCRIPT :	
  '*  # INCLUDE FILES :	
  '*  # MODIFICATIONS :                                            
  '*		1. 2000/08/11    ¼Û¿ø¼®    ÇÁ·Î±×·¥ óÀ½ ÀÛ¼º
  '*
  '******************************************************************
  
  Option Explicit 	
  On Error Resume Next
  Response.Buffer = True
  
  
  '******************************************************************
  '*
  '* º¯¼ö ¼±¾ð
  '*
  '******************************************************************
  
  Dim ADs
  Dim Provider
  Dim i

  
  '******************************************************************
  '*
  '* ADSI Á¦°øÀÚµéÀÇ ¸ñ·ÏÀ» °¡Á®¿Â´Ù.
  '*
  '******************************************************************
  
  Set ADs = GetObject("ADs:")
  
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
  <title>ADSI Å×½ºÆ® 02</title>
</head>

<body>

  <font size="2">
  
  ¢Â »ç¿ë °¡´ÉÇÑ ADSI Á¦°øÀÚ ¸ñ·Ï<br>
  <table border="0" cellpadding="2" cellspacing="1" bgcolor="#BBBCE6">
  <tr bgcolor="#DBDCF6">
    <td nowrap align="center"><font size="2"> ¼ø¹ø </font></td>
    <td nowrap align="center"><font size="2"> ADSI Á¦°øÀÚ </font></td>
  </tr>
  <%
  i = 1 
  For Each Provider In ADs
  %>
  <tr bgcolor="White">
    <td nowrap align="center"><font size="2"> <%= Right("00" & i, 3) %> </font></td>
    <td nowrap><font size="2"> <%= Provider.Name %> </font></td>
  </tr>
  <%
    i = i + 1
  Next
  %>
  </table><br><br>
  <% Response.Flush %>
  
  <% Set ADs = Nothing %>
  
  </font>
	
</body>
</html>
    


ADSI
ÁÂÃøÀÇ ±×¸²Àº À§ÀÇ ASP ÇÁ·Î±×·¥À» Á¦ ÄÄÇ»ÅÍ¿¡¼­ ½ÇÇà½ÃŲ °á°úÀÔ´Ï´Ù. ÇöÀç Á¦ ÄÄÇ»ÅÍÀÇ ¿î¿µÃ¼Á¦´Â Windows 2000 Advanced Server ·Î ¸ðµÎ ´Ù¼¸°¡Áö Á¾·ùÀÇ ADSI Á¦°øÀÚ°¡ ¸ñ·Ï¿¡ ³ªÅ¸³µ½À´Ï´Ù.

ÀÌ ±×¸²¿¡¼­ º¸ÀÌ´Â °Íó·³ ¸ñ·ÏÀÇ ¸¶Áö¸· ADSI Á¦°øÀÚ´Â IIS: ÀÔ´Ï´Ù. ÀÌÁ¦ ADSI ¸¦ ÀÌ¿ëÇØ¼­ IIS ¸¦ Á¦¾îÇÑ´Ù´Â °ÍÀÇ Àǹ̸¦ ¼­¼­È÷ ´À³¢½Ç ¼ö ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ÇöÀç ÁøÇàµÇ´Â ADSI °­Á ÀÚü´Â ADSI ¿¡ ´ëÇÑ ÀÌÇØÀÇ ÆøÀ» ³ÐÈ÷±â À§Çؼ­ IIS: ADSI Á¦°øÀÚ°¡ ¾Æ´Ï¶ó WinNT: ADSI Á¦°øÀÚ¸¦ ¿¹¸¦ µé¾î ¼³¸íÇϰí ÀÖÁö¸¸, »ç½Ç ÀúÈñ´Â Á¶±Ý¾¿ ±×¸®°í Á¤È®ÇÏ°Ô ÁÖÁ¦¿¡ Á¢±ÙÇØ°¡°í ÀÖ´Â °ÍÀÔ´Ï´Ù.


¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 03.
´ÙÀ½Àº ¼¼¹øÂ° ADSI ¿¹Á¦ ÇÁ·Î±×·¥(¼Ò½º ´Ù¿î·Îµå)ÀÔ´Ï´Ù. ÀÌ ASP ÇÁ·Î±×·¥Àº 'UserID' »ó¼ö¿¡ ÁöÁ¤ÇÑ »ç¿ëÀÚÀÇ °èÁ¤ Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù.

    

<% 
   
  '****************************************************************** 
  '*
  '*  # TITLE         : ADSI Test Program - 03.
  '*  # PROGRAM NAME  : ADSI03.asp
  '*  # PROGRAM CONT. : »ç¿ëÀÚ °èÁ¤ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
  '*  # SUB ROUTINE   :
  '*  # CLIENT SCRIPT :
  '*  # INCLUDE FILES :
  '*  # MODIFICATIONS :
  '*		1. 2000/08/12    ¼Û¿ø¼®    ÇÁ·Î±×·¥ óÀ½ ÀÛ¼º
  '*
  '******************************************************************
   
  Option Explicit
  On Error Resume Next
  Response.Buffer = True
  
   
  '******************************************************************
  '*
  '*  ÄÄÇ»ÅÍ À̸§ »ó¼ö, Å×½ºÆ® »ç¿ëÀÚ °èÁ¤ »ó¼ö
  '*
  '*  ¹Ýµå½Ã MachineName »ó¼ö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ À̸§À¸·Î ¹Ù²ãÁÖ¾î¾ß  
  '*  ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù. 
  '*
  '*  ¹Ýµå½Ã UserID »ó¼ö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡ Á¸ÀçÇÏ´Â Å×½ºÆ® »ç¿ëÀÚ °èÁ¤À¸·Î  
  '*  ¹Ù²ãÁÖ¾î¾ß ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù. 
  '*
  '******************************************************************
   
  Const MachineName = "¼Û¿ø¼®"
  Const UserID = "ADSI_User"
  
  Const ADS_UF_PASSWD_CANT_CHANGE = &h0040
  Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
  
   
  '******************************************************************
  '*
  '* º¯¼ö ¼±¾ð
  '*
  '******************************************************************
   
  Dim User
  Dim TempStr
  
   
  '******************************************************************
  '*
  '* ADSI ¸¦ ÀÌ¿ëÇØ ÁöÁ¤ ÄÄÇ»ÅÍÀÇ ÁöÁ¤ »ç¿ëÀÚ Á¤º¸¸¦ °¡Á®¿Â´Ù.
  '*
  '******************************************************************
   
  Set User = GetObject("WinNT://" & MachineName & "/" & UserID & ",User")
  
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
  <title>ADSI Å×½ºÆ® 03</title>
</head>

<body>

  <font size="2">
  
  ¢Â '<%= UserID %>' °èÁ¤ Á¤º¸<br>
  <table border="0" cellpadding="2" cellspacing="1" bgcolor="#BBBCE6">
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> °è    Á¤ </font></td>
    <td nowrap bgcolor="White"><font size="2"> <%= User.Name %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ±ä À̸§ </font></td>
    <td nowrap bgcolor="White"><font size="2"> <%= User.FullName %> </font></td>		
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ¼³    ¸í </font></td>
    <td nowrap bgcolor="White"><font size="2"> <%= User.Description %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ´ÙÀ½ ·Î±×¿ÂÇÒ ¶§ ¹Ýµå½Ã ¾ÏÈ£ º¯°æ </font></td>
    <% 
    If User.PasswordExpired = 1 Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ¾ÏÈ£ º¯°æÇÒ ¼ö ¾øÀ½ </font></td>
    <% 
    '* AND ¿¬»êÀ» ÀÌ¿ëÇÑ Flag °Ë»ç
    If User.UserFlags AND ADS_UF_PASSWD_CANT_CHANGE = ADS_UF_PASSWD_CANT_CHANGE Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ¾ÏÈ£ »ç¿ë ±â°£ Á¦ÇÑ ¾øÀ½ </font></td>
    <%
    '* AND ¿¬»êÀ» ÀÌ¿ëÇÑ Flag °Ë»ç
    If User.UserFlags AND ADS_UF_DONT_EXPIRE_PASSWD = ADS_UF_DONT_EXPIRE_PASSWD Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <%
    If User.AccountDisabled Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If
    %>
    <td nowrap align="right"><font size="2"> °èÁ¤ »ç¿ë ¾ÈÇÔ </font></td>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <% 
    If User.IsAccountlocked Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap align="right"><font size="2"> °èÁ¤ Àá°Ü ÀÖÀ½ </font></td>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  </table><br><br>
  <% Response.Flush %>
  
  <% Set User = Nothing %>
  
  </font>
	
</body>
</html>
    


¾Æ·¡ ÁÂÃøÀÇ ±×¸²Àº À§ÀÇ ASP ÇÁ·Î±×·¥À» Á¦ ÄÄÇ»ÅÍ¿¡¼­ ½ÇÇà½ÃŲ °á°úÀ̰í, ±× ¿ìÃøÀÇ ±×¸²Àº ½ÇÁ¦·Î 'MMC' ¸¦ ÅëÇØ 'ÄÄÇ»ÅÍ °ü¸® Snap-In' ¿¡¼­ »ìÆìº» ÇØ´ç °èÁ¤ÀÇ µî·Ï Á¤º¸ÀÔ´Ï´Ù. - Windows 2000 Á¦Ç°±º ±âÁØ : NT 4.0 ÀÇ °æ¿ì¿¡´Â 'µµ¸ÞÀÎ »ç¿ëÀÚ °ü¸®ÀÚ'¸¦ »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù. - µÎ ±×¸² ¸ðµÎ Á¦°¡ Å×½ºÆ®¸¦ À§ÇØ ÁöÁ¤ÇÑ °èÁ¤ÀÎ 'ADSI_User' ¶ó´Â °èÁ¤ÀÇ °¢Á¾ Á¤º¸¸¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. Âü°í·Î, 'ADSI_User' ¶ó´Â °èÁ¤Àº Å×½ºÆ®¸¦ À§ÇØ Àӽ÷Π¸¸µç °èÁ¤À¸·Î¼­ Users ±×·ì¿¡ ¼ÓÇÑ ÀϹÝÀûÀÎ °èÁ¤ÀÔ´Ï´Ù.

ADSI   ADSI



¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 03. ÄÚµå ¼³¸í
ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â ¸ÕÀú ÄÄÇ»ÅÍ À̸§°ú Å×½ºÆ®ÇÒ °èÁ¤À» ÀǹÌÇÏ´Â µÎ °³ÀÇ »ó¼ö, MachineName °ú UserID ¸¦ ¼³Á¤Çϰí, ADS_UF_PASSWD_CANT_CHANGE ¿Í ADS_UF_DONT_EXPIRE_PASSWD ¶ó´Â Á¶±ÝÀº ƯÀÌÇÑ »ó¼ö¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù.

ADS_UF_PASSWD_CANT_CHANGE »ó¼ö¿Í ADS_UF_DONT_EXPIRE_PASSWD »ó¼ö´Â °¢°¢ '¾ÏÈ£ º¯°æÇÒ ¼ö ¾øÀ½' ¼Ó¼º°ú '¾ÏÈ£ »ç¿ë ±â°£ Á¦ÇÑ ¾øÀ½' ¼Ó¼ºÀ» ÀǹÌÇÏ´Â Flag °ªÀ¸·Î¼­ ´Ù¸¥ ¿©·¯°¡Áö »ç¿ëÀÚ ¼Ó¼ºµé¿¡ °üÇÑ »ó¼öµé°ú ÇÔ²² ADS_USER_FLAG ¶ó´Â ¿­°ÅÇü¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ÀÌ µÎ°³ÀÇ »ó¼ö´Â ÇÁ·Î±×·¥ÀÇ µÞºÎºÐ¿¡¼­ ÇØ´ç ¼Ó¼ºÀÇ ¼³Á¤ ¿©ºÎ¸¦ ¾Ë¾Æ³»±â À§ÇØ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. ±×¸®°í, '&h' ´Â VBScript ¿¡¼­ 16 Áø¼ö¸¦ ÀǹÌÇÏ´Â ÅäÅ«ÀÔ´Ï´Ù.

    
 
  '******************************************************************
  '*
  '*  ÄÄÇ»ÅÍ À̸§ »ó¼ö, Å×½ºÆ® »ç¿ëÀÚ °èÁ¤ »ó¼ö
  '*
  '*  ¹Ýµå½Ã MachineName »ó¼ö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ À̸§À¸·Î ¹Ù²ãÁÖ¾î¾ß  
  '*  ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù. 
  '*
  '*  ¹Ýµå½Ã UserID »ó¼ö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡ Á¸ÀçÇÏ´Â Å×½ºÆ® »ç¿ëÀÚ °èÁ¤À¸·Î  
  '*  ¹Ù²ãÁÖ¾î¾ß ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù. 
  '*
  '******************************************************************
   
  Const MachineName = "¼Û¿ø¼®"
  Const UserID = "ADSI_User"
  
  Const ADS_UF_PASSWD_CANT_CHANGE = &h0040
  Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
    


º¯¼ö¸¦ ¼±¾ðÇÑ ÈÄ GetObject() ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© UserID »ó¼ö¿¡ ÁöÁ¤ÇÑ °èÁ¤ÀÇ Á¤º¸¸¦ °¡Á®¿É´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­ ADsPath ´Â °á°úÀûÀ¸·Î 'WinNT://¼Û¿ø¼®/ADSI_User,User' °¡ µË´Ï´Ù. ADsPath ¿¡¼­ ',' ¸¦ ±âÁØÀ¸·Î ÇÏ¿© ¾Õ ºÎºÐÀÎ 'WinNT://¼Û¿ø¼®/ADSI_User' ´Â '¼Û¿ø¼®' ÄÄÇ»ÅÍÀÇ 'ADSI_User' ¶ó´Â °èÁ¤À» ÁöÁ¤Çϰí, µÞ ºÎºÐÀÎ 'User' ´Â ',' ¾Õ ºÎºÐÀÇ Class À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù.

    

   
  '******************************************************************
  '*
  '* ADSI ¸¦ ÀÌ¿ëÇØ ÁöÁ¤ ÄÄÇ»ÅÍÀÇ ÁöÁ¤ »ç¿ëÀÚ Á¤º¸¸¦ °¡Á®¿Â´Ù.
  '*
  '******************************************************************
   
  Set User = GetObject("WinNT://" & MachineName & "/" & UserID & ",User")
    


ÀÌÁ¦ 'ADSI_User' °èÁ¤ÀÇ °´Ã¼¸¦ ¾ò¾úÀ¸¹Ç·Î ¼¼ºÎ ¼Ó¼ºÀ» º¸¿©Áֱ⸸ ÇÏ¸é µË´Ï´Ù. Name, FullName, Description ¼Ó¼ºÀº °¢°¢ '°èÁ¤', '±ä À̸§', '¼³¸í'À» ³ªÅ¸³»´Â ¼Ó¼ºÀ¸·Î¼­, ÀÌ¹Ì Áö³­¹ø °­Á¿¡¼­ ´Ù·ç¾îÁø ÀûÀÌ ÀÖ´Â ¼Ó¼ºµéÀÔ´Ï´Ù. ±×¸®°í, AccountDisabled, IsAccountlocked ¼Ó¼ºÀº °¢°¢ '°èÁ¤ »ç¿ë ¾ÈÇÔ', '°èÁ¤ Àá°Ü ÀÖÀ½' À» ³ªÅ¸³»´Â ¼Ó¼ºÀ¸·Î¼­ ÇØ´ç ¼Ó¼ºÀÌ ¼³Á¤µÇ¾î ÀÖÀ¸¸é True ¸¦, ¼³Á¤µÇ¾îÀÖÁö ¾ÊÀ¸¸é False ¸¦ ¹ÝȯÇϹǷΠ»ç¿ëÇϽñ⿡ Å« ¾î·Á¿òÀÌ ¾øÀ¸½Ç °ÍÀÔ´Ï´Ù.

±×·¯³ª, '¾ÏÈ£ º¯°æÇÒ ¼ö ¾øÀ½' °ú '¾ÏÈ£ »ç¿ë ±â°£ Á¦ÇÑ ¾øÀ½' À» ³ªÅ¸³»´Â ¼Ó¼ºÀº º°µµ·Î Á¸ÀçÇÏÁö ¾Ê°í, ´Ù¸¥ ¸î °¡Áö ¼Ó¼ºµé°ú ÇÔ²² UserFlags ¼Ó¼º¿¡ °¢°¢ÀÇ Flag ·Î ¼³Á¤µÇ¹Ç·Î Á÷Á¢ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. µû¶ó¼­ AND ¿¬»êÀ» ÀÌ¿ëÇØ¼­ ÇØ´ç Flag ÀÇ ¼³Á¤ ¿©ºÎ¸¦ È®ÀÎÇØ¾ßÇϴµ¥, Script ¾ð¾î¿¡¸¸ Àͼ÷ÇϽŠºÐµé²²¼­´Â Á¶±Ý ¾î·Æ°Ô ´À²¸Áö½Ç ¼öµµ ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. (AND ¿¬»êÀ̳ª OR ¿¬»ê¿¡ ´ëÇÑ ¼³¸íÀº ±âŸ ÇÁ·Î±×·¡¹Ö ¼­ÀûÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.)

    
			
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ¾ÏÈ£ º¯°æÇÒ ¼ö ¾øÀ½ </font></td>
    <% 
    '* AND ¿¬»êÀ» ÀÌ¿ëÇÑ Flag °Ë»ç
    If User.UserFlags AND ADS_UF_PASSWD_CANT_CHANGE = ADS_UF_PASSWD_CANT_CHANGE Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
  <tr bgcolor="#DBDCF6">
    <td nowrap align="right"><font size="2"> ¾ÏÈ£ »ç¿ë ±â°£ Á¦ÇÑ ¾øÀ½ </font></td>
    <%
    '* AND ¿¬»êÀ» ÀÌ¿ëÇÑ Flag °Ë»ç
    If User.UserFlags AND ADS_UF_DONT_EXPIRE_PASSWD = ADS_UF_DONT_EXPIRE_PASSWD Then 
      TempStr = "On"
    Else
      TempStr = "Off"
    End If 
    %>
    <td nowrap bgcolor="White"><font size="2"> <%= TempStr %> </font></td>
  </tr>
    


À§ÀÇ Äڵ忡¼­ ó·³ UserFlags ¼Ó¼º°ú ¾î¶² »ó¼ö°ªÀ» AND ¿¬»êÇØ¼­ ¿ø·¡ÀÇ ¾î¶² »ó¼ö°ªÀÌ ³ª¿À¸é UserFlags ¼Ó¼ºÀÇ ÇØ´ç Flag °¡ ¼³Á¤µÇ¾îÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. µû¶ó¼­, AND ¿¬»êÀ» »ç¿ëÇÏ¿© ÇØ´ç ¼Ó¼ºÀÇ ¼³Á¤ °á°ú¸¦ ¾Ë¼ö ÀÖ°í, À§¿¡¼­ ó·³ ±× ³»¿ëÀ» Á¤¸®ÇÏ¿© °á°ú¸¦ º¸¿©ÁÝ´Ï´Ù.


¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 04.
´ÙÀ½Àº ³×¹øÂ° ADSI ¿¹Á¦ ÇÁ·Î±×·¥(¼Ò½º ´Ù¿î·Îµå)ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â »ç¶÷ÀÇ ±ÇÇÑÀ» ÀÎÁõÇϱâ À§ÇÏ¿© GetObject() ÇÔ¼ö¿Í ÇÔ²² OpenDSObject() ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.

OpenDSObject() ÇÔ¼ö´Â Administrator ¿Í °°ÀÌ Æ¯¼öÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ¸¸ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¼Ó¼º¿¡ Á¢±ÙÇϱâ À§ÇÑ ÇÔ¼öÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ¿ì¸®´Â Áö³­¹ø °­ÁÂÀÇ ¿¹Á¦¿¡¼­ »ç¿ëÀÚ Á¤º¸, ±×·ì Á¤º¸¿Í ´õºÒ¾î ¼­ºñ½ºÀÇ ±âº»ÀûÀÎ Á¤º¸µéÀ» »ìÆìº¼ ¼ö ÀÖ´Â ¸ñ·ÏµéÀ» Ãâ·ÂÇß¾ú½À´Ï´Ù. ÇÏÁö¸¸, ¼­ºñ½º ¸ñ·ÏÀÇ °æ¿ì ÀÌ ¸ñ·Ï¿¡¼­ °¢°¢ÀÇ ¼­ºñ½ºµéÀÌ ÇöÀç ½ÇÇàµÇ°í ÀÖ´ÂÁö, ȤÀº ¸ØÃçÁ® ÀÖ´ÂÁö °°Àº ¼­ºñ½º »óŸ¦ ¾Ë¾Æ³¾ ¼ö´Â ¾ø¾ú½À´Ï´Ù. ¼­ºñ½ºÀÇ ÇöÀç ¼­ºñ½º »óÅ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â ¼Ó¼ºÀº Status Áö¸¸, ÀÌ ¼Ó¼ºÀ» ±×³É GetObject() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ Á¢±ÙÇϸé 'ÀÏ¹Ý ¿¢¼¼½º ¿À·ù'°¡ ¹ß»ýÇÕ´Ï´Ù.

¾î¶»°Ô »ý°¢Çϸé ÀÌ·¯ÇÑ °á°ú´Â ³Ê¹«µµ ´ç¿¬ÇÑ °ÍÀ̰í, ¹Ýµå½Ã ±×·¸°Ô µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ¾Æ¹«³ª ADSI ¸¦ »ç¿ëÇØ¼­ ¿©·¯ºÐµéÀÇ ¼­¹ö¸¦ Á¶ÀÛÇÒ ¼ö ÀÖ´Ù¸é, Windows 2000 ¼­¹ö¸¦ »ç¿ëÇÒ °ü¸®ÀÚ´Â ÇÑ »ç¶÷µµ ¾øÀ» °ÍÀÔ´Ï´Ù. À̸¥¹Ù 'º¸¾È'¿¡ °ü·ÃµÈ ¹®Á¦ÀÎ °ÍÀÔ´Ï´Ù.

ÀÌ ÇÁ·Î±×·¥À» Å×½ºÆ®ÇÏ½Ç ¶§ ÁÖÀÇÇÏ½Ç Á¡Àº ¾Æ¹«¸®, OpenDSObject() ÇÔ¼ö¸¦ »ç¿ëÇØ¼­ ÀûÀýÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ °èÁ¤À¸·Î ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ´Ù°í ÇØµµ, ÀÎÅͳÝÀ» ÅëÇØ¼­ IIS ¿¡ Á¢±ÙÇÑ »ç¿ëÀÚ´Â ¿ì¼± 'IUSR_MachineName' °èÁ¤À¸·Î ´Ù·ç¾îÁö¹Ç·Î, ¹Ýµå½Ã ÀÌ ÇÁ·Î±×·¥ ÆÄÀÏÀ̳ª ÀÌ ÇÁ·Î±×·¥ÀÌ À§Ä¡ÇÑ Æú´õ¸¦ Administrator ±×·ìÀÇ »ç¿ëÀÚ¸¸ Á¢±Ù °¡´ÉÇϵµ·Ï º¸¾È ¼³Á¤À» ÇϼžßÇÕ´Ï´Ù. ±×·¯Áö ¾ÊÀ¸¸é ¿À·ù¹øÈ£ 0x80005000 ³ª 0x8007052E, ȤÀº 0x80070520 ¿Í °°Àº 'ASP ³»ºÎ ¿À·ù'°¡ ¹ß»ýÇÕ´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛÀÌ FAT ÀÎ ¼­¹ö¿¡¼­µµ Å×½ºÆ® ÇØºÃ½À´Ï´Ù¸¸, ¿ª½Ã ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.

    
			
<%
  
  '****************************************************************** 
  '*
  '*  # TITLE         : ADSI Test Program - 04.
  '*  # PROGRAM NAME  : ADSI04.asp
  '*  # PROGRAM CONT. : Computer Browser ¼­ºñ½ºÀÇ ÇöÀç ¼­ºñ½º »óŸ¦ 
  '*                    ¾Ë¾Æ³½´Ù.
  '*  # SUB ROUTINE   :	
  '*  # CLIENT SCRIPT :	
  '*  # INCLUDE FILES :	
  '*  # MODIFICATIONS :                                            
  '*		1. 2000/08/12    ¼Û¿ø¼®    ÇÁ·Î±×·¥ óÀ½ ÀÛ¼º
  '*
  '******************************************************************
  
  Option Explicit 	
  Response.Buffer = True
  
  
  '******************************************************************
  '*
  '*  ÄÄÇ»ÅÍ À̸§ »ó¼ö
  '*
  '*  ¹Ýµå½Ã MachineName »ó¼ö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ À̸§À¸·Î ¹Ù²ãÁÖ¾î¾ß
  '*  ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù.
  '*
  '*  ¹Ýµå½Ã AdminPasswd »ó¼ö¸¦ ÀÚ½ÅÀÇ Administrator °èÁ¤ÀÇ ¾ÏÈ£·Î
  '*  ¹Ù²ãÁÖ¾î¾ß ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù.
  '*
  '******************************************************************
  
  Const MachineName = "¼Û¿ø¼®"
  Const AdminID = "Administrator"
  Const AdminPasswd = "xxxxxxxxxx"

  Const ADS_SECURE_AUTHENTICATION    = &h1
  
  Const ADS_SERVICE_STOPPED          = &h00000001
  Const ADS_SERVICE_START_PENDING    = &h00000002
  Const ADS_SERVICE_STOP_PENDING     = &h00000003
  Const ADS_SERVICE_RUNNING          = &h00000004
  Const ADS_SERVICE_CONTINUE_PENDING = &h00000005
  Const ADS_SERVICE_PAUSE_PENDING    = &h00000006
  Const ADS_SERVICE_PAUSED           = &h00000007

  
  '******************************************************************
  '*
  '* º¯¼ö ¼±¾ð
  '*
  '******************************************************************
  
  Dim MyProvider, Domain
  Dim Service
  Dim Temp
  
  
  '******************************************************************
  '*
  '* ADSI ¸¦ ÀÌ¿ëÇØ ÁöÁ¤ ÄÄÇ»ÅÍÀÇ ¼­ºñ½º Á¤º¸¸¦ °¡Á®¿Â´Ù.
  '*
  '******************************************************************
  
  Set MyProvider = GetObject("WinNT:")
  Set Domain = MyProvider.OpenDSObject("WinNT://" & MachineName,  _
                                       AdminID,                   _
                                       AdminPasswd,               _
                                       ADS_SECURE_AUTHENTICATION)
  
  '* ¼­ºñ½º¿¡ °üÇÑ Á¤º¸¸¸ °¡Á®¿Àµµ·Ï 
  '* Filter ¸¦ ¼³Á¤ÇÑ´Ù.
  Domain.Filter = Array("Service")
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
  <title>ADSI Å×½ºÆ® 04</title>
</head>

<body>

  <font size="2">
    
  ¢Â Computer Browser ¼­ºñ½º »óÅ Á¤º¸<br>  
  <table border="0" cellpadding="2" cellspacing="1" bgcolor="#BBBCE6">
  <tr bgcolor="#DBDCF6">
    <td nowrap align="center"><font size="2"> ¼­ºñ½º </font></td>
    <td nowrap align="center"><font size="2"> ¼­ºñ½º À̸§ </font></td>
    <td nowrap align="center"><font size="2"> ¼­ºñ½º »óÅ </font></td>
  </tr>
  <%
  For Each Service In Domain
    If Service.Name = "Browser" Then
    %>
  <tr bgcolor="White">
    <% 
    If ADS_SERVICE_STOPPED = Service.Status Then
      Temp = "Stopped"
    ElseIf ADS_SERVICE_RUNNING = Service.Status Then
      Temp = "Running"
    ElseIf ADS_SERVICE_PAUSED = Service.Status Then
      Temp = "Paused"
    ElseIf ADS_SERVICE_STOP_PENDING = Service.Status Then
      Temp = "Stop Pending"    
    ElseIf ADS_SERVICE_START_PENDING = Service.Status Then
      Temp = "Start Pending"    
    ElseIf ADS_SERVICE_CONTINUE_PENDING = Service.Status Then
      Temp = "Countinue Pending"
    ElseIf ADS_SERVICE_PAUSE_PENDING = Service.Status Then    
      Temp = "Pause Pending"    
    Else
      Temp = ""
    End If
    %>
    <td nowrap><font size="2"> <%= Service.Name %> </font></td>
    <td nowrap><font size="2"> <%= Service.DisplayName %> </font></td>
    <td nowrap><font size="2"> <%= Temp %> </font></td>
  </tr>
    <%
    End If
  Next
  %>
  </table><br><br>
  <% Response.Flush %>

  <% 
  Set Domain = Nothing  
  Set MyProvider = Nothing  
  %>
  
  </font>
  
</body>
</html>
    


ADSI  
ÁÂÃøÀÇ ±×¸²Àº ¿ª½Ã À§ÀÇ ASP ÇÁ·Î±×·¥À» Á¦ ÄÄÇ»ÅÍ¿¡¼­ ½ÇÇà½ÃŲ °á°úÀÔ´Ï´Ù. ÀÌ ±×¸²À» º¸¸é Áö±Ý Á¦ ÄÄÇ»ÅÍ¿¡¼­ Computer Browser ¼­ºñ½º°¡ ¼­ºñ½º ÁßÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

ÀÌó·³ OpenDSObject() ÇÔ¼ö¸¦ »ç¿ëÇϸé GetObject() ÇÔ¼ö¸¸À¸·Î´Â Á¢±ÙÇÒ ¼ö ¾ø´Â ¼Ó¼ºµµ ÀÚÀ¯·Ó°Ô Á¢±Ù, ¶Ç´Â ¼öÁ¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.






¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 04. ÄÚµå ¼³¸í
ÀÌ ÇÁ·Î±×·¥¿¡¼­µµ ¿ª½Ã ùºÎºÐ¿¡¼­ ¸î °³ÀÇ »ó¼ö¸¦ ¼±¾ðÇϰí ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍ À̸§°ú »ç¿ëÇÒ °èÁ¤, ±×¸®°í »ç¿ëÇÒ °èÁ¤ÀÇ ¾ÏÈ£¸¦ ÀǹÌÇÏ´Â ¼¼°³ÀÇ »ó¼ö MachineName, AdminID, AdminPasswd ¸¦ ¼±¾ðÇϰí, OpenDSObject() ÇÔ¼ö¿¡¼­ »ç¿ëµÉ ADS_SECURE_AUTHENTICATION »ó¼ö¿Í ÇöÀç ¼­ºñ½ºÀÇ »óŸ¦ ¶æÇÏ´Â ADS_SERVICE... ·Î ½ÃÀÛÇÏ´Â ¸î °³ÀÇ »ó¼ö¸¦ Ãß°¡·Î ¼±¾ðÇϰí ÀÖ½À´Ï´Ù.

±×¸®°í, »ó¼ö¸¦ ¼±¾ðÇÏ´Â ºÎºÐÀ» Á¦¿ÜÇÑ ³ª¸ÓÁö ºÎºÐµé Áß¿¡¼­ OpenDSObject() ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ºÎºÐÀ» »« ³ª¸ÓÁö ºÎºÐµéÀº ¿©·¯ºÐµé²²¼­ ¸ðµÎ ½±°Ô ÀÌÇØÇÏ½Ç ¼ö ÀÖ´Â ³»¿ëµéÀ̹ǷΠÀÏ´Ü ¿©±â¿¡¼­´Â OpenDSObject() ÇÔ¼ö¸¦ ÁßÁ¡ÀûÀ¸·Î ¼³¸íµå¸®°Ú½À´Ï´Ù.

    

  '******************************************************************
  '*
  '* ADSI ¸¦ ÀÌ¿ëÇØ ÁöÁ¤ ÄÄÇ»ÅÍÀÇ ¼­ºñ½º Á¤º¸¸¦ °¡Á®¿Â´Ù.
  '*
  '******************************************************************
  
  Set MyProvider = GetObject("WinNT:")
  Set Domain = MyProvider.OpenDSObject("WinNT://" & MachineName,  _
                                       AdminID,                   _
                                       AdminPasswd,               _
                                       ADS_SECURE_AUTHENTICATION)
  
  '* ¼­ºñ½º¿¡ °üÇÑ Á¤º¸¸¸ °¡Á®¿Àµµ·Ï 
  '* Filter ¸¦ ¼³Á¤ÇÑ´Ù.
  Domain.Filter = Array("Service")
%>
    


»ç½Ç OpenDSObject() ÇÔ¼ö¸¦ ÁßÁ¡ÀûÀ¸·Î ¼³¸íµå¸°´Ù°í ¸»¾¸Àº µå·ÈÁö¸¸, À§¿¡ ³ªÅ¸³ª ÀÖ´Â Äڵ尡 ÀÌ ÇÔ¼öÀÇ »ç¿ë¹ýÀÇ ÀüºÎ¶ó¼­ ´õ ¼³¸íÇÒ °Íµµ ¾ø½À´Ï´Ù. ¸ÕÀú GetObject() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ Á¤º¸¸¦ ¾ò°íÀÚ ÇÏ´Â ADSI Á¦°øÀÚÀÇ ÃÖ»óÀ§ °´Ã¼¸¦ °¡Á®¿É´Ï´Ù. ±×¸®°í ÀÌ·¸°Ô ¾òÀº °´Ã¼ÀÇ ¸Þ½îµåÀÎ OpenDSObject() ÇÔ¼ö¸¦ ±×´ë·Î »ç¿ëÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.

OpenDSObject() ÇÔ¼ö¿¡´Â ¸ðµÎ ³×°³ÀÇ ÀÎÀÚ°¡ Á¸ÀçÇϴµ¥ ù¹øÂ° ÀÎÀÚ´Â ADsPath À̰í, µÎ¹øÂ° ÀÎÀÚ´Â Àû´çÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚÀÇ °èÁ¤ÀÔ´Ï´Ù. ±×¸®°í ¼¼¹øÂ° ÀÎÀÚ´Â ±× °èÁ¤¿¡ ´ëÇÑ ¾ÏÈ£ÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î ³×¹øÂ° ÀÎÀÚ¿¡´Â º¸¾È ¼³Á¤À» °áÁ¤ÇÏ´Â ADS_SECURE_AUTHENTICATION »ó¼ö°¡ µé¾î°©´Ï´Ù. ³×¹øÂ° ÀÎÀÚ¿¡ µé¾î°¥ ¼ö ÀÖ´Â »ó¼ö¿¡´Â ADS_SECURE_AUTHENTICATION ¿Ü¿¡µµ ¸î °¡Áö°¡ ´õ ÀÖ½À´Ï´Ù¸¸, ÀÏ´Ü ³Ñ¾î°¡±â·Î ÇϰڽÀ´Ï´Ù. ADS_SECURE_AUTHENTICATION »ó¼ö´Â ¼­¹ö¿¡¼­ º¸¾È ÀÎÁõÀ» ÇØ¾ß¸¸ÇÑ´Ù´Â Àǹ̸¦ °¡Áö°í ÀÖ½À´Ï´Ù.


¢Â ¸¶Ä¡¸ç...
Áö³­¹ø °­Á¿¡¼­ºÎÅÍ À̹ø °­Á±îÁö µÎ ¹ø¿¡ °ÉÃÄ ¸ðµÎ ³×°¡ÁöÀÇ ADSI °ü·Ã ¿¹Á¦¸¦ º¸¿©µå·È½À´Ï´Ù. ºñ·Ï »ó¼¼ÇÑ ¼³¸íÀº ¾ø¾úÁö¸¸, ¿©·¯ºÐµé²²¼­´Â ÀÌ¹Ì ADSI ÀÇ ´ë·«ÀûÀÎ ¾Æ¿ô¶óÀÎÀ» ÃæºÐÈ÷ ÆÄ¾ÇÇϼÌÀ» °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.

ÇÏÁö¸¸ ºÐ¸íÈ÷ ´ä´äÇϽŠÁ¡µéÀÌ ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. Á¦°¡ ¾Æ¹«¶§³ª ºÒ¾¦ ¼±¾ðÇϰï ÇÏ´Â »ó¼öµéÀº µµ´ëü ¾îµð¿¡¼­ ¾Ë¾Æ³»´Â °ÍÀÎÁö, Áö±Ý±îÁö ¿¹Á¦µé¿¡¼­ ±âÁ¸¿¡ Á¸ÀçÇÏ´Â ¼Ó¼ºµéÀÇ °ªÀ» °¡Á®¿À±â´Â Çߴµ¥, °ª ¼³Á¤Àº ¾î¶»°Ô ÇÏ´Â °ÍÀÎÁö, ±×¸®°í ¾î¶² ÀÚ¿øµéÀ» ADSI ·Î Á¶ÀÛÇÒ ¼ö ÀÖ´ÂÁö, ¹«½¼¹«½¼ ¼Ó¼ºµéÀÌ ÀÖ´ÂÁö µîµî...

ÀÌÁ¦ ´ÙÀ½ °­Á¿¡¼­ ºÎÅÍ´Â ¹Ù·Î ±×·± ±Ã±ÝÁõµéÀ» ÇϳªÇϳª ÇØ°áÇØ°¡µµ·Ï ÇϰڽÀ´Ï´Ù.

°¨»çÇÕ´Ï´Ù.