Sådan skriver du et Windows-script for at ændre netværksindstillinger på farten

  • Lesley Fowler
  • 0
  • 2873
  • 808
Reklame

Denne uge snublede jeg over et interessant problem. I mange kontorer eller arbejdsmiljøer skal du muligvis omdefinere dine netværksindstillinger for at oprette forbindelse til forskellige netværk. For eksempel tager nogle mennesker deres bærbare computer med sig hjem og har en statisk IP, der er konfigureret specifikt til den maskine. Da arbejdsnetværket normalt er DHCP, kræver det imidlertid, at personen fortsætter med at ændre netværksindstillingerne mellem en statisk IP eller automatisk DHCP, afhængigt af hvor de er.

Et mere almindeligt problem er for ingeniører eller it-medarbejdere, der ofte har brug for at oprette forbindelse til enheder eller maskiner på et lille netværk i en bygning. For at oprette forbindelse til det isolerede netværk skal du ændre dine netværksindstillinger til en statisk IP. Senere, når du igen opretter forbindelse til virksomhedsnetværket, er det tilbage til DHCP igen.

Jeg befandt mig nok i denne situation ofte nok, og blev så træt af at gennemsøge netværkskortet, åbne IP-indstillingerne og foretage disse ændringer, at jeg besluttede det var på høje tid at sammensætte et VB-script, der ville gøre det hele i en eller to klik. Hvis du har fulgt med mine programmeringsartikler, ved du, at jeg elsker VB-scripts. Jeg brugte den engang til at oprette en besat computer Opret en Freaky besat computer med Windows-script til Halloween Opret en frisk besat computer med Windows-script til Halloween Der er en masse sjove prank, som du kan spille på dine venner med en computer. Du har sandsynligvis set alle disse uhyggelige YouTube-videoer, som folk videresender til hinanden for at få en god skræmme… og også bruges til at automatisere Microsoft SyncToy Sådan opretter du et data-sikkerhedskopieringsværktøj med SyncToy & VB-script Sådan opretter du et data-backup-værktøj Med SyncToy & VB Script har vi dækket en masse backup-løsninger her på MUO, og alle disse løsninger er fremragende, men hvis du arbejder i et miljø, der er opmærksom på gratis tredjeparts softwarepakker, eller virksomheder ... til data sikkerhedskopier.

Det er også muligt at udføre denne opgave med VB-script, og det er endda muligt at gøre den fleksibel nok, så den kan acceptere brugerinput til den statiske IP-adresse. I denne artikel viser jeg dig, hvordan du gør det i tre sektioner.

Oprettelse af et netværksindstillinger Skift script

Der er tre hovedopgaver, du skal udføre med scriptet for at oprette denne lille app til at skifte netværksindstillinger. Den første er at bruge scriptet til at oprette statiske IP-indstillinger. Det næste er at komme med et script for at aktivere DHCP. Til sidst er det sidste at spørge brugeren, hvilken opgave de vil udføre, og derefter bruge denne feedback til at udføre den.

VB-script til at indstille statiske IP-indstillinger

Husk, at følgende scripts skal gemmes som en tekstfil med en .wsf-udvidelse for at arbejde på en Windows-pc. Det følgende script ændrer dine netværksindstillinger til en statisk IP med en bestemt undernetmaske og standard gatewall, med alle tre hårde kodede i scriptet.

For alle kodeprøver, der er anført i denne artikel, skal du sørge for at tilføje “” i begyndelsen og “ i slutningen, ellers kører ikke koden.
Her er det statiske IP-ændringsskript:

Alternativ eksplicit ved fejl Genoptag næste 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") Indstil objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2" ) Indstil colNetAdapters = objWMIService.ExecQuery ("Vælg * fra Win32_NetworkAdapterConfiguration hvor IPEnabled = SANDT") For hver objNetAdapter i colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) Hvis ikke = erch. " Slut Hvis errGateways = objNetAdapter.SetGateways (arrGateway) Hvis ikke errGateways = 0 Derefter WScript.Echo "Fejl ved tildeling af gateway." Afslut hvis næste WScript.Quit

Dette script bruger Windows WMI-tjenesten i Windows til at nå målet om at ændre indstillinger. Du kan se de tre faste array-variabler, der er indlæst med IP-adresserne, og derefter hvor scriptet tjekker for det aktive “aktiveret” netværkskort. Derefter bruger den “EnableStatic” og “SetGateways” metoder til at foretage de krævede ændringer. Når jeg kører scriptet på mit hjemmenetværk (hvor jeg kræver DHCP), kan du se, hvor scriptet har ændret mine adapterindstillinger, og jeg har mistet min internetforbindelse.

Efter at have bevist, at den statiske IP-del af scriptet fungerer, er det på tide at skrive det script, der indstiller adapteren til DHCP, så det automatisk registrerer netværks-IP. Her er det script, som du kan bruge til at gøre det.

Alternativ eksplicit ved fejl Genoptag næste Dim objWMIService Dim objNetAdapter Dim strComputer Dim errEnable strComputer = "." Indstil objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Angiv colNetAdapters = objWMIService.ExecQuery ("Vælg * fra Win32_NetworkAdapterConfiguration hvor IPEnabled = TRUE") For hver objNetAdapter er i AdapterNet Adapter i colNetAdapter ) Næste WScript.Quit

Som du kan se, er dette script meget enklere. Det bruger også WMI, men den eneste krævede funktion er “EnableDHCP”. Dette udføres på den aktuelt aktiverede netværkskort. Efter at have gemt og kørt dette script, ændrede mine adapterkortindstillinger tilbage til DHCP, og min internetforbindelse fungerede igen.

Så nu, hvor du har fået koden til at udføre begge de vigtige handlinger, vil den næste del af dette trick være at komme med input fra brugeren for at bestemme nøjagtigt, hvilken statisk IP de ønsker. For at aktivere DHCP igen kan du kræve, at brugeren indtaster ordet “AUTO” til automatisk at registrere IP'en.
Her er hvordan det nye, fulde script, der inkluderer de to scripts ovenfor, ser ud.

Valgmulighed Eksplicit ved fejl Genoptag næste 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 Statisk IP-adresse eller AUTO" Derefter strComputer = "." Indstil objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Angiv colNetAdapters = objWMIService.ExecQuery ("Vælg * fra Win32_NetworkAdapterConfiguration hvor IPEnabled = TRUE") For hver objNetAdapter er i AdapterNet Adapter i colNetAdapter ) Hvis ikke errEnable = 0 Derefter WScript.Echo "Indstilling af DHCP mislykkedes." errFailed = 1 Ende Hvis næste andet strComputer = "." arrIPAddress = Array (strInput) arrSubnetMask = Array ("255.255.255.0") arrGateway = Array ("192.168.1.1") Sæt objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Sæt colNetAdapters = objWMIService.ExecQuery ("Vælg * fra Win32_NetworkAdapterConfiguration hvor IPEnabled = TRUE") For hver objNetAdapter i colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) Hvis ikke errEnableStatic = ass IP. errFailed = 1 Ende Hvis errGateways = objNetAdapter.SetGateways (arrGateway) Hvis ikke errGateways = 0 Derefter WScript.Echo "Fejl ved tildeling af gateway." errFailed = 1 Ende Hvis næste ende Hvis Hvis errFailed = 0 Derefter er WScript.Echo "IP-indstillinger modificeret." Afslut Hvis WScript.Quit

Dette script bruger InputBox-funktionen til at få enten den statiske IP eller “AUTO” kommando fra brugeren.

Hvis noget andet end “AUTO” er indtastet i feltet, der bruges som den statiske IP-streng i det kodeksnit, der bruger WMI til at indstille de statiske IP-indstillinger for netværkskortet. Der er også en kontrol for “0” bekræftelse af, at alt gik i orden.

Når jeg kontrollerede mine netværkskortindstillinger efter at have kørt scriptet, bekræftede jeg, at scriptet faktisk gjorde de statiske IP-indstillinger ændringer.

Nu for at teste AUTO-scriptet. Indtastning af AUTO tilfredsstiller den første betingelse i “HVIS” erklæringskontrol for AUTO. Dette kører det alternative script, der aktiverer DHCP.

Efter at have kørt dette gik jeg ind i mine adapterindstillinger, og sikker nok, den blev sat tilbage til at få en IP-adresse automatisk.

Selvom det kan være en enkel nok opgave at gå ind på dine netværkskortindstillinger og skifte til statisk eller DHCP, hvis du er nødt til at gøre det virkelig ofte, kan det blive en rigtig smerte. Du kan gøre det fra en kommandolinje ved hjælp af “netsh”, men igen, skal du huske kommandosyntaxen.

Brug af scriptet ovenfor giver dig mulighed for at opbygge en hurtig og nem hjælpeprogram, som du kan bruge når som helst til at skifte dine netværksindstillinger på farten.

Tror du, du kan prøve dette Windows-script? Har du andre ideer til at finpusse det og gøre det endnu bedre? Del dine tanker og forslag i kommentarfeltet nedenfor.

Billedkredit: Binære koder via Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.