MAD-Resume.ps1

<###########################

           Resume

############################>

# Calcul des totaux finaux et preparation du tableau de synthese global.
# Doit etre execute APRES tous les modules de collecte (Dashboard, Groups,
# Users, Computers, Printers).
#
# Variables consommees (produites par les modules precedents) :
# $totalusers, $totalcomputers, $totalgroups
# $DefaultSGs, $printersnbr
#
# Variables produites (utilisees par le HTML MultiPage et OnePage) :
# $Allobjects - liste de synthese tous objets AD
# $totalcontacts - nombre de contacts AD

$Allobjects  = $null
$contacts    = (Get-ADObject -Filter 'objectclass -eq "contact"').name
$totalcontacts = ($contacts).count
$Allobjects  = New-Object 'System.Collections.Generic.List[System.Object]'

# Correction B-01 : n'ajouter aux totaux QUE ce qui a ete exclu de la collecte.
# En mode ShowSensitiveObjects, admins/DC/DefaultSGs sont deja dans les tables -> pas d'ajout.
# En mode LimitedView actif (sans ShowSensitiveObjects), ils ont ete exclus -> on les reintegre dans les totaux.
if ($LimitedView -and -not $ShowSensitiveObjects.IsPresent) {
    $totalusers     = $totalusers     + (Get-ADUser     -LDAPFilter "(admincount=*)").count
    $totalcomputers = $totalcomputers + (Get-ADComputer -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=8192)" | Select-Object name).name.count
    $totalgroups    = $totalgroups    + ($DefaultSGs.count)
}
# En mode complet (-LimitedView:$false ou -ShowSensitiveObjects), les totaux sont deja exacts.

$Allobjects = @(
    [pscustomobject]@{Name='Groups';        Count=$totalgroups}
    [pscustomobject]@{Name='Users';         Count=$totalusers}
    [pscustomobject]@{Name='Computers';     Count=$totalcomputers}
    [pscustomobject]@{Name='Contacts';      Count=$totalcontacts}
    [pscustomobject]@{Name='Printer server';Count=$printersnbr}
)

Write-Success "Donnees de synthese calculees"