• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 329
  • Last Modified:

VBS Script

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
triphen
Asked:
triphen
  • 7
  • 6
1 Solution
 
Juan OcasioCommented:
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
 
triphenAuthor Commented:
It returns 1 True, then about 10 Falses.
0
 
Juan OcasioCommented:
How many NIC cards do you have?  Do you have VMWare installed?
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
triphenAuthor Commented:
1, Yes

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

Is it possible to Return "DHCP" and "Static" vs True and False?
0
 
triphenAuthor Commented:
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
 
Juan OcasioCommented:
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
 
triphenAuthor Commented:
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
 
Juan OcasioCommented:
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
 
Juan OcasioCommented:
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
 
Juan OcasioCommented:
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
 
triphenAuthor Commented:
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
 
triphenAuthor Commented:
Thank you! Couldn't have done it without you :)
0
 
Juan OcasioCommented:
No problem!  Glad you got it working!
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 7
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now