Name des angemeldeten Benutzers ueber WMI ermitteln
Verfasst: Montag 8. Juni 2009, 11:35
Hallo zusammen!
Bei meinem Python Projekt soll in der GUI der volle Name des aktuell am System angemeldeten Beutzers angezeigt werden. Wird das Programm nicht unter Windows ausgeführt, soll der Benutzernamen angezeigt werden.
Die Ermittlung des Names funktioniert momentan mit folgendem Code:
Da sich das der Rechner jedoch in einem sehr großen Firmennetzwerk befindet, benötigt die Iteration über die Elemente von "colItems" sehr lange aber auf Grund mangelnder Erfahrung mit WMI komme ich leider auf keine andere Möglichkeit!
Um die Iteration zu umgehen, habe ich anstatt
auch schon
versucht, aber leider ohne Erfolg.
Kann mir vielleicht einer von euch weiterhelfen?
Gruß,
Simon[/code]
Bei meinem Python Projekt soll in der GUI der volle Name des aktuell am System angemeldeten Beutzers angezeigt werden. Wird das Programm nicht unter Windows ausgeführt, soll der Benutzernamen angezeigt werden.
Die Ermittlung des Names funktioniert momentan mit folgendem Code:
Code: Alles auswählen
import win32com.client
import getpass
self.__Benutzername = getpass.getuser()
if sys.platform == 'win32':
objWMIService = win32com.client.Dispatch('WbemScripting.SWbemLocator')
objSWbemServices = objWMIService.ConnectServer('.','root\cimv2')
colItems = objSWbemServices.ExecQuery('Select * from Win32_UserAccount')
for objItem in colItems:
if objItem.Name == self.__Benutzername:
self.__Name = objItem.FullName
else:
self.__Name = self.__Benutzername
Um die Iteration zu umgehen, habe ich anstatt
Code: Alles auswählen
colItems = objSWbemServices.ExecQuery('Select * from Win32_UserAccount')
Code: Alles auswählen
colItems = objSWbemServicess.Get('Win32_UserAccount.Name='Benutzername'')
Kann mir vielleicht einer von euch weiterhelfen?
Gruß,
Simon[/code]