NIC dynamisch auslesen

Antworten
Frank.Recker
Beiträge: 8
Registriert: 15. Dez 2004, 14:55
Wohnort: 33324 Gütersloh
Kontaktdaten:

NIC dynamisch auslesen

Beitrag von Frank.Recker » 18. Jan 2005, 14:54

Hallo Forum,

via Snapshot erstellte Pakete zum ändern von statischen DNS und WINS-Parametern für NT4/W2K und XP ist kein Problem.

Problematisch ist das die jeweilige Netzwerkkarte unter anderen Schlüsseln auf dem jeweiligen Zielrechner in der Registry gespeichert wird.

Hat jemand dazu eine elegante Lösung, so dass im Paket der jeweils aktive Nic ausgelesen wird und danach erst die Parameter für DNS und
WINS geändert werden?

Danke

Frank Recker

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7534
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Beitrag von Hendrik_Ambrosius » 18. Jan 2005, 15:02

Vielleicht hilft dieser Ansatz?
Wäre wohl NOCH eleganter mit FOR-NEXT-Schleife zu lösen.

----

[Set:NetcardService1]
Set VM_NetcardService=%VM_NetcardService1%

[Set:NetcardService2]
Set VM_NetcardService=%VM_NetcardService2%

[Set:NetcardService3]
Set VM_NetcardService=%VM_NetcardService3%

[Set:NetcardService4]
Set VM_NetcardService=%VM_NetcardService4%

[Set:NetcardService5]
Set VM_NetcardService=%VM_NetcardService5%

[Set:NetcardService6]
Set VM_NetcardService=%VM_NetcardService6%

[Set:NetcardService7]
Set VM_NetcardService=%VM_NetcardService7%

[Set:NetcardService8]
Set VM_NetcardService=%VM_NetcardService8%

[Set:NetcardService9]
Set VM_NetcardService=%VM_NetcardService9%

[Set:NetcardService10]
Set VM_NetcardService=%VM_NetcardService10%


[Product]
Set VM_NetcardService1=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\1","ServiceName"%
Set VM_NetcardService2=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2","ServiceName"%
Set VM_NetcardService3=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\3","ServiceName"%
Set VM_NetcardService4=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\4","ServiceName"%
Set VM_NetcardService5=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\5","ServiceName"%
Set VM_NetcardService6=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\6","ServiceName"%
Set VM_NetcardService7=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\7","ServiceName"%
Set VM_NetcardService8=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\8","ServiceName"%
Set VM_NetcardService9=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\9","ServiceName"%
Set VM_NetcardService10=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\10","ServiceName"%

ReplaceEnv VM_NetcardService1
ReplaceEnv VM_NetcardService2
ReplaceEnv VM_NetcardService3
ReplaceEnv VM_NetcardService4
ReplaceEnv VM_NetcardService5
ReplaceEnv VM_NetcardService6
ReplaceEnv VM_NetcardService7
ReplaceEnv VM_NetcardService8
ReplaceEnv VM_NetcardService9
ReplaceEnv VM_NetcardService10

If "%VM_NetcardService1%" != "" Then "Set:NetcardService1" EndIf
If "%VM_NetcardService2%" != "" Then "Set:NetcardService2" EndIf
If "%VM_NetcardService3%" != "" Then "Set:NetcardService3" EndIf
If "%VM_NetcardService4%" != "" Then "Set:NetcardService4" EndIf
If "%VM_NetcardService5%" != "" Then "Set:NetcardService5" EndIf
If "%VM_NetcardService6%" != "" Then "Set:NetcardService6" EndIf
If "%VM_NetcardService7%" != "" Then "Set:NetcardService7" EndIf
If "%VM_NetcardService8%" != "" Then "Set:NetcardService8" EndIf
If "%VM_NetcardService9%" != "" Then "Set:NetcardService9" EndIf
If "%VM_NetcardService10%" != "" Then "Set:NetcardService10" EndIf

Echo %VM_NetcardService%

Call "%SRC%\EmpInv\EmpInv.exe" /O:%Temp%\%ComputerName%.ini
Set VM_DefaultGateway=%%%Temp%\%ComputerName%.ini,%VM_NetcardService%,DefaultGateway%%
Set VM_IPAddress=%%%Temp%\%ComputerName%.ini,%VM_NetcardService%,IPAddress%%
Set VM_SubnetMask=%%%Temp%\%ComputerName%.ini,%VM_NetcardService%,SubnetMask%%
Set VM_DNSServer=%%%Temp%\%ComputerName%.ini,Computer,DNS-Server%%
ReplaceEnv VM_DefaultGateway
ReplaceEnv VM_IPAddress
ReplaceEnv VM_SubnetMask
ReplaceEnv VM_DNSServer

Echo %VM_DefaultGateway%
Echo %VM_IPAddress%
Echo %VM_SubnetMask%
Echo %VM_DNSServer%
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

Frank.Recker
Beiträge: 8
Registriert: 15. Dez 2004, 14:55
Wohnort: 33324 Gütersloh
Kontaktdaten:

Beitrag von Frank.Recker » 18. Jan 2005, 16:41

Hinweis war gut. Leicht modifiziert klappt das bei allen genannten OS:

Hier ein Auszug der lauffähigen setup.inf bei xp mit anderen ips:

[Product]

--Set:NetcardService1
--Set:NetcardService2
--Set:NetcardService3
--Set:NetcardService4
--Set:NetcardService5
--Set:NetcardService6
--Set:NetcardService7
--Set:NetcardService8
--Set:NetcardService9
--Set:NetcardService10

--Set:Product
--Reg:OnUninstallProduct, DELETE
--Reg:Product
--Ini:Product
--Security:Product

[Set:NetcardService1]
Set VM_NetcardService=%VM_NetcardService1%

[Set:NetcardService2]
Set VM_NetcardService=%VM_NetcardService2%

[Set:NetcardService3]
Set VM_NetcardService=%VM_NetcardService3%

[Set:NetcardService4]
Set VM_NetcardService=%VM_NetcardService4%

[Set:NetcardService5]
Set VM_NetcardService=%VM_NetcardService5%

[Set:NetcardService6]
Set VM_NetcardService=%VM_NetcardService6%

[Set:NetcardService7]
Set VM_NetcardService=%VM_NetcardService7%

[Set:NetcardService8]
Set VM_NetcardService=%VM_NetcardService8%

[Set:NetcardService9]
Set VM_NetcardService=%VM_NetcardService9%

[Set:NetcardService10]
Set VM_NetcardService=%VM_NetcardService10%


[Set:Product]
Set VM_NetcardService1=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\1","ServiceName"%
Set VM_NetcardService2=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2","ServiceName"%
Set VM_NetcardService3=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\3","ServiceName"%
Set VM_NetcardService4=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\4","ServiceName"%
Set VM_NetcardService5=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\5","ServiceName"%
Set VM_NetcardService6=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\6","ServiceName"%
Set VM_NetcardService7=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\7","ServiceName"%
Set VM_NetcardService8=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\8","ServiceName"%
Set VM_NetcardService9=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\9","ServiceName"%
Set VM_NetcardService10=%HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\10","ServiceName"%

ReplaceEnv VM_NetcardService1
ReplaceEnv VM_NetcardService2
ReplaceEnv VM_NetcardService3
ReplaceEnv VM_NetcardService4
ReplaceEnv VM_NetcardService5
ReplaceEnv VM_NetcardService6
ReplaceEnv VM_NetcardService7
ReplaceEnv VM_NetcardService8
ReplaceEnv VM_NetcardService9
ReplaceEnv VM_NetcardService10

If "%VM_NetcardService1%" != "" Then "Set:NetcardService1" EndIf
If "%VM_NetcardService2%" != "" Then "Set:NetcardService2" EndIf
If "%VM_NetcardService3%" != "" Then "Set:NetcardService3" EndIf
If "%VM_NetcardService4%" != "" Then "Set:NetcardService4" EndIf
If "%VM_NetcardService5%" != "" Then "Set:NetcardService5" EndIf
If "%VM_NetcardService6%" != "" Then "Set:NetcardService6" EndIf
If "%VM_NetcardService7%" != "" Then "Set:NetcardService7" EndIf
If "%VM_NetcardService8%" != "" Then "Set:NetcardService8" EndIf
If "%VM_NetcardService9%" != "" Then "Set:NetcardService9" EndIf
If "%VM_NetcardService10%" != "" Then "Set:NetcardService10" EndIf

;Echo %VM_NetcardService%

[Reg:OnUninstallProduct]
HKLM,SYSTEM\CurrentControlSet\Services\NetBT\Parameters,EnableLMHOSTS,0x00010001,1
HKLM,SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_%VM_NetcardService%,NameServerList,0x00010000,"172.20.0.13","172.19.10.1"
HKLM,SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_%VM_NetcardService%,NetbiosOptions,0x00010001,0
HKLM,SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdapters\%VM_NetcardService%,DNSServerAddresses,0x00000001,ac,14,00,04,ac,13,0a,01
HKLM,SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdapters\%VM_NetcardService%,SentPriUpdateToIp,0x00010001,419435692
HKLM,SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\%VM_NetcardService%,NameServer,0x00000000,"172.20.0.4,172.19.10.1"

[Reg:Product]
HKLM,"SYSTEM\CurrentControlSet\Services\NetBT\Parameters","EnableLMHOSTS",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_%VM_NetcardService%","NameServerList",0x00010000,"172.20.0.22","172.20.0.25"
HKLM,"SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_%VM_NetcardService%","NetbiosOptions",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdapters\%VM_NetcardService%","DNSServerAddresses",0x00000001,ac,14,00,16,ac,14,00,19
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdapters\%VM_NetcardService%","SentPriUpdateToIp",0x00010001,369104044
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\%VM_NetcardService%","NameServer",0x00000000,"172.20.0.22,172.20.0.25"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","SearchList",0x00000000,""



[Ini:Product]

[Security:Product]

[Shell:Installer]
;%ProductName%\%ProductName% Setup, %ReinstallString%
;%ProductName%\%ProductName% %Uninstallation%, %UninstallString%, , , , , 1, ,

[Shell:Product]



Gruß
Frank Recker

Jochen_Schmitt
Beiträge: 298
Registriert: 14. Dez 2004, 12:24
Wohnort: Reinheim
Kontaktdaten:

Beitrag von Jochen_Schmitt » 20. Jan 2005, 13:40

Hallo zusammen,

noch eine andere Idee die man testen kann.
Ich habe dies in der Vergangenheit ohne Empirum auch schon bearbeitet.
OK - es werden weniger Empirum Zeilen notwendig sein :-)

Nutzung von regfind.exe aus dem Windows Resource Kit mit der Option des Replacement Strings. http://hacks.oreilly.com/pub/h/1101

Somit sucht man ab einem best. Zweig in der Registry nach einem
vorhanden Wert und läßt diesen ersetzen. Den alten DNS bzw. WINS Server kennt man zuweilen ja ;-).

Somit sollte es dann mit einer Zeile je zu ändernder IP Adresse getan sein.

Grüße
Jochen Schmitt

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7534
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Beitrag von Hendrik_Ambrosius » 20. Jan 2005, 14:25

...und der Vollständigkeit halber auch noch mal der Hinweis auf die Möglichkeit über "netsh -f config.txt" die Werte zu ändern. Geht recht gut, wenn der aktive Adapter immer "LAN1" o.ä. heißt.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

Marc Reissmann
Beiträge: 29
Registriert: 14. Dez 2004, 11:21
Kontaktdaten:

Beitrag von Marc Reissmann » 01. Feb 2005, 16:30

Wie wäre es denn damit !!!

Ein kleines .VBS !!!


Const FULL_DNS_REGISTRATION = True
Const DOMAIN_DNS_REGISTRATION = False
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
objNetCard.SetDynamicDNSRegistration [glow=red]FULL_DNS_REGISTRATION[/glow], DOMAIN_DNS_REGISTRATION
objNetCard.SetDNSDomain("dbt.de")
Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
arrDNSSuffixes = Array[glow=red]("*.*", "*.*","*.*")[/glow]
objNetworkSettings.SetDNSSuffixSearchOrder(arrDNSSuffixes)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
arrDNSServers = Array("[glow=red]DNSserver1[/glow]", "[glow=red]DNSserver2[/glow]")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next


Dieses Skript ändert folgendes: aktivirung Active DNS, DNS Server IP, DNS- Suchreihenfolge (für alle vorhanden Netzwerkkarten !!!)
habe die einzelnen Punkte mal Rot markiert !!


Gruss Marc

Antworten

Zurück zu „Paketierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste