Solved

VB Script to check Default Gateway if corrent run if not end

Posted on 2008-10-22
4
712 Views
Last Modified: 2012-05-05
I'm creating a new logon script. I need the script to check the default gateway of the machine and if it correct against what i have set then to continue but if it is wrong to end the script.

0
Comment
Question by:JHG-IT
  • 2
4 Comments
 
LVL 13

Expert Comment

by:Brum07
ID: 22774956
Try this;

From here;

http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23706347.html

This will check if the gateway is 192.168.10.254, if so show a message box if not it will end the script.

Regards
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
 
For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.DefaultIPGateway) Then 
        For i=LBound(IPConfig.DefaultIPGateway) to UBound(IPConfig.DefaultIPGateway)
            Select Case IPConfig.DefaultIPGateway(i)
                  Case "192.168.10.254"
                        MsgBox "Your Gateway is 192.168.10.254"
                  Case Else
                        Wscript.Quit
            End Select        
        Next
    End If 
Next

Open in new window

0
 
LVL 3

Expert Comment

by:Angelized
ID: 22775084
Here we go.
Note :  this will only works for static configuration (DHCP should set thet Gateway anyway)
 

On Error Resume Next
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colNetCards = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
 
For Each objNetCard in colNetCards
    arrGateways = Array("192.168.1.100")    
    If objNetCard.DefaultIPGateway(0) <> "192.168.1.100" Then objNetCard.SetGateways(arrGateways)
Next

Open in new window

0
 

Author Comment

by:JHG-IT
ID: 22783219
Hi
thanks works a treet. However I'm a complete novice with these scripts and I cant get the default gateway section to link in with my current logon script. If you could help me with this it would be greatly appriecated.
Option Explicit
Dim objNetwork, objUser, CurrentUser, objShell
Dim strGroup, strDrive, objUNC
Dim strRemotePath, strDriveLetter, strNewName, strComputer
 
' Check Default Gateway
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
 
For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.DefaultIPGateway) Then 
        For i=LBound(IPConfig.DefaultIPGateway) to UBound(IPConfig.DefaultIPGateway)
            Select Case IPConfig.DefaultIPGateway(i)
                  Case "10.103.15.254"
                  Case Else
                        Wscript.Quit
            End Select        
        Next
    End If 
Next
 
 
' Initialise Groups with Const
Const Public_Group = "cn=basswater (public),ou=svr-vic-melb-desal,ou=vic,ou=staff,dc=jhg,dc=com,dc=au"
 
' Create objects and extract strGroup values
Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
Set objUser = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.MemberOf))
 
' Delete any mapped drives
objShell.Run "net use * /d /y", 1, True
Set objShell = Nothing
 
' If logic testing strGroup for the values in Const groups
If InStr(strGroup, LCase(Public_Group)) Then
objNetwork.MapNetworkDrive "p:", "\\svr-vic-melb-desal\public"
Set objShell = CreateObject("Shell.Application")
End If
 
' Rename Public
strDriveLetter = "p:"
strNewName = "PUBLIC on svr-vic-melb-desal"
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
 
' Network Drive Scanning
If InStr(strGroup, LCase(Public_Group)) Then
objNetwork.MapNetworkDrive "s:", "\\svr-vic-desal-ps1\scanning"
Set objShell = CreateObject("Shell.Application")
End If
 
' Rename Scanning
strDriveLetter = "s:"
strNewName = "SCANNING on svr-vic-desal-ps1"
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
 
' End VBScript .

Open in new window

0
 
LVL 13

Accepted Solution

by:
Brum07 earned 125 total points
ID: 22783686
Should be something like this;

Regards
Option Explicit
Dim objNetwork, objUser, CurrentUser, objShell
Dim strGroup, strDrive, objUNC
Dim strRemotePath, strDriveLetter, strNewName, strComputer
 
' Check Default Gateway
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
 
For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.DefaultIPGateway) Then 
        For i=LBound(IPConfig.DefaultIPGateway) to UBound(IPConfig.DefaultIPGateway)
            Select Case IPConfig.DefaultIPGateway(i)
                  Case "10.103.15.254"
                        ' Initialise Groups with Const
Const Public_Group = "cn=basswater (public),ou=svr-vic-melb-desal,ou=vic,ou=staff,dc=jhg,dc=com,dc=au"
 
' Create objects and extract strGroup values
Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
Set objUser = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.MemberOf))
 
' Delete any mapped drives
objShell.Run "net use * /d /y", 1, True
Set objShell = Nothing
 
' If logic testing strGroup for the values in Const groups
If InStr(strGroup, LCase(Public_Group)) Then
objNetwork.MapNetworkDrive "p:", "\\svr-vic-melb-desal\public"
Set objShell = CreateObject("Shell.Application")
End If
 
' Rename Public
strDriveLetter = "p:"
strNewName = "PUBLIC on svr-vic-melb-desal"
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
 
' Network Drive Scanning
If InStr(strGroup, LCase(Public_Group)) Then
objNetwork.MapNetworkDrive "s:", "\\svr-vic-desal-ps1\scanning"
Set objShell = CreateObject("Shell.Application")
End If
 
' Rename Scanning
strDriveLetter = "s:"
strNewName = "SCANNING on svr-vic-desal-ps1"
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
                  Case Else
                        Wscript.Quit
            End Select        
        Next
    End If 
Next

Open in new window

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Recently I finished a vbscript that I thought I'd share.  It uses a text file with a list of server names to loop through and get various status reports, then writes them all into an Excel file.  Originally it was put together for our Altiris server…
This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

765 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