You are here:
ActiveXperts.com > ActiveXperts Network Monitor > WindowsManagement > Scripts > Scripting Techniques > ADSI
Quicklinks
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.
Set objRootDSE = GetObject("LDAP://rootDSE")
strSchema = "LDAP://" & objRootDSE.Get("schemaNamingContext")
WScript.echo "ADsPath to schema: " & strSchema
Set objSchema = GetObject(strSchema)
WScript.Echo "Schema Object:"
WScript.Echo "Name: " & objSchema.Name
WScript.Echo "Class: " & objSchema.Class & VbCrLf
strConfiguration = "LDAP://" & objRootDSE.Get("configurationNamingContext")
WScript.Echo "ADsPath to configuration container: " & strConfiguration
Set objConfiguration = GetObject(strConfiguration)
WScript.Echo "Configuration Object:"
WScript.Echo "Name: " & objConfiguration.Name
WScript.Echo "Class: " & objConfiguration.Class & VbCrLf
strDomain = "LDAP://" & objRootDSE.Get("defaultNamingContext")
WScript.Echo "ADsPath to current domain container: " & strDomain
Set objDomain = GetObject(strDomain)
WScript.Echo "Current Domain Object:"
WScript.Echo "Name: " & objDomain.Name
WScript.Echo "Class: " & objDomain.Class & VbCrLf
strRootDomain = "LDAP://" & objRootDSE.Get("rootDomainNamingContext")
WScript.Echo "ADsPath to root domain container: " & strDomain
Set objRootDomain = GetObject(strRootDomain)
WScript.Echo "Current Domain Object:"
WScript.Echo "Name: " & objRootDomain.Name
WScript.Echo "Class: " & objRootDomain.Class & VbCrLf
Set objSchemaComputer = GetObject("LDAP://schema/computer")
WScript.Echo "Mandatory (Must-Contain) attributes"
For Each strAttribute in objSchemaComputer.MandatoryProperties
WScript.Echo strAttribute
Next
WScript.Echo VbCrLf & "Optional (May-Contain) attributes"
For Each strAttribute in objSchemaComputer.OptionalProperties
WScript.Echo strAttribute
Next
On Error Resume Next
strClassName = "cn=user"
Set objSchemaClass = GetObject _
("LDAP://" & strClassName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
arrSystemAuxiliaryClass = _
objSchemaClass.GetEx("systemAuxiliaryClass")
If isEmpty(arrSystemAuxiliaryClass) Then
WScript.Echo "There are no auxiliary classes" & _
" applied directly to this class."
Else
WScript.StdOut.Write "Auxiliary classes: "
For Each strAuxiliaryClass in arrSystemAuxiliaryClass
WScript.StdOut.Write strAuxiliaryClass & " | "
Next
WScript.Echo
End If
strClassName = "cn=organizational-person"
Set objSchemaClass = GetObject _
("LDAP://" & strClassName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
intClassCategory = objSchemaClass.Get("objectClassCategory")
Select Case intClassCategory
Case 0
strCategory = "88"
Case 1
strCategory = "structural"
Case 2
strCategory = "abstract"
Case 3
strCategory = "auxiliary"
End Select
Wscript.Echo strClassName & " is categorized as " & strCategory & "."
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
Wscript.Echo "User name: " & objSysInfo.UserName
Wscript.Echo "Computer name: " & objSysInfo.ComputerName
Wscript.Echo "Site name: " & objSysInfo.SiteName
Wscript.Echo "Domain short name: " & objSysInfo.DomainShortName
Wscript.Echo "Domain DNS name: " & objSysInfo.DomainDNSName
Wscript.Echo "Forest DNS name: " & objSysInfo.ForestDNSName
Wscript.Echo "PDC role owner: " & objSysInfo.PDCRoleOwner
Wscript.Echo "Schema role owner: " & objSysInfo.SchemaRoleOwner
Wscript.Echo "Domain is in native mode: " & objSysInfo.IsNativeMode
Set objDomain = GetObject("LDAP://dc=NA,dc=fabrikam,dc=com")
WScript.Echo "Ads Path:" & objDomain.ADsPath
WScript.Echo "Class:" & objDomain.Class
WScript.Echo "GUID:" & objDomain.GUID
WScript.Echo "Name:" & objDomain.Name
WScript.Echo "Parent:" & objDomain.Parent
WScript.Echo "Schema:" & objDomain.Schema
Set objConfiguration = GetObject _
("LDAP://cn=Configuration,dc=fabrikam,dc=com")
For Each objContainer in objConfiguration
WScript.Echo objContainer.Name
Next
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
";" & _
"(&(&(objectCategory=person)(objectClass=user)" & _
"(department=Human Resources)));" & _
"ADsPath,distinguishedName, name;subtree"
Set objRecordSet = objCommand.Execute
Set objOU = GetObject("LDAP://ou=HR,dc=NA,dc=fabrikam,dc=com")
Do Until objRecordset.EOF
strADsPath = objRecordset.Fields("ADsPath")
strDNRecord=lcase(objRecordset.Fields("distinguishedName"))
strDNCompare=lcase("cn=" & objRecordset.Fields("name") & _
",ou=HR,dc=NA,dc=fabrikam,dc=com")
If strDNRecord <> strDNCompare Then
objOU.MoveHere strADsPath, vbNullString
WScript.Echo objRecordset.Fields("distinguishedName") & " Moved."
Else
Wscript.Echo objRecordset.Fields("distinguishedName") & " Not Moved."
End If
objRecordSet.MoveNext
Loop
objConnection.Close
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
";" & _
"(&(objectCategory=Computer)(cn=ATL*));" & _
"ADsPath;subtree"
Set objRecordSet = objCommand.Execute
Do Until objRecordset.EOF
strADsPath = objRecordset.Fields("ADsPath")
Set objComputer = GetObject(strADsPath)
objComputer.Put "location", "Atlanta, Georgia"
objComputer.SetInfo
objRecordSet.MoveNext
Loop
WScript.Echo objRecordSet.RecordCount & _
" computers objects modified."
objConnection.Close
strAttributeName = "cn=given-name"
Set objSchemaAttribute = GetObject _
("LDAP://" & strAttributeName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
blnInGC = objSchemaAttribute.Get("isMemberOfPartialAttributeSet")
If blnInGC Then
WScript.Echo "The " & strAttributeName & _
" attribute is replicated to the Global Catalog."
Else
WScript.Echo "The " & strAttributeName & _
" attribute is not replicated to the Global Catalog."
End If
Const ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED = &h00000004
strAttributeName = "cn=Canonical-Name"
Set objSchemaAttribute = GetObject _
("LDAP://" & strAttributeName & _
",cn=schema,cn=configuration,dc=fabrikam,dc=com")
intSystemFlags = objSchemaAttribute.Get("systemFlags")
If intSystemFlags AND ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED Then
WScript.Echo strAttributeName & " is operational."
Else
WScript.Echo strAttributeName & " is not operational."
End If
Const IS_INDEXED = 1
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Sort On") = "isMemberOfPartialAttributeSet"
objCommand.CommandText = _
";" & _
"(objectClass=attributeSchema);" & _
"lDAPDisplayName, isMemberOfPartialAttributeSet,searchFlags;onelevel"
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
WScript.Echo objRecordset.Fields("lDAPDisplayName")
If objRecordset.Fields("isMemberOfPartialAttributeSet")Then
WScript.Echo "In the global catalog."
Else
WScript.Echo "Not in the global catlog."
End If
If IS_INDEXED AND objRecordset.Fields("searchFlags") Then
WScript.Echo "Is indexed."
Else
WScript.Echo "Is not indexed."
End If
Wscript.Echo VbCrLf
objRecordSet.MoveNext
Loop
objConnection.Close