Ich habe das gleiche Python-Skript für verschiedene Benutzer auf meinem PC (Windows 10). Dieses Skript muss den Benutzer abrufen, der tatsächlich angemeldet ist. Beispielsweise funktioniert getpass.getuser()
nicht, da es nur den Benutzer zurückgibt, für den das Python-Skript ausgeführt wird. Wie kann ich das bekommen? Danke für die Hilfe!Python - Holen Sie sich die Sitzung Benutzer
Antwort
Der ganze Sinn der Ausführen als ... ist die Umgebung eines anderen Benutzers so, natürlich zu imitieren, wenn Sie für den Benutzernamen abfragen (die Sie im Wesentlichen erhält den Wert von %USERNAME%
env. Variable) erhalten Sie, der, unter dem Sie das Skript ausführen.
Um den aktuell angemeldeten Benutzer zu erhalten, müssen Sie die aktuelle Sitzung starten, und dazu müssen Sie mindestens WMIC abfragen (oder direkt auf die Win32-API zugreifen). Etwas wie:
import subprocess
def get_session_user():
res = subprocess.check_output(["WMIC", "ComputerSystem", "GET", "UserName"],
universal_newlines=True)
_, username = res.strip().rsplit("\n", 1)
return username.rsplit("\\", 1)
Beachten Sie, dass dies ein Tupel zurück, sowohl die System/Domain des aktuell angemeldeten Benutzer und den Benutzernamen selbst enthalten, so nennen es als:
system, username = get_session_user()
beide Um .
Wenn Sie PyWin32 installiert haben, können Sie auch 'username = win32ts.WTSQuerySessionInformation (None, -1, win32ts.WTSUserName)' verwenden. – eryksun
Oder verwenden Sie ctypes, wenn PyWin32 nicht installiert ist: 'wtsapi32 = ctypes.WinDLL ('wtsapi32', verwenden_letzter_fehler = True);' 'WTSUserName = 5;' 'pbuf = ctypes.c_wchar_p();' 'n = ctypes.c_ulong(); 'success = wtsapi32.WTSQuerySessionInformationW (Keine, -1, WTSUserName, ctypes.byref (pbuf), ctypes.byref (n));' und dann 'falls nicht erfolgreich: raise ctypes.WinError (ctypes.get_last_error ()); 'und schließlich' username = pbuf.value; '' wtsapi32.WTSFreeMemory (pbuf) ' – eryksun
- 1. Holen Sie sich Sitzung in WebSocket-Server
- 2. Holen Sie sich die Sitzung von curl php
- 3. Codeigniter - Holen Sie sich alle Benutzer Sitzungsdaten
- 4. Holen Sie sich aktuelle Windows-Benutzer VB.net
- 5. mysql: Holen Sie sich die letzten Konversationsdatensätze von Benutzer
- 6. Holen Sie sich die aktivsten Benutzer aus einer Tabelle "Aktionen"
- 7. JIRA SOAP API: Holen Sie sich die Liste der Benutzer
- 8. Holen Sie sich die Dateiberechtigungen für den aktuellen Benutzer .net
- 9. Laravel - Holen Sie sich die letzten 5 registrierten Benutzer Attribute
- 10. Holen Sie sich die Laufzeit von Python-Skript
- 11. MYSQL Query - Holen Sie sich die Benutzer, die nicht gleich sind die Benutzer, die ich befolge
- 12. Codeigniter - Holen Sie sich andere Datenbankinformationen und Ort in Sitzung
- 13. Fragen Sie Benutzer Erlaubnis, die Sitzung ablaufen
- 14. Holen Sie sich Benutzer-ID aus der Datenbank
- 15. Python - Holen Sie sich einzigartige Website-Änderungen
- 16. Holen Sie sich aktuelle URL in Python
- 17. python- youtube. Holen Sie sich URL-Videoliste
- 18. Holen Sie sich Timer-Ticks in Python
- 19. Holen Sie sich Python-Klasse von Element
- 20. Woocommerce: Holen Sie sich die aktuelle Produktkategorie
- 21. Holen Sie sich Ihren Standort durch Python
- 22. Holen Sie sich die ec2-Konfigurationsinformationen
- 23. Holen Sie sich Benutzer und füllen Sie alle Berechtigungen
- 24. Holen Sie sich die Spaltennamen eines Python-Numpy-Array
- 25. Holen Sie sich die Liste der MySQL-Datenbanken mit Python
- 26. Holen Sie sich die Seriennummer einer Kamera - Openni2 Python
- 27. Python - Holen Sie sich die Prozess-ID einer Instanz
- 28. Holen Sie sich die einzelnen Zeilen in Python
- 29. Python: Holen Sie sich die Maximalwerte von Wörterbuch
- 30. Python Holen Sie sich die eindeutigen Werte aus einem Wörterbuch
Was meinen Sie, wo der 'Python-Benutzer läuft'? – user1767754
Nein welcher Benutzer tatsächlich angemeldet ist – Frostie