use strict; use Win32::OLE("in"); $Win32::OLE::Warn = 3; my $Adapter = 'Local Area Connection'; AdapterReset(); sub AdapterReset { my $OShellConnection = Win32::OLE->new("Shell.Application") or die "Failure to get Shell.Application." .Win32::OLE->LastError(). "\n"; my $Folder; my ($NetConn, $NetConns); my $NetAdapter; my $verb; my $OShellConnectionControlPanel = $OShellConnection->NameSpace(3); foreach $Folder (in $OShellConnectionControlPanel->{Items}) { if($Folder->Name eq "Network Connections") { $NetConns = $Folder->GetFolder; } } if($NetConns == '') { TimedMsg("Network Connections not found"); die "Network Connections not found"; } foreach $NetConn (in $NetConns->{Items}) { if($NetConn->{Name} eq $Adapter) { $NetAdapter = $NetConn; } } if($NetAdapter eq "") { die "$Adapter could not be found."; } foreach $verb (in $NetAdapter->{Verbs}) { if($verb->{Name} eq "En&able") { eval { $verb->DoIt or die print "Failed to Enable ".$verb->LastError(). "\n";} } elsif ($verb->{Name} eq "Disa&ble") { eval { $verb->DoIt or die print "Failed to Disable ".$verb->LastError(). "\n";} } } if ($@) { print "An error occurred ($@), continuing\n"; } }