chuwack
Goto Top

Passwort aus .txt kopieren und mittels sendkeys absetzen.

Bin neu auf dem Gebiet .vbs und benötige etwas Hilfe

Hallo alle zusammen, ich habe ein kleines Problem mit meinem Skript.

Möchte mit meiner .vbs auf ein Netwerk über Telnet zugreifen und dorf einige Befehle absetzen.
Der Zugriff und das Absetzen alle Befehle klappt wunderbar - ein Problem habe ich da aber leider noch.

Das Passwort welches für den Zugang auf das Netzwerk benötigt wird verändert sich täglich. <Was kein Problem ist da dieses mit einem Tool errechnet wird und in einer .txt gespeichert.
Mein Problem ist jetzt wie ich mit sendkeys das Passwort aus dieser .txt "kopiere" um dann wieder über sendkeys "einsetze" und absende.


So wollte ich es lösen.

set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet 192.168.100.1"
WScript.Sleep 3000
Set fso = CreateObject("Scripting.FileSystemObject") << dachte es würde mit fso funktionieren
Set daykey = fso.CreateTextFile("C:\daykey.txt", True)
sh.SendKeys "daykey"&vbcr
WScript.Sleep 3000
sh.SendKeys "switch"&vbcr
WScript.Sleep 12000
sh.SendKeys "quit"&vbcr
WScript.Sleep 200
sh.SendKeys ""&vbcr

Content-Key: 165924

Url: https://administrator.de/contentid/165924

Printed on: April 18, 2024 at 08:04 o'clock

Member: brammer
brammer May 09, 2011 at 18:36:29 (UTC)
Goto Top
Hallo,

zum Thema vbs kann ich dir leider nichts sagen, da gibt es hier eine Handvoll Spezialisten die das beherrschen und sich auch dazu äußern werden.

Nur zum Passwort Handling habe ich ein flaues Gefühl in der Magengegend.
Wenn dein Passwort täglich geändert wird, dann vemrutlich aus Sicherheitsgünden, dieses dann in eine txt Datei zu schreiben und diese von durch vbs auslesen zu lassen führt das gesamte damit verbundene Sicherheitskonzept ad absurdum.
Meiner Meinug nach gehören Passwörter in den Kopf oder in in einen Passwort Safe mit einem Master Key, aber keinesfalls in eine txt Datei.
Sich per Telnet auf einen Router oder Switch zu verbinden widerstrebt mir schon von Grund auf da unverschlüsselt. aber das Passwort dann noch offen rum liegen zu lassen, halte ich für suspekt und sollte überdacht werden.

brammer
Member: chuwack
chuwack May 10, 2011 at 02:56:02 (UTC)
Goto Top
Guten Morgen,

dein Gedanke ist richtig. Meine Absicht ist es jedoch zunächst eine funktionierende Basis zu schreiben und diese dann bei Bedarf weiter entwickeln.


Chuwack
Member: bastla
bastla May 12, 2011 at 14:38:37 (UTC)
Goto Top
Hallo chuwack, hallo brammer!

Obwohl ich eigentlich nur brammers Argumentation nachvollziehen (und unterstützen) kann: Um ein "Enter" per "SendKeys" zu realisieren, müsste das so aussehen:
sh.SendKeys "daykey~"
Siehe dazu: http://msdn.microsoft.com/en-us/library/8c6yea83%28v=vs.85%29.aspx

Grüße
bastla
Member: chuwack
chuwack May 12, 2011 at 15:04:47 (UTC)
Goto Top
Das Problem ist dass "er" mir nicht das Passwort aus der .txt sondern einfach nur "daykey" abschickt.
Member: bastla
bastla May 12, 2011 at 15:12:42 (UTC)
Goto Top
Hallo chuwack!

Sorry, hatte nur oberflächlich gelesen ...

Dann eher so:
daykey = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\daykey.txt").ReadLine  
sh.SendKeys daykey & "~"  
Grüße
bastla
Member: chuwack
chuwack May 13, 2011 at 08:02:14 (UTC)
Goto Top
Guten Morgen Bastla,

vielen Dank für deine Hilfe - es scheint schon in die richtige Richtung zu gehen aber einen Fehler wirft mit der WSHost noch raus:


Skript: C:\admin\...\....\meine.vbs
Zeile: 6
Zeichen: 1
Fehler: Objekt erforderlich: '[string. "currentkey"]'
Code: 800A01A8
Quelle: Laufzeitfehler in Microsoft VBScript


Liegt dies vll. daran das ich bei SendKeys nicht einfach "daykey" schreiben darf sonder das was vom Netzwerk kommt - in dem Fall "Enter password>" ?
Member: bastla
bastla May 13, 2011 at 08:09:57 (UTC)
Goto Top
Hallo chuwack!

Einen Fehler in einer mir unbekannten Zeile zu interpretieren ist etwas schwierig ... face-wink
Liegt dies vll. daran das ich bei SendKeys nicht einfach "daykey" schreiben darf sonder das was vom Netzwerk kommt - in dem Fall "Enter password>" ?
"SendKeys" macht das, was der Name sagt - "Tastendrücke senden"; was im Zielfenster wo steht, ist dabei irrelevant ...

Grüße
bastla

P.S.: Da Du ja sicherlich noch etwas Code posten möchtest:
Member: chuwack
chuwack May 23, 2011 at 07:50:45 (UTC)
Goto Top
Guten Morgen Bastal,

...muss mich erstmal dafür entschuldigen, dass ich mich eine längere Zeit nicht melden konnte, war beruflich im Ausland und hatte für mein Hobby/Vorhaben leider nicht die richtige Zeit.


zu meinem Code:

 
set sh=WScript.CreateObject("WScript.Shell")  
WScript.Sleep 200
sh.run "Telnet 192.168.100.1"  
WScript.Sleep 3000
Set daykey = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Dokumente und Einstellungen\hup\Desktop\back\hobby\daykey.txt").ReadLine   
sh.SendKeys daykey & "~"  
WScript.Sleep 3000
sh.SendKeys ""&vbcr  


 
FAULT > Windows Script Host 
Skript: C:\...\...\....\meine.vbs
Zeile: 4
Zeichen: 1
Fehler: Objekt erforderlich: '[string. "currentkey"]'  
Code: 800A01A8
Quelle: Laufzeitfehler in Microsoft VBScript



Wie gesagt der kleine Erfolg ist schon zu vollziehen - Key wird gefunden.
Member: bastla
bastla May 23, 2011 at 14:02:44 (UTC)
Goto Top
Hallo chuwack!

Ich sehe leider nicht, wie ich den in der Fehlermeldung erwähnten Wert "currentkey" Deinem geposteten Script zuordnen sollte ...

Grüße
bastla
Member: chuwack
chuwack May 23, 2011 at 14:39:29 (UTC)
Goto Top
Hey,

der "currentkey" ist nur ein Beispiel für den Inhalt der "daykey.txt". Currentkey wäre jetzt das heutige Passwort welches aus der daykey.txt herausgelesen wurde.... bloß was will er jetzt mit dem string.


Viele Grüße
Member: bastla
bastla May 23, 2011 at 15:36:25 (UTC)
Goto Top
Hallo chuwack!

Wenn schon die Datei "daykey.txt" gelesen wurde, kann der Fehler aber nicht aus der geposteten Zeile 4 kommen - abgesehen davon, dass Du an den Anfang der Zeile 6 ein "Set" (das dort definitiv nicht hingehört) gesetzt hast ...

Grüße
bastla
Member: chuwack
chuwack May 25, 2011 at 07:24:43 (UTC)
Goto Top
Guten Morgen!

Habe gestern den Code nochmals korrigiert, >set< entfernt und siehe da, alles funktioniert.


Vielen Dank für die Unterstützung, sehr kompetente und wissende Mitglieder hier im Forum!


Final....

set sh=WScript.CreateObject("WScript.Shell")   
WScript.Sleep 200 
sh.run "Telnet 192.168.100.1"   
WScript.Sleep 3000 
daykey = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Dokumente und Einstellungen\hup\Desktop\back\hobby\daykey.txt").ReadLine    
sh.SendKeys daykey & "~"   
WScript.Sleep 3000 
sh.SendKeys ""&vbcr  


best regards
chuwack