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

VBScript runtime error: Object required

On line 75 Char 2,  I receive an error on the code below Microsoft VBScript runtime error: Object required. It's referring either to "objDisable.DoIt" or "objEnable.DoIt" . Can some one help me ? I know I must be missing something easy but I just can't find it.

Thanks

The code is attempting to toggle my wireless NIC on or off without having to use Device Manager.

Code Below

<package>
<comment>
NICToggle.wsf This script looks at your ‘Local Area Connection’
and enables it if disabled, disables it if enabled.
</comment>
<job>
<runtime>
<description>
Script for toggling network connection on/off
</description>

<example> C:\>cscript ToggleNIC.wsf
</example>
</runtime>
<object id = "objShell" progid = "Shell.Application"/>
set objShell=CreateObject("shell.application")
<script language = "VBScript">
'Toggle NIC on or off
Option Explicit
Dim objCP, objEnable, objDisable, colNetwork
Dim clsConn, clsLANConn, clsVerb
Dim strNetConn, strConn, strEnable, strDisable
Dim bEnabled, bDisabled

Const NETWORK_CONNECTIONS = &H31&
strConn = "Local Area Connection"
'strEnable = "En&able" strEnable = "&Aktivieren"
'strDisable = "Disa&ble" strDisable = "&Deaktivieren"
Set colNetwork = Nothing
Set colNetwork = objShell.Namespace(NETWORK_CONNECTIONS)

' Network Connections (independent of country/language)
If colNetwork is Nothing Then
WScript.Echo "Network folder not found"
WScript.Quit
End If

Set clsLANConn = Nothing
For Each clsConn in colNetwork.Items
' In case the LAN is named “connection 2”, etc.

If Instr(LCase(clsConn.name),LCase(strConn)) Then
Set clsLANConn = clsConn
Exit For
End If
Next

'WScript.Echo clsLANConn

If clsLANConn is Nothing Then
WScript.Echo "Network Connection not found"
WScript.Quit
End If

bEnabled = True
Set objEnable = Nothing
Set objDisable = Nothing
For Each clsVerb in clsLANConn.verbs  

'WScript.Echo clsVerb.name

If clsVerb.name = strEnable Then
Set objEnable = clsVerb
bEnabled = False
End If


If clsVerb.name = strDisable Then
Set objDisable = clsVerb
bEnabled = True
End If
Next

If bEnabled Then
objDisable.DoIt
WScript.Echo clsLANConn & " Disabled"
Else
objEnable.DoIt
WScript.Echo clsLANConn & " Activated"
End If

'Give the connection time to stop/start
WScript.Sleep 1000
</script>
</job>
</package>
0
wtm
Asked:
wtm
1 Solution
 
Carl TawnSystems and Integration DeveloperCommented:
Well, strEnable and strDisable are both commented out in your code. So, during your loop odds are that objEnable and objDisable never get set to anything.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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