Kann man mit AutoIt einen Mini FileServer aufbauen?

  • Hallo zusammen, da ich mich erst relativ kurz mit AutoIt beschäftige habe ich keine Ahnung, ob mein Vorhaben innerhalb von AutoIt lösbar ist.

    Mein Vorhaben:
    1 PC (Lehrer-PC) startet ein Programm, welches am Lehrer PC einen kleinen FileServer startet, welcher entweder
    - bis zu 40 Usern (Schülern) gleichzeitig Zugriff auf einen Ordner erlaubt (Austauschordner: alle dürfen alles)
    - oder jeder der Schüler hat nur auf "seinen" Ordner innerhalb des Austauschordner Zugriff.
    desweiteren wird dieses Laufwerk bei den Schülern automatisch als Laufwerk X: im Explorer gemountet.
    Nach der Stunde soll der Server und damit die Freigabe ohne Rückstände in den Systemen beendet werden.

    Zusatzinfo:
    Auf allen PCs ist ein Win XP Prof (SP3 + Updates) installiert.

    Da ich das in einer Testumgebung schon mit Hilfe von AutoIt und Fremdsoftware (FTP-Server, PSEXEC) hinbekommen habe wollte ich (auch um mich noch mehr mit AutoIt zu beschäftigen) nun wissen, ob dies auch ohne Fremdsoftware zu realisieren ist.

    MfG
    ein neugieriger pauker

  • Also lösbar an sich ist es auf jedenfall!
    aber ob du als Anfänger ( darf ich mal so sagen ) das schaffst ist eine andere Frage.

    Nützliche Befehle:

    _TCP oder _UDP Befehle, sowie die ganze File...() Befehle.

    Ich kann dir wenig wieter helfen, da ich selbst das ganze mit _Tcp_Send(), etc. net so gt kann, aber nützlich wären solche Tutorials auf Youtube, musst mal googlen.

    mfg
    Hauke

  • Quatsch, TCP/UDP-Kram kannst du getrost vergessen und stattdessen versuchen, die Freigaben mit Windows-Befehlen zu setzen.
    Ein Anfang könnte der DOS-Befehl "net share" sein, den du mittels

    [autoit]

    Run(@ComSpec & " /k net share")

    [/autoit]

    benutzen kannst.
    Auf den Schüler-PCs kannst du entsprechend net use nutzen, um die Freigabe einzubinden..

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Also mit Windows-Freigaben komme ich denke ich nicht weiter, da bei Win XP Prof max 10 User gleichzeitig darauf zugreifen können. Brauche allerdings bis zu 40 simultane Zugriffe.

    HFS ist wirklich ein sehr schöner (kleiner) Fileserver, allerdings sehe ich immense Schwierigkeiten, die Freigabe bei den Schülern als Laufwerk (z.B. "X:") zu mounten. Ein Austauschlaufwerk habe ich damit schon realisiert, also Lehrer startet Programm -> Server wird gestartet -> bei Schülern wird FF gestartet und automatisch mit Freigabe (auch Userspezifisch) verbunden. Allerdings würde dies im Klassenarbeitsmodus es notwendig machen, dass die Schüler recht häufig die Dateien "uploaden" müssten um Datenverlust zu vermeiden. Eine lokale Speichermöglichkeit existiert nur solange der PC an ist (Wächterkarte...). Absturz -> alle Daten weg

    Also eine unbefriedigende Zwischenlösung, die mich aber immerhin einiges über die Möglichkeiten von AutoIt gelehrt hat :thumbup: .

    Der nächste Schritt von mir war einen Freeware FTP-Server mit AutoIt zu starten und zu "steuern". Also statt HFS den Ftp-Server mit AutoIt generierter Conf zu versehen und zu starten. Mittels PSEXEC beim Schüler das FTP-Verzeichnis als Laufwerk zu mounten ("X:") funktioniert sowohl mit FTPDrive, wie auch Netdrive. Dieser Weg funktioniert genau so wie ich es möchte, allerdings brauche ich dafür einen "externen" FTP-Server (der auch für den Schulbetrieb kostenlos ist), sowie ein "externes Mount-Tool". Was aus lizenztechnischer Sicht sowie meiner persönlichen Neugierde -suboptimal bleibt. :wacko:

    Das es prinzipiell möglich zu sein scheint ist schonmal eine gute Nachricht, obwohl es wieder viel suchen, finden, probieren, fluchen und erneut versuchen bedeuten wird. Aber eigentlich ist genau DAS der eigentliche Spaß! Mal mit der FTPEx.au3 sowie den TCP/UDP Sachen rumschlagen. Falls einer noch Anregungen bzw. Beispiele hat immer her damit, nehme Hilfe gerne an.

    MfG
    pauker

  • Naja soweit ich dass jetzt mitbekommen habe soll das für einen Klassenverband sein , dann habt ihr doch bestimmt auch irgend wo ein WinSrv rumdümpeln.. konfigurier den doch als FTP Server und dann ist doch das Problem gelöst?

    Gruß

  • Mit dieser Lösung hätte ich mein Problem zwar nicht gelöst, aber auf ne andere Art und Weise geschickz umgangen. Allerdings möchte ich eine Klassenraum unabhängige Lösung vom USB-Stick haben. Wir setzen eh den OSS als Server ein, welcher ein Klassenarbeitsmodul enthält. Die Lösung die mir vorschwebt ist ein "Plan B" - OSS platt oder Netzwerk (außerhalb des Klassenraums) platt - Klassenarbeit bzw. Speicherung der Schülerdaten auf dem USB-Stick des Lehrers.

    Teil 2 meines Problems "ich möchte mit AutoIt einen FileServer bauen" bleibt dabei genauso ungelöst, wie beim (schon funktionierendem) Einsatz von Fremdsoftware. Frei nach dem Motto "Der Weg ist das Ziel", habe ich schon relativ viele kleine Teilziele in den letzten 3 Tagen erreicht und meine AutoIt-Kenntnisse von 0 auf 0,01 erhöht. Das nächste Ziel (vorerst ;) ) ist der Bau eines Servers, dann die Erweiterung über eine Benutzer- und Rechteverwaltung und dann mal schaun.
    Eine Raumunabhängige "Softwareverteilung" habe ich schon hinbekommen, also wird der Server auch irgendwann "fallen" :D .
    MfG
    pauker

    PS: Kritik, Hilfe, Tipps und Sonstiges gern gesehen.

  • Wenn ich dich richtig verstanden habe, willst du einen Fileserver aus Spaß programmieren. Das ist sogar ne ziemlich gute Idee ;)

    Theoretisch und praktisch gesehen ist der Umgang mit TCP unter Autoit überhaupt kein Problem. Es ist sehr einfach und übersichtlich(Tutorials findet man genug über google). Schwieriger wird es bei simultanen Zugriffen, da dort in höheren Sprachen meist Multithreading zum Einsatz kommt. Dies ist zwar auch mit Autoit möglich, aber soweit ich weiss ist das alles noch sehr experimentell (also nichts für einen stabillaufenden Server).
    Desweiteren weiss ich nicht, ob die Schüler einen speziellen Client benutzen sollen oder den Windowsexplorer. Ersteres wäre wohl einfacher?
    Man könnte natürlich improvisieren was das Multithreading angeht, aber das endet mit einer Wahrscheinlichkeit von 1:100 im Chaos. Ohne dem Einsatz von Fremdsoftware ist es wirklich schwierig mehrere Clients gleichzeitig zu bedienen. So spontan würde mir da eine ToDo-Liste einfallen, welche laufend erweitert und abgearbeitet wird, sodass man zwischen den Aufgaben wechseln kann.

  • Jop Spaß ist die Triebfeder die Pein der Neugier zu mildern ;)

    Eine ToDo-Liste hört sich sinnvoll und ausreichend an, da die Wahrscheinlichkeit, dass alle Schüler gleichzeitig speichern, im Verlauf der Stunde eher gering und höchstens am Stundenende auftreten könnte und da kann der Lehrer ruhig mal ne Minute oder so warten ;)

    meine kleine Road-Map:
    Step 1: rausfinden wie ich einen Server erstelle
    Step 2: machen - testen - fluchen - besser machen
    Step 3: über browser zugreifen (1 user)
    Step 4: siehe Step 2
    Step 5: mehrere User auf eigene User-Homes (über ini oder so einzulesen)
    Step 6: siehe Step 2
    Step 7: Clientzugriff
    Step 8: siehe Step 2
    Step 9: Windows-Explorer-Zugriff
    Step 10ff: was auch immer noch besser geht besser machen und zur Freude fluchen

    MfG
    Pauker

    PS: Abkürzungen, Reisetipps oder ähnliches gerne an mich

  • Zitat

    PS: Abkürzungen, Reisetipps oder ähnliches gerne an mich


    Normalerweise ist es eine sehr schlechte Idee ohen Ahnung mit einem schwieirgen Projekt anzufangen ;) Zumindest mir fällt es leichter, wenn ich nach und nach kleinere Projekte schreibe um alles zu begreifen.

  • Da haste wahrscheinlich recht, aber ich stelle mich lieber einem großen Problem, zerteile dies in mehrere kleine Probleme, wenn nötig in noch kleinere Probleme und fange die an zu lösen. Dann wird alles wieder zusammengebaut und schwupps (viele Millionen tote Hirnzellen später ;-)) ist das anfängliche Riesen-Problem gelöst und die Langeweile sucht sich das nächste Opfer. Aber jeder tickt da etwas anders, ich liebe es halt laut zu fluchen und der Verzweiflung nahe zu sein. ;)

    MfG
    pauker

  • google Linux Samba #
    Dann hast Du Deine Freigaben ohne win non server typischen restriktionen.
    Und installiert werden kann das vom dressiertemn Affen
    Debian NetInstall

    apt-get update
    apt-get install samba

    vi /etc/samba/smb.conf
    Dann biste Du aus dem gröbsten raus. :P

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o