Advanced Event 8 :
<#
.DESCRIPTION
This script can enable and (or) disable wireless or ethernet adapter to prevent bridging on laptop computers.
.LINK
http://blogs.technet.com/b/heyscriptingguy/archive/2012/04/11/the-2012-scripting-games-advanced-event-8-enable-network-adapters.aspx
#>
function get-netadapter
{
param ([string]$nettype= "%", $isEnabled=$null)
if ($isenabled -eq $null)
{
$filter ="name like '$nettype'"
}
else
{
$filter ="name like '$nettype' and netenabled=$isenabled"
}
return Get-WmiObject win32_networkadapter -Filter $filter
}
function enableadapter
{
param ($enable=$true, $neta, $prev=$false)
#enable adapters
if ($enable)
{
if ($neta.count -gt 1)
{
foreach ($adapter in $neta)
{
do
{
$choice = Read-Host $adapter.description " Enable Yes/No ?"
}
until ($choice -eq "yes" -or $choice -eq "no")
If ($Choice -eq "yes")
{
if (!($prev))
{
$adapter.enable()
}
else
{
# for pre-vista os, even though netsh is working on post vista oss,
#it is fun using new method for these oss .enable() or .disable()
netsh interface set interface "$($adapter.netconnectionID)" ENABLED
}
return
}
}
}
else
{
if (!($prev))
{
$neta.enable()
}
else
{
netsh interface set interface "$($neta.netconnectionID)" ENABLED
}
}
}
#disable adpaters
else
{
foreach ($adapter in $neta)
{
if (!($prev))
{
$adapter.disable()
}
else
{
netsh interface set interface "$($adapter.netconnectionID)" DISABLED
}
}
}
}
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object System.Security.Principal.WindowsPrincipal( $identity )
if (!($principal.IsInRole( [System.Security.Principal.WindowsBuiltInRole]::Administrator )))
{
write-host "Warning: You're not running this script using elevated shell. You will not be able to run this script without administrative permission."
exit
}
$os = Get-WmiObject Win32_OperatingSystem
if ($os.version -match "5.")
{
$prevista=$true
}
else
{
$prevista=$false
}
$comp = Get-WmiObject win32_ComputerSystem
#It is a laptop
if ($comp.PCSystemType -eq 2)
{
#check for enabled wireless and ethernet adapters
$wless=@()
$wless = @(get-netadapter "%wireless%" $true)
$ether=@()
$ether = @(get-netadapter "%ethernet%" $True)
#wireless adapters not enabled and ethernet adpaters enabled
if ($wless.Count -eq 0 -and $ether.Count -gt 0)
{
#disable ethernet adapters
enableadapter $false $ether $prevista
#enable wireless adapter
enableadapter $True (get-netadapter "%wireless%" $false) $prevista
}
#wireless adapter(s) enabled and ethernet adpaters disabled
elseif ($wless.Count -gt 0 -and $ether.Count -eq 0)
{
#disable wireless adapters
enableadapter $false $wless $prevista
#enable ethernet adapter
enableadapter $True (get-netadapter "%ethernet%" $false) $prevista
}
# no ethernet or wireless enabled
elseif ($wless.Count -eq 0 -and $ether.Count -eq 0)
{
do
{
$choice = Read-Host "Ethernet and Wireless adapters are disabled.Enable Wireless adapter Yes/No ?"
}
until ($choice -eq "yes" -or $choice -eq "no")
If ($choice -eq "yes")
{
Write-Host "Enabling wireless adapters ..."
enableadapter $True (get-netadapter "%wireless%" $false) $prevista
}
else
{
Write-Host "Enabling ethernet adapters ..."
enableadapter $True (get-netadapter "%ethernet%" $false) $prevista
}
}
# ethernet and wireless enabled
elseif ($wless.Count -gt 0 -and $ether.Count -gt 0)
{
do
{
$choice = Read-Host "Ethernet and Wireless adapters are enabled.Disable Wireless adapter Yes/No ?"
}
until ($choice -eq "yes" -or $choice -eq "no")
If ($choice -eq "yes")
{
Write-Host "Disabling wireless adapters ..."
enableadapter $false (get-netadapter "%wireless%" $true) $prevista
}
else
{
Write-Host "Disabling ethernet adapters ..."
enableadapter $false (get-netadapter "%ethernet%" $true) $prevista
}
}
}
else
{
Write-Host "This script is only for laptops !"
}