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.
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"
}}}}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 466589
Url: https://administrator.de/contentid/466589
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
warum einfach, wenn es auch kompliziert geht.
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
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. Die ErrorAction ist dafür da, Fehlermeldungen zu unterdrücken, wenn die Rechner nicht online sind. Zum Testen solltest Du das weglassen.
hth
Erik
warum einfach, wenn es auch kompliziert geht.
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. Die ErrorAction ist dafür da, Fehlermeldungen zu unterdrücken, wenn die Rechner nicht online sind. Zum Testen solltest Du das weglassen.
hth
Erik
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
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