Solved

VBS Script

Posted on 2014-03-18
13
321 Views
Last Modified: 2014-03-18
Hey guys,

I am trying to write a VB script to return a value or "DHCP" or "Static" depending on how the NIC is configured.

Windows 7 and Server 2008 R2
0
Comment
Question by:triphen
  • 7
  • 6
13 Comments
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
You can try this:

' If no argument is supplied then script is executed on local computer
set args = Wscript.Arguments
If Wscript.Arguments.Count = 0 Then
	strComputer = "." 
Else
	strComputer = args.item(0)
end if

'Query WMI
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_NetworkAdapterConfiguration") 
'Output to console
For Each objItem in colItems 
    Wscript.Echo "DHCPEnabled: " & objItem.DHCPEnabled
Next

Open in new window


This will return true or false depending on wheter or not DHCP is enabled
0
 

Author Comment

by:triphen
Comment Utility
It returns 1 True, then about 10 Falses.
0
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
How many NIC cards do you have?  Do you have VMWare installed?
0
 

Author Comment

by:triphen
Comment Utility
1, Yes

Let me check another machine.....good call

Is it possible to Return "DHCP" and "Static" vs True and False?
0
 

Author Comment

by:triphen
Comment Utility
Same result on another machine  with only 1 NIC and no VM installed. Several Pop ups. True, False, False, False, False, False, False, True, False, False, etc.
0
 
LVL 14

Accepted Solution

by:
Juan Ocasio earned 500 total points
Comment Utility
Try this

' If no argument is supplied then script is executed on local computer
set args = Wscript.Arguments
If Wscript.Arguments.Count = 0 Then
	strComputer = "." 
Else
	strComputer = args.item(0)
end if

'Query WMI
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = true") 
'Output to console
For Each objItem in colItems 
    'Wscript.Echo "DeviceName: " & objItem.DHCPEnabled
If objItem.DHCPEnabled Then
     Wscript.Echo "Enabled"
Else
    Wscript.Echo "Static"
End If

Next

Open in new window

0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:triphen
Comment Utility
This looks promising :)


I modified to this, since I will always be executing on local PC.

'Query WMI
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = true") 
'Output to console
For Each objItem in colItems 
    'Wscript.Echo "DeviceName: " & objItem.DHCPEnabled
If objItem.DHCPEnabled Then
     Wscript.Echo "DHCP"
Else
    Wscript.Echo "Static"
End If

Next

Open in new window



This works great!

Now one small problem. I am trying to use this with BGInfo by SysInternals. When loading this script I get:

Line 8, position 5 Object Required 'Wscript'
0
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
If you run the script you can send arguments so for example if you named it IsDHCPEnabled.vbs and you're querying a server named Server1, you would type in at the command line:

IsDHCPEnabled.vbs Server1

You have to have permission on the remote computer, otherwise it won't run
0
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
Scrap my last comment.  I misunderstood your last post.  I'm not sure why SysInternal is producing an error.  Perhaps you have to reference the Wscript object in the IDE?
0
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
In BGInfo, you can create a custom Field and select WMI.  Browse Path then select the class Win32_NetworkAdapterConfiguration and class property of DHCPEnabled  Under the WMI query modify the query to read

SELECT DHCPEnabled FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = true

Evaluate it to make sure the query evaluates as expected then click OK.  Make sure you name the field and then select it from the field list.

This should accomplish what you want within BGInfo
0
 

Author Comment

by:triphen
Comment Utility
This worked for me and BGInfo...


Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = true")
'Output to console
For Each objItem in colItems
    'Wscript.Echo "DeviceName: " & objItem.DHCPEnabled

If objItem.DHCPEnabled Then
On Error Resume Next
     Wscript.Echo "DHCP"
Echo "DHCP"
on error goto 0
Else
On Error Resume Next
    Wscript.Echo "Static"
Echo "Static"
on error goto 0
End If

Next
0
 

Author Closing Comment

by:triphen
Comment Utility
Thank you! Couldn't have done it without you :)
0
 
LVL 14

Expert Comment

by:Juan Ocasio
Comment Utility
No problem!  Glad you got it working!
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Welcome to part one of a multi-part tutorial series, VBScript for Windows System Administrators.  The goal of this series is to teach non-programmers how to write useful VBS code to automate their environment, and perform tasks faster, and in a more…
In this article we want to have a look at the directory attributes which are used by Microsoft to store the so called Security Identifiers (SID). These SIDs plays an important role in delegating and granting permissions and in authentication of trus…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now