Unerwartetes Verhalten in VBScript mit SendKeys
Ich versuche, ein VBScript zu erstellen, das von einer geplanten Task ausgeführt werden kann, um die SonicWall-Firewall neu zu starten. Die Firewall ist ein "unteres" Geschäftsmodell (TZ400), und ich muss sie regelmäßig neu starten, da unsere Internetverbindung scheinbar blockiert ist (dies ist ein anderes Problem, das ich später untersuchen muss).
Ich habe den folgenden Code auf einer anderen Website gefunden plink.exe
und für meine Umgebung geändert:
Set sw= CreateObject("WScript.Shell") sw.run"C:\plink\path\Plink.exe -ssh adminuser@X.X.X.X -pw adminpassword" WScript.Sleep 500 sw.SendKeys "restart" sw.SendKeys "" WScript.Sleep 800 sw.SendKeys "yes" sw.SendKeys "" WScript.Sleep 10000 sw.SendKeys "exit" sw.SendKeys ""
Wenn ich dieses Skript ausführte, scheint es leider, dass einige der Zeichen der SendKeys
Methodenaufrufe übersprungen werden. Wenn ich es von meinem Computer (Windows 7) aus laufe, kann ich normalerweise "genug" Zeichen übergeben, um den Vorgang abzuschließen, aber wenn ich versuche, dasselbe Skript auf dem Server auszuführen (Windows Server 2008 R2 - ich habe verbunden durch RDP), geht es völlig durcheinander. In der Abbildung unten sehen Sie ein Beispiel nach einem besonders "falschen" Versuch.
Ich habe versucht, eine Verzögerung zwischen den Befehlen und den entsprechenden Befehlen zu setzen , aber das scheint es nur zu verschlimmern. Ich habe versucht, den Text in Klammern einzufügen, nur für den Fall, dass er etwas mit der Syntax des Methodenaufrufs zu tun hatte, aber das half auch nicht.
Soweit ich das beurteilen kann, scheint es, dass die Eingabeaufforderung SendKeys
aus irgendeinem Grund einfach nicht mit der Methode mithalten kann . Hat jemand anderes dieses Problem erlebt und hat jemand einen Vorschlag, wie er am besten vermieden oder umgangen werden kann? Gibt es beispielsweise eine Möglichkeit, die Ausführung des Skripts auf irgendeine Weise zu verlangsamen? Vielen Dank im Voraus für alle Vorschläge.
BEARBEITEN: Ich konnte das Skript erfolgreich auf dem Server ausführen, indem ich das Skript so veränderte, dass jedes Zeichen separat mit einem Ruhezustand von 100 ms zwischen ihnen gesendet wird:
Set sw= CreateObject("WScript.Shell") sw.run"C:\plink\path\Plink.exe -ssh adminuser@X.X.X.X -pw adminpassword" WScript.Sleep 500 sw.SendKeys "r" WScript.Sleep 100 sw.SendKeys "e" WScript.Sleep 100 sw.SendKeys "s" WScript.Sleep 100 sw.SendKeys "t" WScript.Sleep 100 sw.SendKeys "a" WScript.Sleep 100 sw.SendKeys "r" WScript.Sleep 100 sw.SendKeys "t" WScript.Sleep 100 sw.SendKeys "" WScript.Sleep 800 sw.SendKeys "y" WScript.Sleep 100 sw.SendKeys "e" WScript.Sleep 100 sw.SendKeys "s" WScript.Sleep 100 sw.SendKeys "" WScript.Sleep 10000 sw.SendKeys "e" WScript.Sleep 100 sw.SendKeys "x" WScript.Sleep 100 sw.SendKeys "i" WScript.Sleep 100 sw.SendKeys "t" WScript.Sleep 100 sw.SendKeys "" wScript.quit
Diese Problemumgehung scheint zwar zu funktionieren, scheint jedoch etwas "brutal" zu sein und löst das eigentliche Problem nicht wirklich auf, so dass ich immer noch an Gedanken oder Vorschlägen interessiert bin.
ANMERKUNG: Während ich das VBScript zwar manuell über die Befehlszeile ausführen kann, gibt es immer noch Probleme, wenn es von der geplanten Aufgabe ausgeführt wird. Es scheint zu beginnen und zu enden, aber die Firewall wird nie neu gestartet. Nichtsdestotrotz ... Ich weiß, warum es nicht von der geplanten Aufgabe ausgeführt wird, und ich muss mir ein besseres Skript überlegen, um diese bestimmte Operation auszuführen.
0 Antworten auf die Frage
Verwandte Probleme
-
7
Warum sollte ich Windows Server 2008 R2 Enterprise x64 anstelle von Windows 7 Ultimate x64 nicht aus...
-
1
Wie wird der Fensterinhalt beim Ziehen in Windows Server 2008 R2 angezeigt?
-
7
Erstellen Sie einen großen zusammenhängenden Speicherplatz aus 4 Festplatten
-
2
Ist Forefront Client Security für Win2008R2-basierte Workstation geeignet?
-
4
Hinzufügen von Netzwerkdruckertreibern in Windows 7 / Server 2008 R2?
-
2
Wo deaktiviere ich die ActiveX- und Plugins-Warnung im IE8?
-
1
Windows Server 2008 R2 - Spitzname oder Akronym
-
1
Wie kann ich eine IP-Adresse in einer Excel-Tabelle nachschlagen?
-
3
Text in Word-Dokument zentrieren
-
6
Windows Server 2008 R2 im Vergleich zu Windows 7 Ultimate