Wireless Wiki
Advertisement

Welcome! Wireless Wiki is a practical, comprehensive, and objective resource for wireless communications, particularly wireless access to the Internet, and related wireless technologies (e.g., cellular). Founded by John Navas.

Click to Search Wireless Wiki with Google

Contributions and corrections are encouraged and appreciated, but please first visit our Community Portal for Important Policies on Content, Style, What we are, What we aren't, and answers to your questions.


This is a Visual Basic script that tries to fix DHCP problems under Microsoft Windows by releasing and renewing DHCP leases, and then displaying the results. Copy, paste, and save these lines into a file named FixDHCP.vbs. Double-click the file to run it with any SSO Login.

' FIXDHCP VERSION 0.2.1 BY JOHN NAVAS
' RELEASE AND RENEW ALL DHCP ADDRESSES, THEN DISPLAY IPCONFIG /ALL

On Error Resume Next

' FORCE USE OF CSCRIPT INSTEAD OF WSCRIPT
UseCscript
Set objStdOut = WScript.StdOut

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

' DISPLAY OS AND VERSION
Set oExec = WshShell.Exec("%COMSPEC% /C VER")
output = ""
Do While Not oExec.StdOut.AtEndOfStream
  output = output & oExec.StdOut.ReadAll
  WScript.Sleep 100
Loop
objStdOut.WriteLine output

' PROCESS ALL IP ADAPTERS
Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( "SELECT *" _
    & " FROM Win32_NetworkAdapterConfiguration" _
    & " Where IPEnabled = True",,48)
For Each objItem in colItems
  DoAdapter objItem
Next

Cmd = "IPCONFIG /ALL"
Set oExec = WshShell.Exec(Cmd)
output = ""
Do While Not oExec.StdOut.AtEndOfStream
  output = output & oExec.StdOut.ReadAll
  WScript.Sleep 100
Loop
objStdOut.WriteLine Cmd & output

objStdOut.WriteLine "This screen may be copied to clipboard" _
  & " for pasting into other Windows:"
objStdOut.WriteLine "Click System Menu icon, Edit -> Mark," _
  & " select text, and Edit -> Copy."
objStdOut.WriteBlankLines 1
objStdOut.Write "Press [Enter] to close..."
objStdOut.Close
Wscript.StdIn.ReadLine

' IF WSCRIPT, SWITCH TO CSCRIPT
Sub UseCscript
  pcengine = LCase(Mid(WScript.FullName, _
    InstrRev(WScript.FullName,"\")+1))
  If Not pcengine="cscript.exe" Then
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "CSCRIPT.EXE """ & WScript.ScriptFullName & """"
    WScript.Quit
  End If
End Sub

' PROCESS IP ADAPTER
Sub DoAdapter(objItem)
    objStdOut.WriteLine objItem.Description
    objStdOut.WriteLine "MACAddress: " & objItem.MACAddress

    objStdOut.WriteLine "DHCPEnabled: " & objItem.DHCPEnabled
    If objItem.DHCPEnabled Then

      objStdOut.Write "Release IP Address..."
      rtrn = objItem.ReleaseDHCPLease()
      if rtrn = 0 Then
	objStdOut.WriteLine "success."
      Else
	objStdOut.WriteLine "failure (" & rtrn & ")!"
      End If

      objStdOut.Write "Renew IP Address..."
      rtrn = objItem.RenewDHCPLease()
      if rtrn = 0 Then
	objStdOut.WriteLine "success."
      Else
	objStdOut.WriteLine "failure (" & rtrn & ")!"
      End If

      objStdOut.WriteLine "DHCPServer: " & objItem.DHCPServer
      objStdOut.WriteLine "DHCPLeaseExpires: " _
	& objItem.DHCPLeaseExpires
      objStdOut.WriteLine "DHCPLeaseObtained: " _
	& objItem.DHCPLeaseObtained
    End If

    For Each strIPAddress in objItem.IPAddress
        objStdOut.WriteLine "IP Address: " & strIPAddress
    Next
    objStdOut.WriteLine "IPConnectionMetric: " _
      & objItem.IPConnectionMetric

    objStdOut.WriteBlankLines 1
End Sub
Advertisement