jak napsat script pro změnu ip adresy

Operační systémy Windows z dílny Microsoft a vše kolem nich

Moderátoři: Pic, Mods_senior

ciscotomas
nováček
Příspěvky: 2
Registrován: srpen 19
Pohlaví: Muž
Stav:
Offline

jak napsat script pro změnu ip adresy

Příspěvekod ciscotomas » 02 srp 2019 16:04

Dobrý den, dnes jsem zkoušel změnit si ip adresu pomocí scriptu. Když otevřu příkazový řádek jako správce zadám příkaz ->netsh a potom zadám například: interface ip set address name = "Ethernet" static 192.168.10.20 255.255.255.0 192.168.1.1 tak mi to změní ip adresu potom když zadám interface ip set dns "Ethernet" static 193.85.1.100 primary tak mi to sice změní jen jedno dns a to druhé nastavit nejde, ale funguje to. Problém přichází ve chvíli kdy se z toho snažím udělat soubor .bat a spustit to najednou. V poznámkovém bloku to napíšu takto
@echo off

netsh
interface ip set address name = "Ethernet" static 192.168.10.20 255.255.255.0 192.168.1.1
interface ip set dns "Ethernet" static 193.85.1.100 primary
PAUSE


ale vždy se provede jen ta první akce a to, že se to dostane do toho modu netsh. Nějaké rady jak by to mělo být správně popřípadě jiný způsob, budu rád za jakékoliv rady.

Reklama
Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23605
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: jak napsat script pro změnu ip adresy

Příspěvekod ITCrowd » 02 srp 2019 16:37

Vítej na PC-HELP!
netsh dnsclient add dnsserver "Ethernet" address=192.168.1.4 1
netsh dnsclient add dnsserver "Ethernet" address=192.168.1.5 2
ke druhému problému - netsh musí být na každém řádku. BAT neumí pracovat v interaktivním režimu.
Abych řekl pravdu, nemám to ověřeno...
Používám tyto příkazy ve vbs:

Kód: Vybrat vše

Set objShell = WScript.CreateObject("WScript.Shell")
strRun = "%COMSPEC% /c netsh int ipv4 set address name=" & Chr(34) & "Připojení k místní síti" & Chr(34) & " static 192.168.1.106 255.255.255.0 192.168.1.1 1"
objShell.Run strRun,,True
strRun = "%COMSPEC% /c netsh dnsclient add dnsserver " & Chr(34) & "Připojení k místní síti" & Chr(34) & " address=192.168.1.4 1"
objShell.Run strRun,,True
strRun = "%COMSPEC% /c netsh dnsclient add dnsserver " & Chr(34) & "Připojení k místní síti" & Chr(34) & " address=192.168.1.5 2"
objShell.Run strRun,,True


Dodatečně přidáno po 11 minutách 2 vteřinách:
A měl by fungovat i tento skript ve vbs:

Kód: Vybrat vše

strComputer = "."
arrIPAddress = Array("192.168.1.106")
arrSubNetMask = Array("255.255.255.0")
arrGateway = Array("192.168.1.1")
arrDNS = Array("192.168.1.4", "192.168.1.5")

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration WHERE MACAddress='D4:4A:3E:92:FD:29'")
For Each objItem in colItems
  intValue = objItem.EnableStatic(arrIPAddress, arrSubNetMask)
  intValue = objItem.SetGateways(arrGateway)
  intValue = objItem.SetDNSServerSearchOrder(arrDNSServers)
Next

Je to vázáno přímo na MAC adresu, takže se to nesplete :-)
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

petr22
Guru Level 15
Guru Level 15
Příspěvky: 53608
Registrován: únor 12
Pohlaví: Muž
Stav:
Online

Re: jak napsat script pro změnu ip adresy

Příspěvekod petr22 » 02 srp 2019 16:51

Tvuj problem byl ten ze to delalo presne to, co jsi zadal, a ne to co chces.

BAT soubor funguje tak, ze spusti to co mas na radku a dokud to neukoncis
tak se nepohne dal.

Tedy prvnim radkem jsi spustil netsh - a nezavrel ho. Uz je jasne, proc to neslo ?

Spravne reseni viz vyse, na kazdem radku musi byt cely prikaz netsh.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23605
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: jak napsat script pro změnu ip adresy

Příspěvekod ITCrowd » 02 srp 2019 17:07

A ještě doplním - tvé příkazy pro dns by mohly vypadat takto:
netsh interface ip set dns name="Local Area Connection" source=static addr=202.138.18.2 register=PRIMARY
netsh interface ip add dns name="Local Area Connection" addr=10.255.255.20 index=2
Můžeš vyzkoušet :-)
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

ciscotomas
nováček
Příspěvky: 2
Registrován: srpen 19
Pohlaví: Muž
Stav:
Offline

Re: jak napsat script pro změnu ip adresy

Příspěvekod ciscotomas » 05 srp 2019 16:31

ITCrowd píše:A ještě doplním - tvé příkazy pro dns by mohly vypadat takto:
netsh interface ip set dns name="Local Area Connection" source=static addr=202.138.18.2 register=PRIMARY
netsh interface ip add dns name="Local Area Connection" addr=10.255.255.20 index=2
Můžeš vyzkoušet :-)

Tyto 2 příkazy fungují skvěle, nastaví jak primární DNS tak druhou. Ale když jsem se snažil ve .vbs tak mi to nějak nešlo, ještě to nějak prozkouším, ale provizorně budu používat
netsh interface ip set address name = "Ethernet" static 192.168.10.20 255.255.255.0 192.168.1.1
netsh interface ip set dns name="Ethernet" source=static addr=202.138.18.2 register=PRIMARY
netsh interface ip add dns name="Ethernet" addr=10.255.255.20 index=2
PAUSE

Moc děkuji za odpovědi


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Zmena IP adresy
    od ShadowWord:Pain » 15 zář 2023 09:49 » v Sítě - hardware
    11
    2302
    od petr22 Zobrazit poslední příspěvek
    15 zář 2023 12:48

Zpět na “Windows 11, 10, 8...”

Kdo je online

Uživatelé prohlížející si toto fórum: DotNetDotCom.org [Bot] a 9 hostů