os.system Frage zu Command Line Befehl "query user"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

Hallo,

ich würde gerne von Remote aus schauen, welche Benutzer an welchen PC angemeldet sind.

Bisher kannte ich os.system daher, dass ich damit normale Command Line Befehle abschicken kann. (z.B. os.system("ping XY"))

Jetzt wollte ich das gleiche mit dem befehl "query user" machen, aber ich bekomme nur die Meldung "Der Befehl "query" ist entweder falsch geschrieben oder konnte nicht gefunden werden."

Weiß hier jemand etwas genaueres ?

Grüße
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Geht der Befehl denn von der Kommandozeile aus? Falls nicht, dann hast du offenbar das zugehörige Programm nicht korrekt oder überhaupt nicht installiert.

Bei mir (Windows 10) ist es zum Beispiel nicht automatisch dabei.
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

snafu hat geschrieben:Geht der Befehl denn von der Kommandozeile aus? Falls nicht, dann hast du offenbar das zugehörige Programm nicht korrekt oder überhaupt nicht installiert.

Bei mir (Windows 10) ist es zum Beispiel nicht automatisch dabei.
In der Kommandozeile von Windows 10 aus alles prima. Funktioniert.
lordzwieback
User
Beiträge: 55
Registriert: Montag 2. März 2015, 14:35
Kontaktdaten:

Ich habe mittlerweile eine Lösung gefunden. Falls jemand das gleiche Problem haben sollte, probiert statt:

Code: Alles auswählen

import os

test = os.system("query user")
das hier:

Code: Alles auswählen

import os

test = os.system(r"C:\Windows\Sysnative\query.exe user")
So funktioniert zwar der Befehl, aber liefert keine brauchbaren Rückgabewerte. Will man den String auswerten, der später in der Console steht, macht man folgendes:

Code: Alles auswählen

import subprocess

response = subprocess.Popen([r"C:\Windows\Sysnative\query.exe","user"], stdout= subprocess.PIPE).communicate()[0]
In der Variable response sollte nun der String stehen, welcher auch in der Console erscheint.
Antworten