[W2K8R2]Invullen netwerkgegevens via script op inactieve NIC

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Op al onze virtuele machines (1000+) wordt de virtuele NIC geüpdatet en we moeten scripten dat de data uitgelezen wordt van de oude NIC en in de nieuwe NIC ingelezen wordt.

Via WMI kunnen we eenvoudig de data uitlezen en wegschrijven naar een of ander formaat (XML, CSV, TXT...). Ook invoeren is geen probleem. Volgende Powershell snippet toont hoe ik dat doe:

C#:
1
2
3
4
5
6
7
8
9
Param($InputFile)
Clear-Host
$IPRecords = @(Import-CSV $InputFile -Delimiter ";")
$DNSServers = $IPRecords[0].DnsOld.Split(";")
$NetInterfaces = Get-WmiObject Win32_NetworkAdapterConfiguration
$NetInterface = $NetInterfaces | Where-Object {$_.Description -Like "*Intel*"}
$NetInterface.EnableStatic($IPRecords[0].IPOld,$IPRecords[0].MaskOld) | Out-Null
$NetInterface.SetGateways($IPRecords[0].GatewayOld) | Out-Null
$NetInterface.SetDNSServerSearchOrder($DNSServers) | Out-Null


Wat is het probleem dan? Wel: de twee NICs mogen niet tegelijkertijd actief zijn. De informatie moet in de NIC gepompt worden alvorens die online gaat - en dat gaat niet. Dan krijgen we een error 84 terug van SetDNSServerSearchOrder: IP not enabled on adapter.

WMI laat met andere woorden niet toe dat de netwerkadapter geconfigureerd wordt wanneer hij offline is.

NETSH biedt ook geen uitkomst:

code:
1
NETSH INTERFACE SET DNS "Local Area Connection" static 10.10.0.40


Opnieuw: werkt perfect als de verbinding online is maar geeft "The configured DNS server is incorrect or does not exist." wanneer de verbinding offline is - blijkbaar checkt hij de verbinding met de DNS alvorens de configuratie weg te schrijven en dat kan natuurlijk niet offline.

Het gekke is: wanneer men manueel de configuratie van een NIC wilt aanpassen die offline is, dan gaat dat gewoon. Het is enkel op een geautomatiseerde manier dat we onze tanden stuk bijten.

De enige optie de we nog niet overwogen hebben is via de registry, niet omdat we angst hebben van het register maar wel omdat totaal niet duidelijk is hoe en waar deze informatie consequent, over verschillende machines heen, weggeschreven wordt.

Als iemand nog ideeën heeft hoor ik het graag.

Acties:
  • 0 Henk 'm!

  • The-Hi_End
  • Registratie: Oktober 2005
  • Laatst online: 10-07 14:21
Netsh is wel bruikbaar met de validate=no switch.

Dus: NETSH INTERFACE IP SET DNS "Local Area Connection" static 10.10.0.40 validate=no

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
The-Hi_End schreef op maandag 03 december 2012 @ 14:53:
Netsh is wel bruikbaar met de validate=no switch.

Dus: NETSH INTERFACE IP SET DNS "Local Area Connection" static 10.10.0.40 validate=no
+1

Super, ik wist niet dat die parameter bestond. Hierdoor doet ie het wél. Thank you very much. *O*