' chipcfg.vbs V2.0 ' This script make IP configration change command file. ' (C) Windows.FAQ 1999-2002 ' http://winfaq.jp/ WScript.Echo "デスクトップに IP 設定切り替えコマンドファイルを作成します。"+Chr(10)+"作成されたバッチファイルをダブルクリックすると、設定が反映されます。" Set FS = CreateObject("Scripting.FileSystemObject") Set Adp = CreateObject("Scripting.Dictionary") Set WShell = CreateObject("WScript.Shell") Set WshEnv = WShell.Environment("Process") Desktop = WShell.SpecialFolders("Desktop") Temp = WshEnv("TEMP") rc = WShell.Run("cmd /C ipconfig.exe /all > "+Temp+"\ipconfig.txt", 0, TRUE) Set ipcfg = FS.OpenTextFile(Temp+"\ipconfig.txt") Do Until ipcfg.AtEndOfStream tmp = ipcfg.ReadLine i = Instr(tmp," adapter ") if i > 0 then j = Instr(tmp,":") ConName = Mid(tmp,i+9,j-i-9) do tmp = ipcfg.ReadLine i = Instr(tmp,"Description") if i > 0 then j = Instr(tmp,":") adpdesc = Mid(tmp,j+1) Adp.add conname,adpdesc exit do end if Loop end if Loop ipcfg.close key = Adp.Keys if Adp.Count = 1 then ConName = key(0) else list="" For i = 0 To Adp.Count -1 list = list +Cstr(i)+". "+ Adp.Item(key(i)) + Chr(10) Next do adapno = InputBox("どのアダプターに対して設定しますか?"+Chr(10)+"番号を入力してください。"+Chr(10)+Chr(10)+list+Chr(10)+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","アダプターの選択") if adapno = "" then wscript.quit wscript.echo adapno if Cint(adapno) >= 0 and CInt(adapno) =< Adp.Count -1 then wscript.echo adapno ConName = Key(CInt(adapno)) exit do end if loop end if ConName = Chr(34)+ConName+Chr(34) puprc = Wshell.Popup("DHCP で自動構成しますか?",0,"DHCP/手動構成",vbYesNo+vbQuestion) if puprc = vbYes then i = 0 do until not FS.FileExists(Desktop+"\dhcp"+Cstr(i)+".cmd") i = i + 1 Loop Set cmdfile = FS.CreateTextFile(Desktop+"\dhcp"+Cstr(i)+".cmd",true) cmdtxt = "netsh interface ip set address "+ConName+" dhcp" puprc = Wshell.Popup("DNS も自動構成しますか?",0,"",vbYesNo+vbQuestion) if puprc = vbYes then cmdtxt = cmdtxt + vbcrlf+ "netsh interface ip set dns "+ConName+" dhcp" else do dnsaddr = InputBox("DNS サーバーアドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.1"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","プライマリ DNS サーバーの設定") if dnsaddr = "" then wscript.quit loop until IsIPAddr(dnsaddr) = True cmdtxt = cmdtxt + vbcrlf+ "netsh interface ip set dns "+ConName+" static "+dnsaddr puprc = Wshell.Popup("セカンダリ DNS も設定しますか?",0,"",vbYesNo+vbQuestion) if puprc = vbYes then do dnsaddr = InputBox("DNS サーバーアドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.1"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","セカンダリ DNS サーバーの設定") if dnsaddr = "" then wscript.quit loop until IsIPAddr(dnsaddr) = True cmdtxt = cmdtxt + vbcrlf+ "netsh interface ip add dns "+ConName+" "+dnsaddr end if end if else do ipaddr = InputBox("IP アドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.50"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","IP アドレスの設定") if ipaddr = "" then wscript.quit if IsIPAddr(ipaddr) = True then exit do wscript.echo "IP アドレスの形式が間違っています。再入力してください。" loop do subnet = InputBox("サブネットマスクを半角数字とピリオドで入力してください。"+Chr(10)+"例:255.255.255.0"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","サブネットの設定") if subnet = "" then wscript.quit if IsIPAddr(subnet) = True then exit do wscript.echo "サブネットマスクの形式が間違っています。再入力してください。" loop do gwaddr = InputBox("デフォルトデートウェイのアドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.1"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","ゲートウェイの設定") if gwaddr = "" then wscript.quit if IsIPAddr(gwaddr) = True then exit do wscript.echo "ゲートウェイアドレスの形式が間違っています。再入力してください。" loop do dnsaddr = InputBox("DNS サーバーアドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.1"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","プライマリ DNS サーバーの設定") if dnsaddr = "" then wscript.quit if IsIPAddr(dnsaddr) = True then exit do wscript.echo "DNS サーバーアドレスの形式が間違っています。再入力してください。" loop cmdtxt = "netsh interface ip set address "+ConName+" static "+ipaddr+" "+subnet+" "+gwaddr+" 1" cmdtxt = cmdtxt + vbcrlf+ "netsh interface ip set dns "+ConName+" static "+dnsaddr puprc = Wshell.Popup("セカンダリ DNS も設定しますか?",0,"",vbYesNo+vbQuestion) if puprc = vbYes then do dnsaddr = InputBox("DNS サーバーアドレスを半角数字とピリオドで入力してください。"+Chr(10)+"例:192.168.0.1"+Chr(10)+"空白のまま「OK」した場合、処理を中止します。","セカンダリ DNS サーバーの設定") if dnsaddr = "" then wscript.quit loop until IsIPAddr(dnsaddr) = True cmdtxt = cmdtxt + vbcrlf+ "netsh interface ip add dns "+ConName+" "+dnsaddr end if Set cmdfile = FS.CreateTextFile(Desktop+"\static"+ipaddr+".cmd",true) end if cmdfile.Write(cmdtxt) cmdfile.close wscript.echo "デスクトップにバッチファイルが作成されました。" Public Function IsIPAddr (byVal stringA) i = Instr(stringA,".") if i <> 0 then j = Instr(i+1,stringA,".") if j <> 0 then k = Instr(j+1,stringA,".") if k <> 0 then if IsNumeric(left(stringA,i-1)) = True and IsNumeric(mid(stringA,i+1,j-i-1)) = True and IsNumeric(mid(stringA,j+1,k-j-1)) = True and IsNumeric(mid(stringA,k+1)) = True then IsIPAddr = True Exit Function end if end if end if end if IsIPAddr = False End Function