2 pièce(s) jointe(s)
Imbrication des groupes AD et export vers Excel
Bonjour à tous,
But du script connaître les membres des groupes de domaine local sur les machines de mes stagiares sur Win 2008 SVR R2...
Voici mon problème :
Je voudrai afficher les membres des groupes de domaine local.Si ce sont des groupes globaux on les affiche, si ce sont des utilisateurs (je sais mormalement on ne devrait pas trouver d'users dans les DL) on les affiche ailleurs dans Excel.
1° étape je trouve toutes les dl de mon domaine et les envoie sur un eligne dans excel : RAS ça c'est fait...
Pièce jointe 393035
2° étape je cherche les membres direct de ces DL et je veux les afficher en dessous, voici une image fictive du résultat attendu :pour l'instant pas top j'arrive pas à traiter chaque DL pour trouver les membres..
Pièce jointe 393038
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| # Affiche les Groupes GG - DL
# On se positionne sur la 6° feuille de notre document Excel
$Sheet = $WorkBook.Worksheets.Item(6)
$ligne = 4
$col= 2
$Sheet.Cells.Item($ligne-2,$col+1) = "Liste des Groupes GG - DL"
#fonction mise en forme dans excel
mise-en-forme-entete-gg-dl
# on fusionne les cellules 2.1 ==> 2.3
$Range = $Sheet.Range($Sheet.Cells.Item(2,1),$Sheet.Cells.Item(2,3))
$Range.MergeCells = $true
#liste les DL en enlevant le dossier "Users" et les affiche verticalement
$tab = @()
$ou = Get-ADOrganizationalUnit -filter * -SearchScope OneLevel | sort-Object
Foreach ( $k in $ou)
{
if ($k.name -ne $null -and $k.name -ne "Domain Controllers")
{
$x = Get-ADGroup -Filter { GroupScope -Eq "domainlocal"} -SearchBase $k.DistinguishedName | sort-object
foreach ($l in $x)
{
if ($l.name -ne $null)
{
$tab += $l.name
$Sheet.Cells.Item($ligne,$col) = $l.name
mise-en-forme-donnes
$col++
}
}
}
}
# on cherche les membres des DL ..
$ligneenfant = 5
$colenfant = 2
write-host $tab
ForEach ( $i in $tab)
{
$enfantsdl = Get-ADGroupMember -Identity $i | sort-object
write-host $enfantsdl
foreach( $z in $enfantsdl)
{
if ($z.name -ne $null)
{
$Sheet.Cells.Item($ligneenfant,$colenfant) = $z.name
$ligneenfant++
$colenfant++
}
}
} |
la partie qui déconne un peu se trouve dans "# on cherche les membres des DL .." ..
merci pour vos réponses..