Windows VBScript to renew DHCP & display status

' FIXDHCP V0.1, COPYRIGHT 2006 JOHN NAVAS ' FREE FOR PERSONAL NON-COMMERCIAL USE ' RELEASE AND RENEW ALL DHCP ADDRESSES, THEN RUN 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

Dim RetVal Dim AdapterConfig Set AdapterConfig = GetObject("winmgmts:Win32_NetworkAdapterConfiguration")

objStdOut.Write "Release IP Address for all installed network adapters..." RetVal = AdapterConfig.ReleaseDHCPLeaseAll If RetVal = 0 Then objStdOut.WriteLine "success." Else objStdOut.WriteLine "failure!" End If

seconds = 10 objStdOut.Write "Sleeping for " & seconds & " seconds..." WScript.Sleep seconds * 1000 objStdOut.WriteLine "done."

objStdOut.Write "Renew IP Address for all installed network adapters..." RetVal = AdapterConfig.RenewDHCPLeaseAll If RetVal = 0 Then objStdOut.WriteLine "success." Else objStdOut.WriteLine "failure!" End If

objStdOut.WriteBlankLines 1

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

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

Reply to
John Navas
Loading thread data ...

Substantially improved version. Save as FixDHCP.VBS Feedback invited.

-------------------------------------------------------------------------------- ' FIXDHCP.VBS V0.2, COPYRIGHT 2006 JOHN NAVAS ' FREE FOR PERSONAL NON-COMMERCIAL USE ' RELEASE AND RENEW ALL DHCP ADDRESSES, THEN RUN 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

--------------------------------------------------------------------------------

Reply to
John Navas

Cabling-Design.com Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.