Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS Standortbestimmung anhand des Default IP Gateways

Frage Entwicklung VB for Applications

Mitglied: L0c4lh0sT

L0c4lh0sT (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 14:52 Uhr, 3497 Aufrufe, 6 Kommentare

Hallo,

ich versuche ein Script zu schreiben welches mit anhand des Default IP Gateways einige einstellungen vornimmt.
Das funktioniert auch soweit.

Das einzige Problem was ich habe ist das wir bei uns teilweise mit VMWare arbeiten.
Die dabei entstehenden Virtuellen Netzwerke werden dabei auch im Script verarbeitet und führen zu verfälschten Ergebnissen.

Hab da jetzt irgendwie ne Gedankenblockade und komm nicht weiter. Wäre super wenn ihr mir auf die Sprünge helft.
Am besten sollte es nur nach Vordefinierten Netzen suchen und wenn diese nicht Auftreten als Location "Unknown" setzen

Hier mal das bisschen Script:

01.
 
02.
'/// 
03.
'/// detects default gateway and sets the correct environment variables 
04.
'/// 
05.
 
06.
Location = "Unknown" 
07.
Dim WSHShell 
08.
Dim WSHNetW 
09.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
10.
Set WshNetw = Wscript.CreateObject("Wscript.Network") 
11.
 
12.
 
13.
'/// get default location 
14.
for each Config in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("Win32_NetworkAdapterConfiguration") 
15.
	if VarType(Config.Ipaddress(0)) = 8 then 
16.
		select case Config.DefaultIPGateway(0) 
17.
			case "130.30.1.251" 
18.
				Location = "OfficeA" 
19.
			case "192.168.130.1" 
20.
				Location = "OfficeB" 
21.
			case "10.60.1.1" 
22.
				Location = "OfficeB" 
23.
			case "10.170.1.1" 
24.
				Location = "OfficeC" 
25.
			case else 
26.
				Location = "Unknown" 
27.
		end select 
28.
	end if 
29.
next 
30.
 
31.
wscript.echo "Applying settings for location : " & Location & " !" 
32.
setEnvVar "Location", Location 
33.
select case Location 
34.
	case "OfficeA" 
35.
		setEnvVar "Irgendwas", "Setze irgendwas" 
36.
	case "OfficeB" 
37.
		setEnvVar "Irgendwas", "Setze irgendwas" 
38.
	case "OfficeC" 
39.
		setEnvVar "Irgendwas", "Setze irgendwas" 
40.
	case else 
41.
		unsetEnvVar "Irgendwas", "Setze irgendwas" 
42.
end select 
43.
 
44.
sub setEnvVar (strVarName, strVarValue) 
45.
	set oShell = CreateObject("WScript.Shell") 
46.
	set oShellEnv = oShell.Environment("USER") 
47.
	oShellEnv(strVarName) = strVarValue 
48.
	set oShellEnv = nothing 
49.
	set oShell = nothing 
50.
end sub 
51.
 
52.
sub unsetEnvVar (strVarName) 
53.
	set oShell = CreateObject("WScript.Shell") 
54.
	set oShellEnv = oShell.Environment("USER") 
55.
	if oShellEnv(strVarName) <> "" then 
56.
		oShellEnv.Remove(strVarName) 
57.
	end if 
58.
	set oShellEnv = nothing 
59.
	set oShell = nothing 
60.
end sub 
61.
 
Mitglied: godlie
08.04.2009 um 11:46 Uhr
Naja wie wärs wenn du auf den Namen "Lan-Verbindung" prüfst?
Bitte warten ..
Mitglied: L0c4lh0sT
08.04.2009 um 11:53 Uhr
Danke für deine Antwort.

Wie meinst du das?
Ich habe mit der WMI nicht die möglichkeit. Ich kann auf Caption oder Description gehen.

Dann wäre da noch das Problem das es mehrere Namen gibt, da es auf ca. 2000 Rechnern lauffähig sein soll, die in 3 Unterschiedlichen Büros bzw. Ländern stehen.

Wäre übrigens sehr hilfreich wenn du mir ein Beispiel geben könntest.

MfG
L0c4lh0sT
Bitte warten ..
Mitglied: godlie
08.04.2009 um 13:28 Uhr
Sodala hat ein bisserl gedauert:

01.
Set AdapterConfiguration = GetObject("winmgmts:{impersonationLevel=impersonate}") 
02.
for Each Config in AdapterConfiguration.ExecQuery _ 
03.
 ("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID = 'LAN-Verbindung'") 
04.
if(Config.NetConnectionID = "LAN-Verbindung") then 
05.
Set objNic = AdapterConfiguration.Get _ 
06.
   ("Win32_NetworkAdapterConfiguration.Index=" & Config.DeviceID) 
07.
Wscript.Echo objNic.IpAddress(0) 
08.
end if 
09.
next
Damit findest du die Netzwerkkarte die LAN-Verbindung heist.
Dieser Technet Artikel kann dir da weiterhelfen
Bitte warten ..
Mitglied: L0c4lh0sT
08.04.2009 um 14:00 Uhr
Dankeschön!

Funktioniert wie ne 1!

Hoffe doch ich darf den Code 1 zu 1 übernehmen...
Spart ne menge arbeit!
Nochmals danke!

MfG
L0c4lh0sT
Bitte warten ..
Mitglied: godlie
08.04.2009 um 14:05 Uhr
gut geklaut ist halb programmmiert
Bitte warten ..
Mitglied: L0c4lh0sT
08.04.2009 um 14:51 Uhr
Das heisst dann wohl ja

Danke nochmal

MfG
L0c4lh0sT
Bitte warten ..
Ähnliche Inhalte
Router & Routing
gelöst Mehrere Gateways - Syslog nicht an Default Gateway (4)

Frage von sebasscha zum Thema Router & Routing ...

LAN, WAN, Wireless
Buffolo AccessPoint IP vergessen - herausfinden (8)

Frage von staybb zum Thema LAN, WAN, Wireless ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte