So erstellen und exportieren Sie einen Bericht mit allen angemeldeten Benutzern

Administratoren müssen öfter wissen, welche Benutzer momentan angemeldet sind. Diese Informationen lassen sich auch mit Windows-PowerShell-Skripten abrufen. Allerdings muss dazu ein Skript geschrieben und jedes Mal an den jeweiligen Bedarf angepasst werden, zum Beispiel, um den Bericht im nötigen Format zu exportieren. AD-Überwachungslösungen wie ADAudit Plus helfen Administratoren, solche Berichte im Handumdrehen abzurufen. Nachstehend ein Vergleich des Abrufs sämtlicher angemeldeter AD-Benutzer mit Windows PowerShell und ADAudit Plus.

PowerShell

Schritte zum Abrufen aller angemeldeten Benutzer mit PowerShell:

  • Identifizieren Sie die Domäne, zu welcher der Bericht abgerufen werden soll.
  • Identifizieren Sie die LDAP-Attribute, die zum Abrufen des Berichtes erforderlich sind.
  • Identifizieren Sie den primären Domänencontroller zum Abruf des Berichtes.
  • Geben Sie die obigen Parameter im nachstehenden Skript an, kompilieren Sie das Skript.
  • Führen Sie dieses in Windows PowerShell aus.
  • Der Bericht wird im angegebenen PSM-Dateiformat exportiert.
  • Wenn Sie den Bericht in einem anderen Format abrufen möchten, müssen Sie das Skript entsprechend ändern.

 

 Copied
function Get-Execute it in Windows PowerShell.UserLogon {                                     [CmdletBinding()]                                     param                                     (                                     [Parameter ()]                                     [String]$Computer,                                     [Parameter ()]                                     [String]$OU,                                     [Parameter ()]                                     [Switch]$All                                     )                                     $ErrorActionPreference="SilentlyContinue"                                     $result=@()                                     If ($Computer) {                                     Invoke-Command -ComputerName $Computer -ScriptBlock {quser} | Select-Object -Skip 1 | Foreach-Object {                                     $b=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s'                                                                          If ($b[2] -like 'Disc*') {                                                                          $array= ([ordered]@{                                     'User' = $b[0]                                     'Computer' = $Computer                                     'Date' = $b[4]                                     'Time' = $b[5..6] -join ' '                                     })                                     $result+=New-Object -TypeName PSCustomObject -Property $array                                     }                                     else {                                     $array= ([ordered]@{                                     'User' = $b[0]                                     'Computer' = $Computer                                     'Date' = $b[5]                                     'Time' = $b[6..7] -join ' '                                     })                                                                          $result+=New-Object -TypeName PSCustomObject -Property $array                                                                          }                                     }                                     }                                                                          If ($OU) {                                                                          $comp=Get-ADComputer -Filter * -SearchBase "$OU" -Properties operatingsystem                                                                          $count=$comp.count                                                                          If ($count -gt 20) {                                                                          Write-Warning "Search $count computers. This may take some time ... About 4 seconds for each computer"                                                                          }                                                                          foreach ($u in $comp) {                                                                          Invoke-Command -ComputerName $u.Name -ScriptBlock {quser} | Select-Object -Skip 1 | ForEach-Object {                                                                          $a=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s'                                                                          If ($a[2] -like '*Disc*') {                                                                          $array= ([ordered]@{                                     'User' = $a[0]                                     'Computer' = $u.Name                                     'Date' = $a[4]                                     'Time' = $a[5..6] -join ' '                                     })                                                                          $result+=New-Object -TypeName PSCustomObject -Property $array                                     }                                                                          else {                                                                          $array= ([ordered]@{                                     'User' = $a[0]                                     'Computer' = $u.Name                                     'Date' = $a[5]                                     'Time' = $a[6..7] -join ' '                                     })                                                                          $result+=New-Object -TypeName PSCustomObject -Property $array                                     }                                                                          }                                                                          }                                                                          }                                                                          If ($All) {                                                                          $comp=Get-ADComputer -Filter * -Properties operatingsystem                                                                          $count=$comp.count                                                                          If ($count -gt 20) {                                                                          Write-Warning "Search $count computers. This may take some time ... About 4 seconds for each computer ..."                                                                          }                                                                          foreach ($u in $comp) {                                                                          Invoke-Command -ComputerName $u.Name -ScriptBlock {quser} | Select-Object -Skip 1 | ForEach-Object {                                                                          $a=$_.trim() -replace '\s+',' ' -replace '>','' -split '\s'                                                                          If ($a[2] -like '*Disc*') {                                                                          $array= ([ordered]@{                                     'User' = $a[0]                                     'Computer' = $u.Name                                     'Date' = $a[4]                                     'Time' = $a[5..6] -join ' '                                     })                                                                          $result+=New-Object -TypeName PSCustomObject -Property $array                                                                          }                                                                          else {                                                                          $array= ([ordered]@{                                     'User' = $a[0]                                     'Computer' = $u.Name                                     'Date' = $a[5]                                     'Time' = $a[6..7] -join ' '                                     })                                                                          $result+=New-Object -TypeName PSCustomObject -Property $array                                                                          }                                                                          }                                                                          }                                     }                                     Write-Output $result                                     }
Zum Kopieren des gesamten Skriptes klicken

ADAudit Plus

Bericht abrufen:

  • Melden Sie sich als Administrator an der ADAudit-Plus-Webkonsole an.
  • Wechseln Sie zum Berichte-Register. Klicken Sie auf den Benutzeranmeldungen-Bereich im linken Panel, wählen Sie die Option Benutzeranmeldungsberichte.
  • Wählen Sie „Exportieren als“ zum Exportieren des Berichtes im gewünschten Format (CSV, PDF, HTML, CSVDE und XLSX).

Bildschirmabbildung

powershell-get-logged-on-user

Nachstehend die Beschränkungen, die Ihnen beim Abrufen sämtlicher angemeldeter AD-Benutzer mit nativen Werkzeugen wie Windows PowerShell das Leben erschweren:

  • Das Skript kann nur mit Computern ausgeführt werden, die über die passende Active-Directory-Domänendienste-Rolle verfügen.
  • Andere Datumsformate und unterschiedliche Zeitzonen lassen sich nur mit Schwierigkeiten auf die Ergebnisse anwenden.
  • Ein Export des Berichtes in anderen Dateiformaten als CSV ist nicht ganz einfach.
  • Die Anwendung weiterer Filter wie Organisationseinheit oder „Benutzername beginnt mit“ steigert die Komplexität der LDAP-Abfrage.

ADAudit Plus erzeugt den Bericht durch automatisches Scannen sämtlicher Domänencontroller der Domäne auf angemeldete Benutzer, zeigt diesen anschließend über eine unkomplizierte und intuitiv bedienbare Oberfläche an.

  • PowerShell-Skripte und vereinfachte AD-Änderungsüberwachung mit ADAudit Plus.
  •  
  • Mit einem Klick auf „Kostenlos in Ruhe ausprobieren“ willigen Sie in die Verarbeitung persönlicher Daten gemäß Datenschutzbestimmungen ein.
  • Danke für das Herunterladen!

    Ihr Download sollte in 15 Sekunden automatisch beginnen. Wenn nicht, klicken Sie hier, um es manuell herunterzuladen.

Verwandte Ressourcen