場所に合わせて、NICの有効化・無効化

シェアする

自宅にいるときや、外にいるときの状況に合わせて、有線LAN・無線LANのインターフェースを、有効化したり、無効化したりということを、Pingを使って簡単にできそうか検証してみました。 Powershell の ウィンドウを立ち上げて、事前にNICの名前を確認しておきます

PS C:> Get-WmiObject -Class Win32_NetworkAdapter

ServiceName      : ucgnm
MACAddress       : DC:FB:02:11:11:11
AdapterType      : イーサネット 802.3
DeviceID         : 12
Name             : BUFFALO WLI-UC-GNM Wireless LAN Adapter
NetworkAddresses :
Speed            : 54000000

「BUFFALO WLI-UC-GNM Wireless LAN Adapter」が、NICの名前です 次に、その情報を元にスクリプト化してみます。

##
## required Powershell v2.0 up
## 2014/12/20
##

Write-Host 'Check Starting ...'

$Reachable = @()

# 以下のIPに対してのPingすべて失敗した場合は、無線LANを無効化します。
$Reachable += Test-Connection -Quiet -ComputerName '192.168.3.1'
$Reachable += Test-Connection -Quiet -ComputerName '192.168.3.2'
$Reachable += Test-Connection -Quiet -ComputerName '192.168.3.10'


$All_UnReachable = $TRUE

foreach($r in $Reachable){
  if ($r -eq $TRUE) {$All_UnReachable = $FALSE}
}

if($All_UnReachable) {
  Write-Host 'All Target UnReachable'
  #Disable Wireless NIC
  (Get-WmiObject -Class Win32_NetworkAdapter -Filter 'Name = `BUFFALO WLI-UC-GNM Wireless LAN Adapter`').disable()
}

Write-Host 'Check Finished'

以上、簡単ですが、うまくいきました。
有効化するときは、「.disable()」ではなくて「.ensable()」になりますね。