Wie kann ich auf ein Remote-Dateisystem mit Python unter Windows zugreifen?

Ich schreibe ein Python-Skript, um auf alle Computer im Netzwerk zuzugreifen, sich bei ihnen einzuloggen und einige Log-Dateien zu lesen. Ich möchte nicht so etwas wie Low-Level wie Sockel verwenden , aber ich kann, wenn ich muss. Ich merke, dass mein Problem dieser Frage ähnlich ist, aber nicht das gleiche.

Gibt es Module für den Zugriff auf externe Windows-Rechner? Hat jemand so etwas schon gemacht?

Ich bin speziell auf der Suche nach Windows 7 Maschinen, nicht unix.

Nehmen wir auch an, dass jeder Computer, den ich einloggen möchte, Remotedesktop installiert und aktiviert hat. Ich bin auch nicht besorgt über Netzwerksicherheit oder Verschlüsselung, weil diese Dateien nicht vertraulich sind. Windows-Rechner haben nicht SSH auf der standardmäßig installiert?

  • Python: Navigieren Sie zum Portable-Geräte-Verzeichnis (Windows 7)
  • Wie kann ich Pythons csv.DictWriter.writerows vom Hinzufügen von leeren Zeilen zwischen Zeilen in Windows stoppen?
  • Abgestürzte Ausgabe mit Python-Flasche 0,12.8 als CGI-Anwendung unter Windows auf einem Apache-Server
  • Multiprocessing in der IPython-Konsole auf der Windows-Maschine - wenn __name_-Anforderung
  • Wie benutzt man "/" (Verzeichnistrennzeichen) in Linux und Windows?
  • Windows Tensorflow mit Python nicht in der Lage, mnist Daten aufgrund von Berechtigungen zu lesen
  • Python 3.4, Windows 10 und kann vcvarsall.bat nicht finden
  • Laufen von Windows-Shell-Befehlen mit Python
  • 3 Solutions collect form web for “Wie kann ich auf ein Remote-Dateisystem mit Python unter Windows zugreifen?”

    Es muss etwas auf der anderen Seite geben, damit du reden kannst. Dies beschränkt Sie darauf, entweder einen "Server" auf jeder Maschine einzurichten, einen echten Server (dh sshd) zu installieren, einen "Server" selbst zu erstellen und zu installieren oder eine eingebaute und aktive Funktion des Betriebssystems zu verwenden.

    Auf dieser Grundlage, welche Art von System wollen Sie auf diesen Maschinen? Was muss es tun? Lesen Sie einfach den Inhalt einer vorgegebenen Dateiliste? Wird diese Liste ändern?

    • Eine Lösung ist, um telnet einzuschalten, und verwenden Sie paramiko oder verdreht, um darüber zu sprechen. Das ist natürlich nicht sicher
    • Als nächstes rufe eine Samba-Freigabe ein und greife auf den Ordner zu. Das ist auch unsicher, wenn auch weniger als telnet
    • Sie könnten einen Ssh-Daemon-Port finden und laufen, wenn Sie so geneigt sind
    • Psexec von sysinternals könnte funktionieren
    • Verwenden Sie Twisted, um eine Server-App mit den Funktionen zu bauen, die Sie benötigen
    • Verwenden Sie ncat, um auf einen Port zu hören und eine cmd-Eingabeaufforderung zu erzeugen

    Seien Sie sich bewusst, dass die meisten Lösungen für den Zugriff auf Windows fern sind … schlecht. Die beste Lösung ist wahrscheinlich, um Ihre eigenen zu rollen, aber das ist harte Arbeit und Sie werden wahrscheinlich Fehler machen.

    Auch Windows 7 ist nicht gerade mehrbenutzerfreundlich. Einzelne Prozesse können als separate Benutzer laufen, aber das Betriebssystem unterstützt nicht, dass mehrere Benutzer gleichzeitig angemeldet sind. Jemand wird der "User" sein und alle anderen sind nur ein Prozess mit einem anderen Credential Set.

    Dies ist eher eine künstliche Begrenzung auf M $ 's Teil als alles technische. Um dies in Aktion zu sehen, versuchen Sie, sich mit RDP anzumelden, während ein Benutzer lokal angemeldet ist. Spaß mal.

    Pro Ihre Bearbeitung, die einfachste Sache zu tun ist nur eine Samba-Aktie auf der Box.

    Nachdem dieser Anteil aufgebaut ist:

    with open(r'\\myCompNameOrIP\C\windows\logs\logfile.txt','rb') as logfile: loglines = logfile.readlines() 

    Oder du kannst das hier gefundene Gencat- Beispiel verwenden. Geben Sie es einfach r'\\myCompNameOrIP\C\windows\logs\*.txt' als Suchpfad und beobachten Sie die Magie.

    Von Ubuntu verwende ich Samba:

    In Bash: gvfs-mount smb: // sie / Ordner

    Hier gebe ich Namen, Domain und Passwort

    Dann in Python:

     folder = '/home/me/.gvfs/folder on them' 

    Mit dem os-Modul lese ich Ordner und Dateien im Inneren.

    Ich arbeite in einem kleinen Geschäftsumfeld.

    Warum nicht jeder der Computer die Protokolldatei an den zentralen Rechner senden?

    Python ist die beste Programmiersprache der Welt.