Powershell : liste des groupes vides et export CSV

Afin de compléter le script que j’ai proposé dans l’article hier permettant de lister les OU vides, j’ai conçu un script effectuant le même travail mais pour des groupes. Seule la requête à l’AD est différente.

Il est possible que le script renvoie des erreurs si il tente d’interroger un groupe dont il y a un membre qui n’est pas membre du domaine local mais membre d’un domaine approuvé ; c’est la commande Get-AdGroupMember qui la renvoie mais cette erreur n’a aucune incidence sur le traitement du script.

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$fileExpl = New-Object System.Windows.Forms.SaveFileDialog
$fileExpl.ValidateNames = $true
$fileExpl.CreatePrompt = $false
$fileExpl.OverwritePrompt = $true
$fileExpl.RestoreDirectory = $false
$fileExpl.InitialDirectory = "$env:userprofile"
$output = @()

$AllGroups = Get-AdGroup -filter * | select SamAccountName,DistinguishedName
foreach ($Group in $AllGroups){
    if((Get-ADGroupMember $Group.SamAccountName).Count -eq 0){
        $emptyGrp = New-Object PSCustomObject
		$emptyGrp | Add-Member -Name "DN" -Value $Group.SamAccountName -MemberType NoteProperty
		$output+=$emptyGrp
    }
}

$fileExpl.DefaultExt = "csv"
$fileExpl.Filter = "Comma-separated values file (*.csv)|*.csv"
$fileExpl.Title = "Export empty groups list to CSV file"
$fileExpl.Filename = "emptygrp.csv"
$fileExpl.ShowDialog() | out-null
if ($fileExpl.Filename -ne "") {
	$output | Export-CSV $fileExpl.Filename -Encoding UTF8
}

Lien pour marque-pages : Permaliens.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.