category icon
2021-12-16
VB Script

VBScriptでメトリックやMTUを調整する方法

WSH
5.812
VBScript
5.8.16384
profile
hikaru
Software Developer / DIY'er

管理者権限が必要なので、VBScript を再度管理者権限で呼び出しています。
その後メトリックと MTU は、Windows の netsh interface ipv4 set interface コマンドで変更しています。なお、ここでは VPN - VPN Client という名称のネットワークを対象にしています。

以下のコードを Shift-JIS か UTF-16 BOM エンコーディングで保存して実行します。(UTF8 は VBScript が対応していないので NG です)

vbs
Option Explicit
On Error Resume Next

' 引数がない場合、Script自身を再度、管理者権限で実行する
If Wscript.Arguments.Count = 0 Then
    ' 管理者として実行
    AppExecute "wscript.exe", """" & WScript.ScriptFullName & """" & " runas", "runas", True
    WScript.Quit
End If

' メトリック値の設定
AppExecute "cmd", "/c netsh interface ipv4 set interface ""VPN - VPN Client"" met=1000", "runas", True

' MTU調整
AppExecute "cmd", "/c netsh interface ipv4 set interface ""VPN - VPN Client"" mtu=1450", "runas", True


'==============================================================
' "Shell.Application"のShellExecuteメソッド
'    appOpe
'      edit       :エディタを起動し、編集用にドキュメントを開きます。
'      find       :指定されたディレクトリから検索を開始します。
'      open       :アプリケーションを起動します。このファイルが実行可能ファイルでない場合、関連するアプリケーションが起動されます。
'      print      :ドキュメントファイルを印刷します。
'      properties :オブジェクトのプロパティを表示します。
'      runas      :管理者としてアプリケーションを起動します。
'==============================================================
Sub AppExecute(appPath, appArgs, appOpe, appShow)
    Dim shell
    Set shell = Wscript.CreateObject("Shell.Application")
    
    ' 対象のEXEを起動します。
    shell.ShellExecute """" & appPath & """", appArgs, "", appOpe, appShow
    
    Set shell = Nothing
End Sub

以上です~