見出し画像

PowerShell プロキシ設定の切替(コマンド化)

勤務先の会社ではオンプレのプロキシサーバを使っています。社内にいるときは気にならないのですが、社外で仕事をするとき設定画面を開いていちいちプロキシ設定をオフにしないといけません、会社に戻ったら再びオン。簡単な操作ですが、ときどき忘れるときがあり、面倒です。これをコマンド化して簡単にしたいと思います。

出来上がったコードがこちら

#プロキシサーバ名の名前解決によって切り替える
Function Switch-Proxy-WiredLAN {

	$flg =$False
	$proxy_searver_name = "プロキシサーバ名".ToUpper()
	$proxy_searver_ip = "プロキシサーバIPアドレス"
	#IPアドレスで名前解決してプロキシサーバ名が出てくるかどうか判定
	$nameresolution = nslookup $proxy_searver_name
	foreach($i in $nameresolution){
		if($i.ToUpper().Contains($proxy_searver_name)){
			$flg = $True
		}
	}

	#プロキシサーバの名前解決に応じてプロキシ設定を切り替える
	if ($flg -eq $True) {
        # プロキシを有効にする
        Set-ItemProperty -Path ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings’ -name ProxyEnable -Value 1
	} else {
        # プロキシを無効にする
        Set-ItemProperty -Path ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings’ -name ProxyEnable -Value 0
	}

	return $flg
}


関数Switch-Proxy-WiredLANを実行するショートカットを作って必要なときにクリックすればOK
会社の回線につながっていればプロキシ設定オンになります。


WiFiメインのオフィス向けに関数Switch-Proxy-WiFiもつくりました。


#WiFiのSSIDによって切り替える
Function Switch-Proxy-WiFi {

	$flg = $False

	#SSID取得
	$ssid = (netsh wlan show interface | Where-object {$_ -match "[^B]SSID*"}).replace(' ','').replace('SSID:','')

	# SSIDに応じてプロキシ設定を切り替える
	if ($ssid -eq "会社のSSID") {
		$flg = $True
	}
    
	if ($flg -eq $True) {
        # プロキシを有効にする
        Set-ItemProperty -Path ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings’ -name ProxyEnable -Value 1
	} else {
        # プロキシを無効にする
        Set-ItemProperty -Path ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings’ -name ProxyEnable -Value 0
	}
	return $flg
}




#PowerShell #Windows #プロキシサーバ #業務効率化 #プログラミング #プログラミング学習 #毎日NOTE #毎日更新

この記事が気に入ったらサポートをしてみませんか?