我上次说的是如何使用ADSI管理web server这次讨论ADSI如何对NT进行管理使用ADSI对IIS进行管理需要OP4而对NT要进行ADSI管理则需要NTLM NTLM提供以下几个对象: Domain, Group, and User. 通过domain对象你可以增加groups和users.警告:以下的例子都将改变NT访问权限数据库;任意增加和改变NT用户的权限使用前请仔细阅读,请只在测试的机器上运行这些程序,只到你掌握了NTLM的工作原理为止。千万不要危害到真正主机的安全。只有拥有Administrator或则Operator权限的人才能够在运行IIS机器上更改NT的用户数据库。所以,使用Anonymous权限登录是没有权限的。当然如果使用SSL的话也能够保证安全性。例子如下:新建一个用户:可以在一个独立的服务器上,也可以在一个主域服务器上新增用户<% On Error Resume Next strDomain="MACHINENAME"strUser="jdoe" Set oDomain = GetObject("WinNT://" & strDomain) Set oUser = oDomain.Create ("user", strUser) If (err.number = 0) ThenoUser.SetInfooUser.SetPassword "mypassword"oUser.SetInfoSet oUser=NothingEnd If Set oDomain=Nothing%> 新增加一个组:<% strDomain="MACHINENAME"strGroup="Unidentified" Set oDomain = GetObject("WinNT://" & strDomain) Set oGroup = oDomain.Create ("group", strGroup) oGroup.SetInfo Set oDomain=NothingSet oGroup=Nothing%> 把一个用户增加到一个组中. <%strDomain="MACHINENAME"strUser="jdoe"strGroup="Unidentified" Set oDomain = GetObject("WinNT://" & strDomain)Set oGroup = oDomain.GetObject("Group", strGroup) oGroup.Add ("WinNT://" & strDomain & "/" & strUser) Set oDomain=NothingSet oGroup=Nothing%>配置用户信息<% strDomain="MACHINENAME"strUser="jdoe" Set oUser = GetObject("WinNT://" & strDomain & "/" & strUser) ' Setting the Account Expiration to 30 days from today dtExpirationDate=Now()dtExpirationDate=DateAdd("d",30,dtExpirationDate) oUser.AccountExpirationDate = dtExpirationDate ' Setting the Full Name of the UseroUser.FullName="Joe Doe" oUser.SetInfo() Set oUser=Nothing%>继承用户<%strDomain="MACHINENAME"strGroup="Unidentified" Set Group = GetObject("WinNT://" & strDomain & "/" & strGroup) For Each Member in Group.Members If (Member.Class="User") Then ' Here is where you would do' something with the user End IfNext%>当你是使用的NT5.0时,就不需要安装NTLM了,因为NT5.0提供对ADSI的支持。
我上次说的是如何使用ADSI管理web server这次讨论ADSI如何对NT进行管理使用ADSI对IIS进行管理需要OP4而对NT要进行ADSI管理则需要NTLM NTLM提供以下几个对象: Domain, Group, and User. 通过domain对象你可以增加groups和users.警告:以下的例子都将改变NT访问权限数据库;任意增加和改变NT用户的权限使用前请仔细阅读,请只在测试的机器上运行这些程序,只到你掌握了NTLM的工作原理为止。千万不要危害到真正主机的安全。只有拥有Administrator或则Operator权限的人才能够在运行IIS机器上更改NT的用户数据库。所以,使用Anonymous权限登录是没有权限的。当然如果使用SSL的话也能够保证安全性。例子如下:新建一个用户:可以在一个独立的服务器上,也可以在一个主域服务器上新增用户<%
On Error Resume Next
strDomain="MACHINENAME"strUser="jdoe"
Set oDomain = GetObject("WinNT://" & strDomain)
Set oUser = oDomain.Create ("user", strUser)
If (err.number = 0) ThenoUser.SetInfooUser.SetPassword "mypassword"oUser.SetInfoSet oUser=NothingEnd If
Set oDomain=Nothing%>
新增加一个组:<%
strDomain="MACHINENAME"strGroup="Unidentified"
Set oGroup = oDomain.Create ("group", strGroup)
oGroup.SetInfo
Set oDomain=NothingSet oGroup=Nothing%>
把一个用户增加到一个组中. <%strDomain="MACHINENAME"strUser="jdoe"strGroup="Unidentified"
Set oDomain = GetObject("WinNT://" & strDomain)Set oGroup = oDomain.GetObject("Group", strGroup)
oGroup.Add ("WinNT://" & strDomain & "/" & strUser)
Set oDomain=NothingSet oGroup=Nothing%>配置用户信息<%
Set oUser = GetObject("WinNT://" & strDomain & "/" & strUser)
' Setting the Account Expiration to 30 days from today
dtExpirationDate=Now()dtExpirationDate=DateAdd("d",30,dtExpirationDate)
oUser.AccountExpirationDate = dtExpirationDate
' Setting the Full Name of the UseroUser.FullName="Joe Doe"
oUser.SetInfo()
Set oUser=Nothing%>继承用户<%strDomain="MACHINENAME"strGroup="Unidentified"
Set Group = GetObject("WinNT://" & strDomain & "/" & strGroup)
For Each Member in Group.Members
If (Member.Class="User") Then
' Here is where you would do' something with the user
End IfNext%>当你是使用的NT5.0时,就不需要安装NTLM了,因为NT5.0提供对ADSI的支持。