Ich schreibe einen Code in Python, in dem ich den Internetverkehr nach Software-Namen bekommen muss. Es wird von mir verlangt, den cmd-Befehl netstat -nb
zu verwenden, Befehl, der eine Erhöhung erfordert. Ich muss es einfach halten, etwas aus einer Zeile oder so, keine langen Batch- oder Powershell-Skripte. Es ist vorzuziehen, wenn ich nur die Subprozess-Python-Bibliothek verwende.Powershell und Python - Wie führe ich einen Befehl als Admin
Ich habe zwei Zeilen Code bekam, die auf halbem Weg von Arbeit, was ich brauche:
subprocess.check_output('powershell Start-Process netstat -ArgumentList "-nb" -Verb "runAs"', stdout=subprocess.PIPE, shell=True)
Das Problem in diesem ist, dass sich ein neues Fenster es geöffnet und alle Daten, die ich brauche verloren. Vielleicht gibt es eine Möglichkeit, ein anderes Fenster nicht zu öffnen oder die Ausgabe aus dem neuen Fenster zu speichern?
subprocess.check_output('powershell Invoke-Command {cmd.exe -ArgumentList "/c netstat -nb"}', stdout=subprocess.PIPE, shell=True)
Dies ich die Ausgabe im selben Fenster habe, aber ich habe keine Höhen so ich gibt es keine Ergebnisse erhalten ... Vielleicht eine Art Erhebung des Erhaltens, ohne ein neues Fenster zu öffnen oder so ?
Vielen Dank für Ihre Hilfe, hoffe meine Frage war klar genug.
Warum verwenden Sie Powershell, wenn Sie nur diese Befehle direkt aufrufen können? – TheIncorrigible1
Warum sollte sich Python nicht selbst erhöhen, anstatt PowerShell für Sie zu tun? Weitere Informationen hierzu finden Sie unter [this] (https://stackoverflow.com/a/41930586/3245749). – TheMadTechnician
Haben Sie sich den 'RUNAS' Befehl angesehen? – lit