---
title: "Hämta alla inloggade användare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/98827-hämta-alla-inloggade-användare"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Qimen"
published: "2004-03-06T00:26:32.000Z"
updated: "2004-03-08T14:58:39.000Z"
replies: 8
views: 370
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/98827-hämta-alla-inloggade-användare"
---

# Hämta alla inloggade användare

## #1 — Qimen, 2004-03-06T00:26Z

Hej

Kan man hämta alla inloggade användare på domänen/viss grupp och loopa ut dem i vb?

Permalänk: https://www.webforum.nu/p/98827

## #2 — OveRRidE, 2004-03-06T02:49Z

ADSI bprde vara svaret. Huruvida man kan hämta vilka som är *inloggade* dock, det låter jag vara osagt.

Permalänk: https://www.webforum.nu/p/1293215

## #3 — niko, 2004-03-07T12:21Z

Den [här](http://vbnet.mvps.org/index.html?code/network/netwkstauserenum.htm) koden listar alla som är *interaktivt* inloggade på en viss maskin. Att lista alla som är påloggade på domänen i ett givet ögonblick är  nog värre eftersom jag misstänker att det inte är helt entydigt vad det betyder. (Men jag kan ha fel.)

Permalänk: https://www.webforum.nu/p/1293662

## #4 — Qimen, 2004-03-07T14:29Z

En på min skola har gjort ett program som listar alla som är inloggade, vilken dator samt namn på den inloggade. Jag hade tänkt försöka ordna en liknande funktion till mitt program. Men det kanske inte går att göra i vb?

Permalänk: https://www.webforum.nu/p/1293687

## #5 — niko, 2004-03-07T18:13Z

> Men det kanske inte går att göra i vb?

Jo, går det att göra i Windows så går det väl att göra i VB. Fast det är fortfarande inte riktigt glasklart vad "inloggad" exakt betyder:

En person går fram till en dator. Han trycker ctrl-alt-del och loggar in som "Pelle". Inloggad som Pelle dubbleklickar han sen på en nätverksresurs. Inloggingsrutan kommer upp. Där loggar han in som "Kalle". Därefter drar han igång en Telnet-session mot en server och loggar in som "Nisse". Är nu "Pelle", "Kalle" och "Nisse" alla inloggade på domänen? 

Eller för att göra det enkelt: Vad är det du vill lista? Alla som är *interaktivt* inloggade (dvs äger en desktop)? Eller alla som på nåt sätt verifierat sig mot DC:en?

Permalänk: https://www.webforum.nu/p/1293749

## #6 — Qimen, 2004-03-07T21:52Z

Alla elver, lärare osv har ju ett eget användarkonto. Man loggar in på domänen med det och får sin mapp ansluten till en enhet osv. Men som i det programmet jag tittat på så syns det även om en användare är inloggad på flera datorer. Så jag är väl ute efter vilka som är interaktivt inloggade?

Permalänk: https://www.webforum.nu/p/1293883

## #7 — niko, 2004-03-08T09:00Z

> If you specify a user name instead of a computer, PsLoggedOn searches the computers in the network neighborhood and tells you if the user is currently logged on. Full source code is included.

[PsLoggedOn](http://www.sysinternals.com/ntw2k/freeware/psloggedon.shtml)

En lista med alla "user names" i domänen kan man sen lätt få fram med ADSI: <http://www.serverwatch.com/tutorials/article.php/1476791>

Det enda kruxet är att källkoden till PsLoggedOn är i C++ så antingen får du porta eller på nåt sätt köra själva exe:n inifrån ditt VB-program.

/red:
Lite fulhackad vbs-kod som bygger på att psloggedon.exe finns i pathen eller samma katalog som vbs-scriptet:

```
sDomain 	= "dittdomännamn"
Set oDomain 	= GetObject("WinNT://" & sDomain)
oDomain.Filter 	= Array("User")
Set WshShell = CreateObject("WScript.Shell")
For Each oADobject In oDomain
	Set oExec = WshShell.Exec("cmd /C  psloggedon.exe " & oADobject.Name)
	sOut = ""
	Do While True
     	If Not oExec.StdOut.AtEndOfStream Then
       		sOut = sOut & oExec.StdOut.Read(1)
     	Else
        		Exit Do
     	End If
	Loop
	sOut=split(sOut, "...")
	sResult = sResult &  sOut(2)
Next
WScript.Echo sResult
```

Permalänk: https://www.webforum.nu/p/1294011

## #8 — Qimen, 2004-03-08T14:39Z

Tack niko.
Ska titta mer på detta. :)

Permalänk: https://www.webforum.nu/p/1294190

## #9 — niko, 2004-03-08T14:58Z

OK.

Min kod var nog lite buggig. Du kan ändra till:

```
	'sOut=split(sOut, "...")
	sResult = sResult &  sOut
```

För att få all data rått till att börja med.

Sitter du sen på en domän (vilket jag inte gör just nu) så kan du nog göra det enklare för dig och skippa hela den yttre loopen och använda d-switchen i psloggedon:

> Usage: psloggedon \[-l\] \[-d domain\] \[-x\] \[\\\\computername\]
>     or psloggedon \[username\]
> \-l     Show only local logons
> \-d     **Search the specified domain**
> \-x     Don't show logon times

Permalänk: https://www.webforum.nu/p/1294203

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/98827-hämta-alla-inloggade-användare
