VBS Standortbestimmung anhand des Default IP Gateways
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:
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:
'///
'/// detects default gateway and sets the correct environment variables
'///
Location = "Unknown"
Dim WSHShell
Dim WSHNetW
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetw = Wscript.CreateObject("Wscript.Network")
'/// get default location
for each Config in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("Win32_NetworkAdapterConfiguration")
if VarType(Config.Ipaddress(0)) = 8 then
select case Config.DefaultIPGateway(0)
case "130.30.1.251"
Location = "OfficeA"
case "192.168.130.1"
Location = "OfficeB"
case "10.60.1.1"
Location = "OfficeB"
case "10.170.1.1"
Location = "OfficeC"
case else
Location = "Unknown"
end select
end if
next
wscript.echo "Applying settings for location : " & Location & " !"
setEnvVar "Location", Location
select case Location
case "OfficeA"
setEnvVar "Irgendwas", "Setze irgendwas"
case "OfficeB"
setEnvVar "Irgendwas", "Setze irgendwas"
case "OfficeC"
setEnvVar "Irgendwas", "Setze irgendwas"
case else
unsetEnvVar "Irgendwas", "Setze irgendwas"
end select
sub setEnvVar (strVarName, strVarValue)
set oShell = CreateObject("WScript.Shell")
set oShellEnv = oShell.Environment("USER")
oShellEnv(strVarName) = strVarValue
set oShellEnv = nothing
set oShell = nothing
end sub
sub unsetEnvVar (strVarName)
set oShell = CreateObject("WScript.Shell")
set oShellEnv = oShell.Environment("USER")
if oShellEnv(strVarName) <> "" then
oShellEnv.Remove(strVarName)
end if
set oShellEnv = nothing
set oShell = nothing
end sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113479
Url: https://administrator.de/contentid/113479
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
Sodala hat ein bisserl gedauert:
Damit findest du die Netzwerkkarte die LAN-Verbindung heist.
Dieser Technet Artikel kann dir da weiterhelfen
Set AdapterConfiguration = GetObject("winmgmts:{impersonationLevel=impersonate}")
for Each Config in AdapterConfiguration.ExecQuery _
("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID = 'LAN-Verbindung'")
if(Config.NetConnectionID = "LAN-Verbindung") then
Set objNic = AdapterConfiguration.Get _
("Win32_NetworkAdapterConfiguration.Index=" & Config.DeviceID)
Wscript.Echo objNic.IpAddress(0)
end if
next
Damit findest du die Netzwerkkarte die LAN-Verbindung heist.
Dieser Technet Artikel kann dir da weiterhelfen