Wie erhalte ich eine Liste von Windows-Sitzungen?

8

Ich versuche, eine Möglichkeit zu finden, eine Liste von Windows-Sitzungen zu erhalten. Ich benötige die gleichen Informationen wie die, die im Task-Manager auf der Registerkarte Benutzer angezeigt werden. Ich muss wissen, ob der Benutzer aktiv ist oder nicht und ob er / sie in der Remotedesktopsitzung angemeldet ist.

Irgendeine Idee, wie man das mit C # / Windows XP Pro macht?

    
Martin 06.07.2009, 17:04
quelle

5 Antworten

4

Ich glaube, Sie müssen P / Invoke verwenden, um diese Informationen abzurufen.

Die relevanten APIs sind in dieser MSDN-Seite dokumentiert.

    
Reed Copsey 06.07.2009, 17:08
quelle
8

Als Ausgangspunkt können Sie eine Liste der angemeldeten Benutzer erhalten, indem Sie den Befehl

ausführen %Vor%

Von der Eingabeaufforderung aus.

Dies gibt eine Ausgabe wie

%Vor%

und listet alle Remote-Sitzungen auf.

    
pjp 06.07.2009 17:10
quelle
5

Verwenden Sie LsaEnumerateLogonSessions über P / Invoke. Sie benötigen auch LsaFreeReturnBuffer , um nach der Aufzählung aufzuräumen.

    
Kevin Montrose 06.07.2009 17:12
quelle
3

Eine andere Möglichkeit besteht darin, das Dienstprogramm Logonsitzungen von Sysinternals zu verwenden:

Ссылка

    
xpmatteo 18.11.2010 13:04
quelle
2

Sie müssen Pinvoke nicht verwenden. WMI tut es, und nun: "Wählen Sie Name, SessionId aus Win32_Process" im Namespace root \ cimv2. Und es kann von einer entfernten Maschine aus aufgerufen werden. Einfacher. Fügen Sie eine Where-Klausel in die Auswahl ein, um eine Feinabstimmung vorzunehmen, was Sie erhalten.

    
JRrelyea 06.10.2015 09:25
quelle

Tags und Links