Wie eine Verbindung zu einem entfernten Windows-Computer zum ausführen von Befehlen, die mit python?
Ich bin neu in Python und ich bin versucht, ein Skript erstellen, das eine Verbindung zu einem entfernten windows-Computer und führen Sie Befehle und ports testen der Konnektivität.
Hier ist der code, den ich Schreibe, aber es funktioniert nicht. Im Grunde genommen, ich will und es gibt mit dem lokalen Rechner Daten, nicht auf der Fernbedienung ein.
import wmi
import os
import subprocess
import re
import socket, sys
def main():
host="remotemachine"
username="adminaam"
password="passpass!"
server =connects(host, username, password)
s = socket.socket()
s.settimeout(5)
print server.run_remote('hostname')
class connects:
def __init__(self, host, username, password, s = socket.socket()):
self.host=host
self.username=username
self.password=password
self.s=s
try:
self.connection= wmi.WMI(self.host, user=self.username, password=self.password)
self.s.connect(('10.10.10.3', 25))
print "Connection established"
except:
print "Could not connect to machine"
def run_remote(self, cmd, async=False, minimized=True):
call=subprocess.check_output(cmd, shell=True,stderr=subprocess.STDOUT )
print call
main()
- alle Anregungen, Jungs.. ? ? bitte um Hilfe
- Es ist wichtig, um das Präfix der Domäne vor den Benutzernamen. Zum Beispiel
username = r"EUR\adminaam"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verbinden, können Sie einem computer zu einem anderen computer in einem Netzwerk durch die Verwendung dieser zwei Methoden:
WMI
Hier ist das Beispiel für die Verbindung mit wmi-Modul:
netuse
Die zweite Methode ist die Verwendung von netuse-Modul.
Durch Netuse, können Sie eine Verbindung zu remote-computer. Und Sie können auf alle Daten des remote-Computers. Es ist möglich in den folgenden zwei Möglichkeiten:
Verbindung virtuelle Verbindung.
Trennen:
Mount remote-computer-Laufwerk auf dem lokalen system.
Abmelden, remote-computer-Laufwerk im lokalen system:
Quelle: Verbinden remote-system.
Vielleicht können Sie SSH verwenden, um eine Verbindung zu einem remote-server.
FreeSSHd installieren auf Ihrem windows-server.
SSH-Client-Verbindung Code:
Ausführung Befehls-und feedback erhalten:
Können Sie
pywinrm
- Bibliothek statt, die cross-Plattform-kompatibel.Ist hier ein einfaches code-Beispiel:
Bibliothek installieren über:
pip install pywinrm requests_kerberos
.Hier ist ein weiteres Beispiel aus auf dieser Seite zum ausführen von Powershell-Skript auf einem remote-host:
Zur Verbindung
Befehle
Ich weiß nicht, WMI, aber wenn Sie möchten, eine einfache Server/Client,
Sie können mit diesem einfachen code aus tutorialspoint
Server:
Client
es haben auch alle benötigten Informationen für eine einfache client/server-Anwendungen.
Umwandeln, nur der server, und verwenden Sie einige einfache Protokoll zum Aufruf einer Funktion aus python.
P. S: ich bin sicher, es gibt eine Menge besserer Möglichkeiten, es ist nur eine einfache, wenn Sie wollen...
Ich persönlich fand
pywinrm
- Bibliothek sehr effektiv. Es erfordert aber einige Befehle auf dem Computer ausführen, und einige weitere Einstellungen, bevor es funktionieren wird.den client-Maschinen python geladen? wenn dem so ist, mache ich dies mit psexec
Auf meinem lokalen Rechner, ich benutze Teilprozess in meine .py-Datei zum aufrufen einer Befehls-Zeile.
den -c kopiert die Datei auf den server, so kann ich führen Sie eine beliebige ausführbare Datei (die in deinem Fall sein könnte .bat full der Verbindung testet oder Ihre .py Datei von oben).
ist es zu spät?
Ich persönlich Stimme mit Beatrice Len, die ich verwendet, paramiko vielleicht ist ein extra Schritt für windows, aber ich habe ein Beispiel Projekt git-hub, fühlen Sie sich frei, zu Klonen oder Fragen Sie mich.
https://github.com/davcastroruiz/django-ssh-monitor