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, 3478 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
IP-Einstellungen werden falsch angezeigt (5)

Frage von schlumpf90 zum Thema Windows Server ...

Firewall
gelöst Site-to-Site-VPN und Cisco VPN-Client von gleicher IP (2)

Frage von TripleDouble zum Thema Firewall ...

Erkennung und -Abwehr
Backdoor in IP-Kameras von Sony (5)

Link von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...