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

VB Script ausführen wenn die IP sich ändert

Frage Entwicklung VB for Applications

Mitglied: L0c4lh0sT

L0c4lh0sT (Level 1) - Jetzt verbinden

09.04.2009, aktualisiert 09:04 Uhr, 5507 Aufrufe, 8 Kommentare

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 Windows 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
Mitglied: bastla
09.04.2009 um 10:42 Uhr
Hallo L0c4lh0sT!
Eine Dauerschleife würde sicher auf Kosten der Hardware bzw. Leistung gehen oder?
Wenn Du die Wartezeit zwischen den einzelnen Checks per "WScript.Sleep Dauer in ms" überbrückst, sollte das kein Problem sein ...

Grüße
bastla
Bitte warten ..
Mitglied: L0c4lh0sT
09.04.2009 um 10:55 Uhr
Da haben wir dann aber wieder ne Abfrage die zu unflexibel ist weil sie eine Vordefinierte Zeit abläuft.

Gibt es da nicht soetwas wie ein Autorun oder Regeintrag der auf die Änderung der IP reagiert?
Ja ich weiß dafür ist es ein falsches Forum aber da ich selbst nicht weiß wie es zu realisieren ist...kann ja auch sein dass es mit VBS geht.


Mit freundlichen Grüßen
L0c4lh0sT
Bitte warten ..
Mitglied: colinardo
09.04.2009 um 11:34 Uhr
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.

01.
Set wmiServices = GetObject("winmgmts:" _ 
02.
    & "{impersonationLevel=impersonate}!\\.\root\default") 
03.
 
04.
Set wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_")  
05.
  
06.
wmiServices.ExecNotificationQueryAsync wmiSink, _  
07.
    "SELECT * FROM RegistryValueChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' " & _ 
08.
        "AND KeyPath='SYSTEM\\CurrentControlSet\\Services\\{2716E6B8-A329-4C09-B502-CAA1A36604CF}\\Parameters\\Tcpip' AND ValueName='IPAddress'"  
09.
  
10.
  
11.
  
12.
WScript.Echo "Listening for Registry Change Events..." & vbCrLf  
13.
  
14.
While(1)  
15.
    WScript.Sleep 1000  
16.
Wend  
17.
  
18.
Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext)  
19.
'Beispiel ausgabe // hier kann dann dein Script aufgerufen werden 
20.
    WScript.Echo "Received Registry Change Event" & vbCrLf & _  
21.
        wmiObject.GetObjectText_()  
22.
End Sub
Bitte warten ..
Mitglied: L0c4lh0sT
09.04.2009 um 11:48 Uhr
Schonmal ein guter Ansatz aber leider auch nicht das richtige...
Das Script soll auf ca. 3000 Rechnern ausgeführt werden. Und da ich hier dann einen Eintrag aus der Registry nehmen müsste, der auf jedem Rechner anders ist geht es so auch nicht.

Hätte vll. vorher die anzahl der PC's erwähnen sollen sry

Mit freundlichen Grüßen
L0c4lh0sT
Bitte warten ..
Mitglied: godlie
09.04.2009 um 12:04 Uhr
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.
Bitte warten ..
Mitglied: L0c4lh0sT
09.04.2009 um 13:44 Uhr
Noch besser wäre es wohl nurnoch nach event id 4201 zu gehen.

Gibt es da ne möglichkeit?
Genau das ist nämlich der Event den ich brauche.
Allerdings als Information nicht als Error oder sonstiges...

Mit freundlichen Grüßen
L0c4lh0ST
Bitte warten ..
Mitglied: colinardo
09.04.2009 um 14:02 Uhr
Zitat von L0c4lh0sT:
Noch besser wäre es wohl nurnoch nach event id 4201 zu gehen.

welche EventSource bzw. Quelle meinst du ? -- damit es eindeutig zugeordnet werden kann !
Dann muss das noch in die WQL Query mit eingebaut werden

01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:" _ 
03.
    & "{impersonationLevel=impersonate, (Security)}!\\" & _ 
04.
        strComputer & "\root\cimv2") 
05.
 
06.
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _     
07.
    ("Select * from __instancecreationevent where " _ 
08.
        & "TargetInstance isa 'Win32_NTLogEvent' " _ 
09.
            & "and TargetInstance.EventCode = '4201' ") 
10.
 
11.
Do 
12.
    Set objLatestEvent = colMonitoredEvents.NextEvent 
13.
     WScript.Echo objLatestEvent.TargetInstance.SourceName 
14.
Loop
Bitte warten ..
Mitglied: L0c4lh0sT
05.05.2009 um 08:40 Uhr
Wow das hat super geklappt! Bin wirklich begeistert!

Jetzt muss ich nur noch mein anderes Script einbinden! Wunderbar!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

VB for Applications
Powershell Script aus VBA heraus ausführen (2)

Frage von mcnico1978 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...