IEのプロキシ設定をON/OFFするツール

在宅勤務の賜物。

在宅で社給端末を立ち上げる時に、社内とはネットワーク設定が当然違うので、プロキシ設定のチェックを外す必要がある。

指示ではIEを立ち上げて、インターネットオプションを開いて設定を外せ(そして社内で使う時は設定を入れ直せ)とのことで、正直くそめんどくさい

まぁ色んな環境が並立し過ぎてて情シス部門に速やかに全てをフォローした決定版を出せというのも酷なのですが、事情を斟酌したところで面倒くさいものが面倒くさくなるわけでもなく。

どれぐらいめんどくさいかというと[削除済み]

というわけで呼び出しのバッチファイル。

powershell .\iex-proxy-switch.ps1

本体はこう。(ちょっとフォーマッターにかけて微調整)

Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="InternetExploer Proxy Switch"
  Height="130" Width="250" ResizeMode="NoResize">
    <StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="LANにプロキシサーバーを利用する:" />
            <TextBlock Name="statusTextBlock" Text="" />
        </StackPanel>
        <Button Name="switchButton" Content="Switch" IsDefault="True" Margin="0,10,0,0" />
        <Button Name="exitButton" Content="Exit" IsDefault="True" Margin="0,10,0,0" />
    </StackPanel>
</Window>
'@
function GetIexProxySetting {
    $flag = ( Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\' | Select-Object -Property ProxyEnable ).ProxyEnable
    if ( $flag -eq 0 ) {
        return $false
    }
    else {
        return $true
    }
}
function GetSwitchText {
    if ( GetIexProxySetting ) {
        return "ON"
    }
    else {
        return "OFF"
    }    
}
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)

$textbox = $window.FindName("statusTextBlock")
$textbox.Text = GetSwitchText
$btn1 = $window.FindName("switchButton")
$btn2 = $window.FindName("exitButton")

$btn1_clicked = $btn1.add_Click
$btn1_clicked.Invoke( {
        if ( GetIexProxySetting ) {
            Set-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\' -Name ProxyEnable -Value 0
        }
        else {
            Set-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\' -Name ProxyEnable -Value 1
        }
        $textbox.Text = GetSwitchText
    })

$btn2_clicked = $btn2.add_Click
$btn2_clicked.Invoke( {
        $window.Close()
    })

$window.ShowDialog() > $null

もっと綺麗に書けるとは思うがとりあえずのメモ書きとして。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

© 2020 満月堂

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
Copyright (C) 2002 - 2020 SQUARE ENIX CO., LTD. All Rights Reserved.

プライバシーポリシー/免責事項