Solved

VBS Script

Posted on 2014-03-18
13
322 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
ID: 39937951
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
ID: 39937968
It returns 1 True, then about 10 Falses.
0
 
LVL 14

Expert Comment

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

Author Comment

by:triphen
ID: 39938002
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
ID: 39938010
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
ID: 39938024
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:triphen
ID: 39938061
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
ID: 39938086
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
ID: 39938105
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
ID: 39938136
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
ID: 39938261
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
ID: 39938263
Thank you! Couldn't have done it without you :)
0
 
LVL 14

Expert Comment

by:Juan Ocasio
ID: 39938278
No problem!  Glad you got it working!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

867 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

15 Experts available now in Live!

Get 1:1 Help Now