Comment générer et exporter le rapport sur tous les utilisateurs connectés ?

Les administrateurs souhaitent souvent connaître la liste de tous les utilisateurs qui se sont actuellement connectés. Ces informations peuvent être obtenues en utilisant des scripts PowerShell de Windows. Cependant, écrire le script et le modifier à chaque fois pour générer le rapport dans le format spécifié est un processus fastidieux. Une solution d'audit AD comme ADAudit Plus permet d’aider les administrateurs à obtenir ce rapport en un clin d'œil. Voici une comparaison entre l'obtention du rapport de connexion de tous les utilisateurs AD avec Windows PowerShell et ADAudit Plus :

PowerShell

Étapes pour obtenir tous les utilisateurs connectés en utilisant PowerShell :

  • Identifiez le domaine à partir duquel vous voulez récupérer le rapport.
  • Identifiez les attributs LDAP dont vous avez besoin pour obtenir le rapport.
  • Identifiez le DC primaire pour récupérer le rapport.
  • Spécifiez les paramètres ci-dessus dans le script donné suivant et compilez-le.
  • Exécutez-le dans Windows PowerShell.
  • Le rapport sera exporté au format d'extension de fichier .psm.
  • Pour obtenir le rapport dans un autre format, modifiez le script en conséquence.

Exemple de script Windows PowerShell

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
}

 Copied
Cliquez pour copier tout le script

ADAudit Plus

Pour obtenir le rapport,

  • Connectez-vous à la console web ADAudit Plus en tant qu’administrateur.
  • Allez dans l’onglet Rapports. Cliquez sur Journaux d'utilisateur dans le volet de gauche et sélectionnez l'option Rapports sur les connexions des utilisateurs.
  • Sélectionnez Exporter en tant que pour exporter le rapport dans l'un des formats préférés (CSV, PDF, HTML, CSVDE et XLSX).

Capture d'écran

powershell-get-logged-on-user-1
 

Voici les limitations pour obtenir un rapport de tous les utilisateurs AD connectés en utilisant des outils natifs comme Windows PowerShell :

  • Le script ne peut être exécuté qu'à partir des ordinateurs qui ont le rôle de services de domaine Active Directory.
  • Il est difficile de modifier les formats de date et d'appliquer différents fuseaux horaires sur les résultats de la date.
  • Il est difficile d'exporter le rapport dans des formats de fichiers autres que CSV.
  • L'application d'un plus grand nombre de filtres tels que UO ou « Le nom de l'utilisateur commence par » augmente la complexité de la requête LDAP.

ADAudit Plus génère le rapport en analysant automatiquement tous les DC du domaine pour retrouver les utilisateurs connectés, affichés à l’aide d’une interface utilisateur simple et intuitive.

  • Créez des scripts PowerShell, et simplifiez la vérification des changements AD avec ADAudit Plus.
  •  
  • En cliquant sur « Obtenir votre évaluation gratuite maintenant, », vous acceptez le traitement des données personnelles conformément à la Politique de confidentialité.
  •  
  • Merci du téléchargement !
  • Votre téléchargement doit commencer automatiquement dans 15 secondes. Sinon, cliquez ici pour télécharger manuellement.