loopy 10 Geschrieben 6. Januar 2004 Melden Geschrieben 6. Januar 2004 Hallo Leute, ich bräuchte mal ein wenig Unterstützung bei der Erstellung eines FTP Scripts. Das Script soll auf verschiedenen Rechnern laufen, eine Verbindung zu einem FTP Server herstellen und dann eine Datei übertragen. Soweit ist es auch nicht kompliziert, so ein Script hab ich schon fertig. Aber was mir noch fehlt in diesem Script ist, dass sich die Nutzer manuell während der Laufzeit des Scriptes anmelden müssen. Ich möchte auf keinen Fall die Benutzernamen und die Passworte der Nutzer in eine Datei schreiben (verstößt gegen unsere Firmen Policies). Kennt jemand eine Funktion oder einen Parameter den ich in der Befehlsdatei des Scriptes benutzen kann, damit es zu einer Abfrage nach Benutzernamen und Passwort kommt? Ich hab schon viele viele Seiten über FTP gelesen aber solch eine Funktion wird einfach nicht beschrieben. Überall steht nur, dass die Abfrage automatisch kommt wenn man kein Usernamen und kein Passwort in der Datei einträgt. Das geht aber leider nicht, das Script übergibt dann immer den nächsten Eintrag aus der Datei als Benutzername und den übernächsten als Passwort. Also wenn jemand da eine zündenden Idee hat die mich da weiterbringt, wäre ich ihm sehr verbunden mir dieses mitzuteilen. Vielen Dank im Vorraus Zitieren
TRFxFrog 10 Geschrieben 6. Januar 2004 Melden Geschrieben 6. Januar 2004 ich bin zwar hier nicht der programmierprofi, aber was wenn du eine pause reinschreibst bzw. eine wenn-dann funktion? Zitieren
Dr_NET 10 Geschrieben 6. Januar 2004 Melden Geschrieben 6. Januar 2004 Hallo! Kleiner Tipp: OPEN ftp.web.com 21 anmeldename passwort BINARY Befehle.. quit Gruß Dr. NET Zitieren
CaIvin 10 Geschrieben 6. Januar 2004 Melden Geschrieben 6. Januar 2004 Original geschrieben von Dr_NET anmeldename passwort Genau das will er ja nicht! Zitieren
varnik 10 Geschrieben 6. Januar 2004 Melden Geschrieben 6. Januar 2004 Hallo, wenn diese Datei für jeden Benutzer dieselbe ist, könnte man einen Benutzer erstellen, der die Rechte nur auf das FTP-Verzeichnis und nur auf diese Datei hat. Dessen Anmeldenamen und Passwort könnte man dann im Skript verwenden, ohne dass die Regeln zu verstossen. Gruß Zitieren
loopy 10 Geschrieben 7. Januar 2004 Autor Melden Geschrieben 7. Januar 2004 @biggi: Genau richtig erkannt, es muß eine wenn-dann Funktion da rein nur wird die nirgends beschrieben. @Dr_NET: Das Script ist schon fertig (steht auch in meinem ersten Text) nur soll da auf keinen Fall ein Benutzername und das Passwort rein. @CaIvin: Stimmt ;-) @varnik: Leider geht das nicht. Erstens ist unser FTP Server ein Unix System (IBM RS/6000 - F50) und zweitens wandern die vorbereiteten Dateien in das jeweilige Nutzerverzeichnis da sonst die Daten ja ständig überschrieben werden würden da ja alle Nutzer diese Datei erzeugen und das öfters am Tag. So langsam kommt mir der Verdacht, dass diese Funktion garnicht unterstützt wird, was ansich nicht richtig sein kann. Man muß doch in der Lage sein so ein Vorhaben durchführen zu können. FTP Clients machen das doch auch, wenn ich da nur den Nutzernamen eintrage folgt die Abfrage nach dem Passwort. Auch wenn kein Nutzer und kein Passwort eingetragen werden, wird man während der Anmeldung zur Eingabe dieser aufgefordert. Also muß es FTP doch unterstützen oder? Na vielleicht findet sich ja jemand der doch eine zufriedenstellende Lösung für mich hat. Zitieren
DAU-JONES 10 Geschrieben 12. Februar 2004 Melden Geschrieben 12. Februar 2004 Hallo Leute, hallo loopy! Ich stehe vor einem ähnlichen Problem, bei dem ich via Script (Am besten wäre aus meiner Sicht der WSH dafür geeignet) mehre Dateien aus einem FTP Verzeichnis auf ein Usershare verschieben muss, wenn eine bestimmte datei mit dem Namen "ok.txt" vorhanden ist. Prinzipiell habe ich schon alle nötigen Bedingungen und Schleifen in einem VB-Script definiert. Das einzige was mir derzeit noch fehlt ist die Syntax bzw. eine Funktion um die Dateien via FTP zu transferieren bzw sich überhaupt erstmal über FTP mit der Freigabe zu verbinden.. Das Problem mit der anmeldung lässt sich via VBS sehr einfach umschiffen, da man via Inputbox mit dem User interagiert. Dies gilt zumindest dann, wenn man von einer Windowsmaschine aus auf das FTP-Verzeichnis zugreifen möchte. z.B. Anmeldename = inputbox("Bitte geben sie einen Benutzernamen an") Passwort = inputbox("Bitte das passwort eingeben") Hilfreich wäre für mich also lediglich ein Hinweis, mit welchem Objekt ich auf ein FTP Share mittels VBS zugreifen kann. Hat da jemand eine Idee?Ich muss dort sowohl die Dateinamen lesen und auswerten als auch den Transfer starten können. Zitieren
DAU-JONES 10 Geschrieben 4. Mai 2006 Melden Geschrieben 4. Mai 2006 Lieber ein bisschen spät als nie :) Hier findet Ihr nun Quellcode zu einem Script, welches Euch die Möglichkeit gibt einen FTP Transfer durchzuführen. Mit Screnc.exe lässt es sich codieren, damit die Anmeldung und Pfadnamen nicht im Klartext lessbar sind. Ab **Start Encode** wird codiert. '**Start Encode** Const cDOM = "MeinFTPSERVER" '= FTP Server Const cDIR = "/usr/TEST/TEST/TEST/TEST" '= FTP Verzeichnis Const cFOL = "\\MeinServer\MeinShare" 'Pfad zur Dateiablage 'Auflistung von Dateien die übertragen werden sollen FileCollect = "txt.ok\chabst.txt\grpbez.txt\kunaufb.txt\kunkon.txt\lagbst.txt\liekon.txt\lmssts.txt\matbew.txt\matmeh.txt\matpln.txt\matstm.txt\mbew.txt\probst.txt\kunstm.txt\" ' Unbedingt den String mit einem Backslash beenden und die verschiedenen Dateien mit selbigen trennen Dim Message ueb = "FTP Transfer Script" MsgBox "Dieses Skript kopiert automatisch Ihre erforderlichen Text-Dateien" & vbCrLf & "in das vordefinierte Verzeichnis!" _ & vbCrLf & vbCrLf & "Dieser Vorgang kann mehrere Minuten dauern!" & vbCrLf & "Bitte schalten Sie in dieser Zeit den Rechner nicht aus!" & vbCrLf & "Sobald der Vorgang abgeschlossen ist erhalten sie eine Meldung." & vbCrLf & vbCrLf & vbCrLf & Chr(169)&",,ueb For i = 1 to Len(Filecollect) If Mid(FileCollect,i,1) = "\" then Call doFTP(Mid(Filecollect,1,i-1),"get ") If err = 0 then Message = Message & (Mid(Filecollect,1,i-1)) & vbCrLf Call doFTP(Mid(Filecollect,1,i-1),"delete ") End If Filecollect = Mid(FileCollect,i+1) i = 1 End If Next MsgBox("Folgende Dateien wurden verschoben:" & vbCrLf & vbCrLf & Message ) 'Aufruf der Subroutine mit Parameterübergabe des Dateinamens '* 1) Erstellt "ftp_get.ftp" zum download einer Datei. '* 2) Löscht "ftp_get.ftp" nach dem Download. Sub doFTP(cFil, strCOM) '* '* Deklaration von Konstanten '* Const cVBS = "ftp_get.vbs" Const cFTP = "ftp_get.ftp" Const cUSR = "Username" '= FTP Username Const cPWD = "passwort" '= FTP Passwort Const cWSS = "%comspec% /C " '= FTP Aüsführen '* '* Erstellung des Inhaltes der FTP-Befehlsdatei '* Dim strFTP strFTP = cFOL & cFTP Dim strOTF strOTF = "open " & cDOM & vbCrLf strOTF = strOTF & cUSR & vbCrLf strOTF = strOTF & cPWD & vbCrLf strOTF = strOTF & "hash" & vbCrLf strOTF = strOTF & "ascii" & vbCrLf strOTF = strOTF & "cd " & cDIR & vbCrLf strOTF = strOTF & strCOM & Chr(34) & cFIL & Chr(34) & " " & Chr(34) & cFOL & cFIL & Chr(34) & vbCrLf strOTF = strOTF & "close" & vbCrLf strOTF = strOTF & "bye" & vbCrLf Message = Message & strFTP & vbCrLf & strOTF & vbCrLf '* '* Löschen einer eventuell noch vorhandenen .ftp '* Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") '* If objFSO.FileExists(strFTP) Then objFSO.DeleteFile(strFTP) If objFSO.FileExists(strFTP) Then MsgBox "'" & strFTP & "' still exists!",vbExclamation,cVBS exit Sub End If '* '* erstellen einer .ftp '* Dim objOTF Set objOTF = objFSO.OpenTextFile(strFTP,2,true) objOTF.WriteLine(strOTF) objOTF.Close() Set objOTF = Nothing '* '* FTP Transfer starten '* Dim objWSS Set objWSS = CreateObject("WScript.Shell") objWSS.Run cWSS & " ftp -i -s:" & strFTP,2,True Set objWSS = Nothing '* If objFSO.FileExists(strFTP) Then objFSO.DeleteFile(strFTP) If objFSO.FileExists(strFTP) Then MsgBox "'" & strFTP & "' still exists!!",vbExclamation,cVBS Exit Sub End If '* Set objFSO = Nothing End Sub Zitieren
Lian 2.539 Geschrieben 4. Mai 2006 Melden Geschrieben 4. Mai 2006 Danke für das feedback Hier gibt es den Script Encoder: http://www.microsoft.com/downloads/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en Zitieren
Das Urmel 10 Geschrieben 4. Mai 2006 Melden Geschrieben 4. Mai 2006 den Link / Code zum Decoder sollte ich nun wohl unterdrücken :) Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.