chkdsk
Goto Top

PC anzeigen, an dem ein User im Moment eingeloggt ist

Hallo Zusammen,

ich hoffe ich kann auch dieses Mal wieder auf eure tatkräftige Unterstützung zählen.
Ich möchte ein Skript schreiben, das mir den PC Namen ausgibt, an dem ein bestimmter Benutzer gerade angemeldet ist.
Hier einmal mein aktueller Versuch, allerdings komme ich gerade nicht wirklich weiter.
Function Get-Username {
$Global:Username = Read-Host "Gebe Benutzernamen ein"  
if ($Username -eq $null){
	Write-Host "Benutzername darf nicht leer sein!"  
	Get-Username}
$UserCheck = Get-ADUser -Filter {'Name -like "*$Username*"'} -SearchBase "OU=ABC,OU=DEF,DC=GHI,DC=JKL"  
if ($UserCheck -eq $null){
	Write-Host "Ungueltiger Benutzername. Bitte ueberpruefen!"  
	Get-Username}
}
get-username
$computers = Get-ADComputer | where {$_.accountisdisabled -eq $false}
foreach ($comp in $computers)
	{
	$Computer = $comp.Name
	$ping = new-object System.Net.NetworkInformation.Ping
  	$Reply = $null
  	$Reply = $ping.send($Computer)
  	if($Reply.status -like 'Success'){  
		#Get explorer.exe processes
		$proc = gwmi win32_process -computer $Computer -Filter "Name = 'explorer.exe'"  
		#Search collection of processes for username
		ForEach ($p in $proc) {
	    	$temp = ($p.GetOwner()).User
	  		if ($temp -eq $Username){
			write-host "$Username is logged on $Computer"  
		}}}}

Content-ID: 466589

Url: https://administrator.de/contentid/466589

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

erikro
erikro 27.06.2019 aktualisiert um 15:49:32 Uhr
Goto Top
Moin,

warum einfach, wenn es auch kompliziert geht. face-wink

1. Schritt: Anmeldeereignisse überwachen.
Dazu richtest Du Dir eine Gruppenrichtlinie ein, die die Rechner veranlasst, Anmeldeereignisse mitzuloggen. Sprich vorher mit Eurem Betriebsrat und dem Datenschutzbeauftragten. Das ist in Deutschland kritisch.

2. Schritt: Rechte einrichten und Fernzugriff zulassen
Das ist etwas umfangreicher. Hier eine Anleitung, wie man Ereignisse weiterleiten kann:
https://www.windowspro.de/wolfgang-sommergut/event-weiterleitung-logs-vo ...
Das Meiste davon muss man auch dann machen, wenn man mit der Powershell zugreifen will.

3. Schritt: Sicherheitslogs durchsuchen

 get-adcomputer -filter * | %{get-eventlog -computername $_.name -message "*adm_eroderwald*"  -logname security -ErrorAction SilentlyContinue | select *}  

Der Filter ist noch zu grob. Da muss noch das aktuelle Datum rein und nach der Event-ID gefiltert werden. Aber das schaffst Du bestimmt. face-wink Die ErrorAction ist dafür da, Fehlermeldungen zu unterdrücken, wenn die Rechner nicht online sind. Zum Testen solltest Du das weglassen. face-wink

hth

Erik
colinardo
colinardo 27.06.2019 aktualisiert um 15:54:34 Uhr
Goto Top
Servus.
Hab ich hier schon mal als PS-Workflow gepostet, der dann gleich auch noch mehr Infos liefert:
An- und Abmelde Ereignisse mit Powershell auslesen

Grüße Uwe
chkdsk
chkdsk 02.07.2019 aktualisiert um 10:53:26 Uhr
Goto Top
Hallo colinardo,

vielen Dank für das Script. Um ehrlich zu sein, sehe ich nicht ganz genau durch.
Ich würde aber gerne die Abfrage auf eine bestimmte OU im AD beschränken. Des Weiteren suche ich PCs, nict Server. Wo genau trage ich die Zeile ein?
-SearchBase "OU=ABC,OU=DEF,DC=GHI,DC=JKL"  

Des Weiteren würde ich gern eine Abfrage einbauen, wo ich den NT-User eingebe und mir dann der PC-Name angezeigt wird.
Kannst du mir da behilflich sein?