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> |
|
|
 |
|
ÁÂÃøÀÇ ±×¸²Àº À§ÀÇ 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 ¿¹Á¦ ÇÁ·Î±×·¥ - 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>
|
|
|
 |
|
ÁÂÃøÀÇ ±×¸²Àº ¿ª½Ã À§ÀÇ 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 ·Î Á¶ÀÛÇÒ ¼ö ÀÖ´ÂÁö,
¹«½¼¹«½¼ ¼Ó¼ºµéÀÌ ÀÖ´ÂÁö µîµî...
ÀÌÁ¦ ´ÙÀ½ °Á¿¡¼ ºÎÅÍ´Â ¹Ù·Î ±×·± ±Ã±ÝÁõµéÀ» ÇϳªÇϳª ÇØ°áÇØ°¡µµ·Ï ÇϰڽÀ´Ï´Ù.
°¨»çÇÕ´Ï´Ù.
|