VB Script ausführen wenn die IP sich ändert
Guten Morgen,
so nachdem ich ja gestern mit godlie mein Script zum erfassen der Netzwerkumgebung gebastelt habe und es wunderbar funktioniert, kommt jetzt nochmal eine weitere Aufgabe, die ich alleine nicht zu lösen vermag.
Es geht darum, dass das Script von gestern immer ausgeführt werden soll wenn sich die IP Adresse ändert.
Frage ist nur: Wie bekomme ich raus ob sich die IP Adresse ändert? !und! wie kann ich das realisieren? Eine Dauerschleife würde sicher auf Kosten der Hardware bzw. Leistung gehen oder?
Die Programiersprache ist eigentlich egal aber VBS wäre von Vorteil. Es sollte nur ohne Benutzereingriffe und ohne Adminrechte startbar sein. Ebenfalls sollte keine bestimmt Umgebung dafür notwendig sein. Also soll es mit Windoof Bordmitteln lauffähig sein.
Zeitlich gesteuert also über den Taskplaner beispielsweise ist nicht optimal da es dann zu unflexibel ist.
Hoffe mal ihr könnt mir da helfen.
Ich hab da sowiso nicht so die Ahnung von^^ Bin eher der Hardware-Mensch xD
Danke schonmal
L0c4lh0sT
so nachdem ich ja gestern mit godlie mein Script zum erfassen der Netzwerkumgebung gebastelt habe und es wunderbar funktioniert, kommt jetzt nochmal eine weitere Aufgabe, die ich alleine nicht zu lösen vermag.
Es geht darum, dass das Script von gestern immer ausgeführt werden soll wenn sich die IP Adresse ändert.
Frage ist nur: Wie bekomme ich raus ob sich die IP Adresse ändert? !und! wie kann ich das realisieren? Eine Dauerschleife würde sicher auf Kosten der Hardware bzw. Leistung gehen oder?
Die Programiersprache ist eigentlich egal aber VBS wäre von Vorteil. Es sollte nur ohne Benutzereingriffe und ohne Adminrechte startbar sein. Ebenfalls sollte keine bestimmt Umgebung dafür notwendig sein. Also soll es mit Windoof Bordmitteln lauffähig sein.
Zeitlich gesteuert also über den Taskplaner beispielsweise ist nicht optimal da es dann zu unflexibel ist.
Hoffe mal ihr könnt mir da helfen.
Ich hab da sowiso nicht so die Ahnung von^^ Bin eher der Hardware-Mensch xD
Danke schonmal
L0c4lh0sT
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113562
Url: https://administrator.de/contentid/113562
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
8 Kommentare
Neuester Kommentar
Du kannst es mal mit folgendem Versuchen:
Das Script beobachtet den Registry-Key einer Netzwerkkarte und deren IP-Adresse, den musst du an deine Situtation anpassen.
Sobald sich dort der Key "IPAddress" ändert kommt es zu einem Event.
Das Script beobachtet den Registry-Key einer Netzwerkkarte und deren IP-Adresse, den musst du an deine Situtation anpassen.
Sobald sich dort der Key "IPAddress" ändert kommt es zu einem Event.
Set wmiServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\default")
Set wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_")
wmiServices.ExecNotificationQueryAsync wmiSink, _
"SELECT * FROM RegistryValueChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' " & _
"AND KeyPath='SYSTEM\\CurrentControlSet\\Services\\{2716E6B8-A329-4C09-B502-CAA1A36604CF}\\Parameters\\Tcpip' AND ValueName='IPAddress'"
WScript.Echo "Listening for Registry Change Events..." & vbCrLf
While(1)
WScript.Sleep 1000
Wend
Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext)
'Beispiel ausgabe // hier kann dann dein Script aufgerufen werden
WScript.Echo "Received Registry Change Event" & vbCrLf & _
wmiObject.GetObjectText_()
End Sub
Du hast interessante Aufgabenstellungen
Naja ich könnte mir denken das es evtl. über einen Service lösbar wäre.
Im Prinzip wäre das ein VBS Script welches nach der IP sieht diese speichert.
Beim nächsten Start wieder das gleiche macht, falls IP abweicht dann starte dies und das.
Ich glaube RunAsService könntest schon mal ins Auge fassen.
http://sourceforge.net/projects/runasservice/
Ob es einen EventTrigger für IP Adress Change gibt unter Windows glaube ich fast net.
Naja ich könnte mir denken das es evtl. über einen Service lösbar wäre.
Im Prinzip wäre das ein VBS Script welches nach der IP sieht diese speichert.
Beim nächsten Start wieder das gleiche macht, falls IP abweicht dann starte dies und das.
Ich glaube RunAsService könntest schon mal ins Auge fassen.
http://sourceforge.net/projects/runasservice/
Ob es einen EventTrigger für IP Adress Change gibt unter Windows glaube ich fast net.
welche EventSource bzw. Quelle meinst du ? -- damit es eindeutig zugeordnet werden kann !
Dann muss das noch in die WQL Query mit eingebaut werden
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Security)}!\\" & _
strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("Select * from __instancecreationevent where " _
& "TargetInstance isa 'Win32_NTLogEvent' " _
& "and TargetInstance.EventCode = '4201' ")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
WScript.Echo objLatestEvent.TargetInstance.SourceName
Loop