Manchmal müssen wir Programme auf dem Windows-System unter Linux remote ausführen. Methode 1: Über das WinRM-Modul in Python besteht die Voraussetzung darin, den WinRM-Dienst im Voraus einzurichten. Bitte suchen Sie bei Baidu nach Informationen zur Einrichtung. Der winRM-Dienst ist der Remoteverwaltungsdienst von PowerShell unter Windows Server. Das Python-Skript bedient die Windows-Befehlszeile, indem es eine Verbindung zum WinRM-Modul herstellt. WinRM importieren auf def cmd_views(ip,cmd_comand): win = winrm.Session('http://'+ip+':5985/wsman', auth=('user', 'password'))#Parameter sind Benutzername und Passwort r = win.run_cmd(cmd_comand) # cmd-Befehl ausführen = return r.std_out # Druckt die erhaltenen Informationen ip="xxx.xxx.xx.xx" cmd_comand=r"ipconfig"#Befehl ausführen a=cmd_views(ip, cmd_comand) drucken(cmd_comand) drucken(Typ(a)) drucken(a) Nach meinem Test kann dieses Modul nur einige einfache Befehle ausführen, also die Art von Befehlen, die grundsätzlich unmittelbar nach der Eingabe auf Ergebnisse reagieren können. Wenn Sie auf etwas etwas Komplizierteres stoßen, stürzt der Vorgang ab. Methode 2: Der Vorgang wird über die Telnetlib-Bibliothek in Python ausgeführt. Voraussetzung ist, dass die Telnet-Einstellungen im Windows-System festgelegt sind. 1. Installieren Sie den Telnet-Client und -Server. 2 Konfigurieren Sie die Telnet-Benutzerberechtigungen. Wenn Sie nicht wissen, wie das geht, suchen Sie auf Baidu und richten Sie es selbst ein. # -- Kodierung: utf-8 -- importiere telnetlib, Zeit def telnetlib_views(IP-Adresse, Benutzer, Passwort, Befehlsname): tn = telnetlib.Telnet(IP-Adresse) a=tn.read_until(b'login:') tn.write(Benutzer.encode('ascii') + b'\r\n') tn.read_until(b'Passwort:') Zeit.Schlaf(5) tn.write(Passwort.encode('ascii') + b'\r\n') Zeit.Schlaf(2) tn.write(cmdname.encode('ascii') + b'\r\n') tn.schließen() cmdname=r'ifconfig'#Befehl ausführen telnetlib_views(ipaddress="xxx.xxx.xxx.xxx", user="xxx", password="xxxx",cmdname=cmdname) Warten Sie, bis der Befehlsaufruf abgeschlossen und das Programm beendet ist. Methode 3 Bei Verwendung des WMI-Moduls lässt sich der Defekt nur über Windows-Windows beheben, Linux-Windows funktioniert nicht und Linux-bezogene Module lassen sich nicht installieren. WMI importieren def sys_version(IP-Adresse, Benutzer, Passwort, Befehlsname): conn = wmi.WMI(Computer=IP-Adresse, Benutzer=Benutzer, Passwort=Passwort) versuchen: cmd_callbat = r"cmd /c rufe %s auf" % cmdname print("Der aktuell ausgeführte Bat-Befehl ist:",cmd_callbat) conn.Win32_Process.Erstellen(CommandLine=cmd_callbat) außer Ausnahme als e: drucken(e) cmdname= r"xxx.bat"#Befehl ausführensys_version(ipaddress="xxx.xx.xx.xx", Benutzer="xx", Passwort="xxx",cmdname=cmdname)# Der Befehl wird aufgerufen und das Programm wird ohne Wartezeit beendet. Dies unterscheidet sich von Methode 2. Der Fehler besteht darin, dass die Bibliothek unter Linux nicht installiert werden kann. Das Anwendungsszenario ist praktisch. Jetzt muss ich ein Programm unter Linux ausführen, um eine PDF-Datei auf dem Windows-System auf Linux zu übertragen? # -- Kodierung: utf-8 -- WinRM importieren def job(): # Verbindung herstellen t = winrm.Session("xxx.xx.xx.xx", auth=("xx", "xxx")) # Holen Sie sich den Inhalt von a.pdf r = t.run_cmd(r'type C:\xxx\xxx\Desktop\test\a.pdf') # Konvertieren Sie den Inhalt in einen String s0 = str(r.std_out) # drucken(s0) mit open("c.pdf","wb")als f: f.schreiben(s0) print("Schreiben abgeschlossen") Arbeit() Zusammenfassen Oben ist das Programm (drei Methoden) zur Fernsteuerung des Windows-Systems von Linux aus, das ich Ihnen vorgestellt habe. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Erläuterung der MySQL-Transaktionsauswahl für die Aktualisierung und Datenkonsistenzverarbeitung
>>: Zusammenfassung verschiedener Methoden für Vue zum Erreichen dynamischer Stile
lass Utils = { /** * Ist es das Todesjahr? * @ret...
Vorwort Der Quellcode umfasst insgesamt nur mehr ...
Durch Zufall entdeckte ich, dass eine SQL-Anweisu...
Eine der am häufigsten verwendeten und diskutiert...
Methode 1: Verwenden Sie die erweiterte Suche von...
Der automatische Bildlaufeffekt der Seite kann du...
Inhaltsverzeichnis Funktion „Verfassen“ Array.Pro...
Dieser Artikel dient lediglich der Erinnerung an ...
Hier ist ein einzeiliges Layout mit ul>li für ...
Bereitstellen einer Datenbank basierend auf Docke...
1. Umweltvorbereitung: Betriebssystem: CentOS Lin...
Überspringen Sie die Docker-Installationsschritte...
HTML besteht aus Tags und Attributen, die zusamme...
Personen, die MySQL häufig verwenden, können mit ...
Das Aufkommen von jQuery hat unsere Effizienz bei...