Read a Computer object - vbscript
Active Directory Services Interface (ADSI) is a set of COM (Common Object Model) programming Interfaces. Like ODBC, ADSI provides common access to directories by adding a provider for each directory protocol type.
You can use any of the VBScript programs below in ActiveXperts Network Monitor. Click here for an explanation about how to include scripts in ActiveXperts Network Monitor.
On this site, you can find many ADSI samples.
The read-a-computer-object ADSI class can be used in ActiveXperts Network Monitor to monitor your servers.
Example(s)
strContainer = ""
strName = "EzAdComputer"
On Error Resume Next
'***********************************************
'* Connect to an object *
'***********************************************
Set objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
Set objItem = GetObject("LDAP://" & _
objRootDSE.Get("defaultNamingContext"))
Else
Set objItem = GetObject("LDAP://cn=" & strName & "," & strContainer & "," & _
objRootDSE.Get("defaultNamingContext"))
End If
'***********************************************
'* End connect to an object *
'***********************************************
WScript.Echo VbCrLf & "** General Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strname = objItem.Get("name")
WScript.Echo "name: " & strname
strdnsHostName = objItem.Get("dnsHostName")
WScript.Echo "dnsHostName: " & strdnsHostName
strdescription = objItem.Get("description")
WScript.Echo "description: " & strdescription
WScript.Echo VbCrLf & "** General Properties Page**"
WScript.Echo "** (The userAccountControl attribute) **"
Set objHash = CreateObject("Scripting.Dictionary")
objHash.Add "ADS_UF_TRUSTED_FOR_DELEGATION", &h80000
objHash.Add "ADS_UF_WORKSTATION_TRUST_ACCOUNT", &h1000
objHash.Add "ADS_UF_SERVER_TRUST_ACCOUNT", &h2000
intuserAccountControl = objItem.Get("userAccountControl")
For Each Key in objHash.Keys
If objHash(Key) And intuserAccountControl Then
WScript.Echo Key & " is enabled."
Else
WScript.Echo Key & " is disabled."
End If
Next
If intuserAccountControl AND objHash.Item("ADS_UF_TRUSTED_FOR_DELEGATION") Then
WScript.Echo "Trust computer for delegation"
Else
WScript.Echo "Do not trust the computer for delegation"
End If
If intuserAccountControl AND objHash.Item("ADS_UF_SERVER_TRUST_ACCOUNT") Then
WScript.Echo "Role: Domain Controller"
Else
WScript.Echo "Role: Workstation or Server"
End If
WScript.Echo VbCrLf & "** Operating System Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
stroperatingSystem = objItem.Get("operatingSystem")
WScript.Echo "operatingSystem: " & stroperatingSystem
stroperatingSystemVersion = objItem.Get("operatingSystemVersion")
WScript.Echo "operatingSystemVersion: " & stroperatingSystemVersion
stroperatingSystemServicePack = objItem.Get("operatingSystemServicePack")
WScript.Echo "operatingSystemServicePack: " & stroperatingSystemServicePack
WScript.Echo VbCrLf & "** Member Of Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strprimaryGroupID = objItem.Get("primaryGroupID")
WScript.Echo "primaryGroupID: " & strprimaryGroupID
WScript.Echo VbCrLf & "** Member Of Properties Page**"
WScript.Echo "** (MultiValued Attributes) **"
strmemberOf = objItem.GetEx("memberOf")
WScript.Echo "memberOf:"
For Each Item in strmemberOf
WScript.Echo vbTab & Item
Next
WScript.Echo VbCrLf & "** Location Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strlocation = objItem.Get("location")
WScript.Echo "location: " & strlocation
WScript.Echo VbCrLf & "** Managed By Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strmanagedBy = objItem.Get("managedBy")
WScript.Echo "managedBy: " & strmanagedBy
If strmanagedBy <> "" Then
Set objItem1 = GetObject("LDAP://" & strManagedBy)
WScript.Echo "physicalDeliveryOfficeName: " & _
objItem1.physicalDeliveryOfficeName
WScript.Echo "streetAddress: " & _
objItem1.streetAddress
WScript.Echo "l: " & _
objItem1.l
WScript.Echo "c: " & _
objItem1.c
WScript.Echo "telephoneNumber: " & _
objItem1.telephoneNumber
WScript.Echo "facsimileTelephoneNumber: " & _
objItem1.facsimileTelephoneNumber
End If
