Jak napsat skript Windows pro změnu nastavení sítě za chodu

  • Michael Cain
  • 0
  • 830
  • 119
reklama

Tento týden jsem narazil na zajímavý problém. V mnoha kancelářích nebo pracovních prostředích bude možná nutné předefinovat nastavení sítě pro připojení k různým sítím. Někteří lidé si například vezmou notebook s sebou domů a mají pro tento stroj nastavenou statickou IP adresu. Protože však pracovní sítí je obvykle DHCP, vyžaduje to, aby osoba neustále měnila nastavení sítě mezi statickou IP nebo automatickou DHCP podle toho, kde jsou.

Častějším problémem jsou inženýři nebo pracovníci IT, kteří se často potřebují připojit k zařízením nebo strojům v malé síti v budově. Chcete-li se připojit k této izolované síti, musíte změnit nastavení sítě na statickou IP. Později, když se znovu připojíte k podnikové síti, je to opět zpět k DHCP.

V této situaci jsem se ocitl dost často a byl jsem tak unavený procházením síťovou kartou, otevíráním nastavení IP a prováděním těchto úprav, že jsem se rozhodl, že je nejvyšší čas dát dohromady skript VB, který by to všechno dokázal v jednom nebo dvě kliknutí. Pokud jste postupovali společně s mými programovacími články, pak víte, že miluji skripty VB. Jednou jsem to použil k vytvoření posedlého počítače Vytvoření Freaky posedlého počítače s Windows Script pro Halloween Vytvoření Freaky posednutí počítače s Windows Script pro Halloween Existuje spousta zábavných žertů, které můžete hrát na své přátele s počítačem. Pravděpodobně jste už viděli všechna ta strašidelná videa na YouTube, která si lidé navzájem předávají, aby se dobře vyděsili ..., a také jste zvyklí automatizovat Microsoft SyncToy Jak vytvořit nástroj pro zálohování dat pomocí skriptu SyncToy a VB Jak vytvořit nástroj pro zálohování dat Se skriptem SyncToy & VB jsme na MUO pokryli spoustu zálohovacích řešení a všechna tato řešení jsou skvělá, ale pokud pracujete v prostředí, které je obezřetné ohledně bezplatných softwarových balíčků třetích stran nebo společností ... pro data zálohy.

Je také možné provést tento úkol pomocí skriptu VB a je dokonce možné jej dostatečně pružně přizpůsobit, aby mohl akceptovat vstup uživatele pro statickou IP adresu. V tomto článku vám ukážu, jak to udělat ve třech sekcích.

Vytvoření skriptu pro změnu nastavení sítě

Chcete-li vytvořit tuto malou aplikaci pro přepínání síťových nastavení, musíte skriptem splnit tři hlavní úkoly. Prvním je použití skriptu k vytvoření statického nastavení IP. Další je přijít se skriptem, který povolí DHCP. A konečně, posledním je požádat uživatele, jaký úkol chtějí udělat, a pak tuto zpětnou vazbu použít k jeho splnění.

VB Script pro nastavení statických IP nastavení

Pamatujte, že následující skripty musí být uloženy jako textový soubor s příponou .wsf, aby mohly fungovat na počítači se systémem Windows. Následující skript změní vaše síťové nastavení na statickou IP se specifickou maskou podsítě a výchozí bránou, se všemi třemi pevně zakódovanými do skriptu.

U všech ukázek kódu uvedených v tomto článku nezapomeňte přidat “” na začátku a “ na konci, jinak se kód nespustí.
Zde je skript pro statickou změnu IP:

Možnost Explicitní při chybě Obnovení Další Dim objWMIService Dim objNetAdapter Dim strComputer Dim arrIPAddress Dim arrSubnetMask Dim arrGateway Dim colNetAdapters Dim errEnableStatic Dim errGateways strComputer = "." arrIPAddress = Array ("192.168.1.106") arrSubnetMask = Array ("255.255.255.0") arrGateway = Array ("192.168.1.1") Nastavte objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2" ) Nastavit colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration kde IPEnabled = TRUE") Pro každý objNetAdapter v colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) Pokud není chybně přiřazen, pak je WEnableStatic = " " End If errGateways = objNetAdapter.SetGateways (arrGateway) If Not errGateways = 0 Then WScript.Echo "Selhání přiřazení brány." End If Next WScript.Quit

Tento skript používá službu Windows WMI v systému Windows k dosažení cíle změny nastavení. Můžete vidět tři proměnné pevného pole načtené pomocí IP adres a poté, kde skript kontroluje aktivní “povoleno” síťová karta. Pak používá “EnableStatic” a “SetGateways” metody k provedení těchto požadovaných změn. Když spustím skript v domácí síti (kde vyžaduji DHCP), uvidíte, kde skript úspěšně změnil nastavení adaptéru a ztratil jsem připojení k Internetu.

Po prokázání, že část skriptu static-IP funguje, je čas napsat skript, který nastaví adaptér na DHCP, aby automaticky detekoval síťovou IP. Zde je skript, který k tomu můžete použít.

Možnost Explicitní při chybě Obnovení Další Dim objWMIService Dim objNetAdapter Dim strComputer Dim errEnable strComputer = "." Nastavit objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration kde IPEnabled = TRUE") pro každý objNetAdapter v colNetAdapters erNetEnnnapdnable () ) Další WScript.Quit

Jak vidíte, tento skript je mnohem jednodušší. Používá také WMI, ale jedinou požadovanou funkcí je “EnableDHCP”. To se provádí na aktuálně povoleném síťovém adaptéru. Po uložení a spuštění tohoto skriptu se nastavení karty adaptéru změnilo zpět na DHCP a moje připojení k Internetu znovu fungovalo.

Teď, když máte kód k provedení obou důležitých akcí, další částí tohoto triku bude převzít vstup od uživatele a přesně určit, jakou statickou IP chtějí. Chcete-li znovu povolit DHCP, můžete od uživatele požadovat zadání slova “AUTO” pro automatickou detekci IP.
Vypadá to, jak vypadá tento nový, plný skript obsahující dva výše uvedené skripty.

Možnost Explicitní při chybě Pokračování Další Dim objWMIService Dim objNetAdapter Dim strComputer Dim arrIPAddress Dim arrSubnetMask Dim arrGateway Dim colNetAdapters Dim errEnableStatic Dim errGateways Dim strInput Dim errFailed errFailed = 0 strInput = InputBox ("Type Static IP AddressIn AUTO") "" "" "" Pak strComputer = "." Nastavit objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration kde IPEnabled = TRUE") pro každý objNetAdapter v colNetAdapters erNetEnnnapdnable () ) Pokud není errEnable = 0, pak WScript.Echo "Nastavení DHCP selhalo." errFailed = 1 End If Next Else strComputer = "." arrIPAddress = Array (strInput) arrSubnetMask = Array ("255.255.255.0") arrGateway = Array ("192.168.1.1") Set objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Nastavte colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = TRUE") Pro každý objNetAdapter v colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) If Not errEnableStatic = 0 Then WScript.Echo Failed "." errFailed = 1 End If errGateways = objNetAdapter.SetGateways (arrGateway) If Not errGateways = 0 Then WScript.Echo "Failure přiřazení brány." errFailed = 1 End If Next End If If errFailed = 0 Then WScript.Echo "Nastavení IP úspěšně upraveno." End If WScript.Quit

Tento skript používá funkci InputBox k získání statické IP nebo IP adresy “AUTO” příkaz od uživatele.

Pokud něco jiného než “AUTO” je zadán do pole, které bude použito jako statický řetězec IP v části kódu, která používá nastavení WMI pro nastavení statického IP pro síťový adaptér. K dispozici je také kontrola “0” potvrzení, že vše šlo dobře.

Po spuštění skriptu jsem zkontroloval nastavení síťové karty a potvrdil jsem, že skript ve skutečnosti provedl změny nastavení statické IP.

Nyní vyzkoušejte skript AUTO. Psaní AUTO splňuje první podmínku v “LI” kontrola výpisu pro AUTO. Spustí se alternativní skript, který povoluje DHCP.

Po spuštění jsem šel do svého nastavení adaptéru a byl si jistý, že byl nastaven zpět na Získat IP adresu automaticky.

I když to může být dost jednoduchý úkol jít do nastavení vaší síťové karty a změnit statické nebo DHCP, pokud to musíte udělat opravdu často, může se stát skutečnou bolestí. Dalo by se to udělat z příkazového řádku pomocí “netsh”, ale znovu si musíte zapamatovat syntaxi příkazu.

Pomocí výše uvedeného skriptu můžete vytvořit rychlý a snadný nástroj, který můžete kdykoli použít k přepínání síťových nastavení za chodu.

Myslíte si, že byste mohli vyzkoušet tento skript Windows? Máte nějaké další nápady, jak to vylepšit a vylepšit? Sdílejte své myšlenky a návrhy v sekci komentářů níže.

Image Credit: Binární kódy přes Shutterstock




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.