'==========================================================================
'
' VBScript:  AUTHOR: Ed Wilson , MS,  11/09/2003
'
' NAME: <ADouWMIDHCP.vbs>
'
' COMMENT: Key concepts are listed below:
'1. making connection to AD
'2. Controlling results by using a filter
'3. Using WMI to enable DHCP
'4. Using status codes to determine sucess or failure
' REVISIONS:
' 11/10/2003 connection string - split into parts
' 11/11/2003 added computer filter to query
' 11/12/2003 changed names of variables from obj to o
'==========================================================================

Option Explicit
'On Error Resume Next

dim qQuery
dim oConnection
dim oCommand
dim oRecordSet
Dim oDom
Dim oProvider
Dim oOU
Dim Target, oWMIService, colNetAdapters, oNetAdapter, errEnable


oProvider = "'LDAP://"
oDom = "dc=nwtraders, dc=msft'" 
oOU = "ou=workstations,"
qQuery = "Select Name from " & oProvider _
& oOU & oDom & "where objectClass='computer'"

Set oConnection = CreateObject("ADODB.Connection")
Set oCommand = CreateObject("ADODB.Command")
oConnection.Open "Provider=ADsDSOObject;"
oCommand.ActiveConnection = oConnection
oCommand.CommandText = qQuery
Set oRecordSet = oCommand.Execute

While Not oRecordSet.EOF
    Target= oRecordSet.Fields("name")
    
Set oWMIService = GetObject("winmgmts:\\" & Target & "\root\cimv2")
Set colNetAdapters = oWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each oNetAdapter In colNetAdapters
    errEnable = oNetAdapter.EnableDHCP()
     If errEnable = 0 Then
        Wscript.Echo "DHCP has been enabled."
    Else
        Wscript.Echo "DHCP could not be enabled."
    End If
Next

    oRecordSet.MoveNext
Wend

oConnection.Close