Dr.DNN 開講
開發工具
: WSHDr.DNN 開講
開發工具
: WSHTip 002 : 透過 VBScript 控制 ADSI |
你知道曾執網路系統牛耳的Novell 公司,在 Windows NT 的節節進逼之後,已將公司定位為提供Directory Service(目錄服務)的公司了嗎?你知道Microsoft在Windows NT 5.0中,也將提供 ADSI (Active Directory Service Interface)了嗎?看來,在 Directory Service市場中,Microsoft和 Novell 似乎又將有一場惡仗要打。 如果您是一位MIS或網管人員,對上述訊息當然不陌生,不過如果您是一位Developer,顯然也無法置身事外。為什麼呢?因為Microsoft已將VBScrip衍生至相關的系統之中,要控制NT系統核心或ADSI,只要透過Windows Scripting Host 配合VBScript的簡易語法(當然你也可以使用 Ok,廢話不多說,接著讓我們看看幾個實際的範例程式碼,看看ADSI的威力吧! :Windows NT 的節節進逼之後,已將公司定位為提供Directory Service(目錄服務)的公司了嗎?你知道Microsoft在Windows NT 5.0中,也將提供 ADSI (Active Directory Service Interface)了嗎?看來,在 Directory Service市場中,Microsoft和 Novell 似乎又將有一場惡仗要打。 JavaScript),你就能擁有NT網路系統核心的整個世界! |
1. 如何偵測NT使用者所在的群組 ? |
dsRoot = "WinNT://domain/userid" set wshShell = Wscript.CreateObject("Wscript.Shell") set dsObj = GetObject(dsRoot) For Each Prop In dsobj.groups wshshell.popup Prop.Name Next 'Prop |
2. 如何透過 ADSI 更新 NT 的使用者設定 ? |
set user = GetObject("WinNT://domain/user") User.FullName = FirstNameVar User.HomeDirectory = UserHome User.Profile = "\Server\Share\user" User.LoginScript = LogonScript User.Description = "Description" User.setinfo |
3. 如何列出NT網路中的所有網域 DOMAIN? |
Using ADSI you can do the following... Dim adsNS, adsDomain Set WSHShell = WScript.CreateObject("WScript.Shell") Set adsNS = GetObject("WinNT:") adsNS.Filter = Array("domain") For Each adsDomain In adsNS WSHShell.popup adsDomain.ADsPath Next 'adsDomain |
4. 如何建立 NT 使用者? |
On Error Resume Next strUser="UserID" Set oDomain = GetObject("WinNT://YourDomain") Set oUser = oDomain.Create ("user", strUser) If (err.number = 0) Then 'If not 0 then user ID already exists oUser.SetInfo oUser.SetPassword "mypassword" oUser.SetInfo End If |
5. 如何建立NT的使用者群組 ? |
StrGroup="NewGroupName" Set oDomain = GetObject("WinNT://YourDomain") Set oGroup = oDomain.Create ("group", strGroup) OGroup.SetInfo |
您只要將上述程式碼,放置在 NT 的任何目錄中,將副檔名存為 .vbs並直接執行,就可以看到ADSI的威力囉! Ok , 有關 ADSI 的相關資訊,您可以在下列位址中找到更多資訊 :ADSI User Group http://www.15seconds.com/focus/ADSI.htm Understanding ADSI http://www.15seconds.com/Issue/980304.htm Configuring NTLM with ADSI http://www.15seconds.com/Issue/980318.htm |