Gestion du cmdlet Get-QADGroupMember au sein d'une boucle
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
| param(
$domaine,
$user
)
If($domaine){}Else{ Write-Host "`n Inscrivez un domaine `n"; Exit }
If($user){}Else{ Write-Host "`n Incrivez un user `n"; Exit }
$VerbosePreference = 'SilentlyContinue'
$erroractionpreference = 'SilentlyContinue'
Write-Host "Validation des groupes ... `n"
$GroupeNERC = Import-Csv "Groupe-Validation.csv"
Get-QADGroup -ContainsIndirectMember "$domaine\$user" -sizelimit 0 | sort | select Name | Export-Csv "D:\ValGroup.csv"
$file = "D:\ValGroup.csv"
$ValFileSize = Get-ChildItem $file | ForEach-Object { ($_.Length/1KB).tostring("0") }
If($ValFileSize -clt "1")
{
Write-Host "Le fichier $file ne contien aucune donné. `n $file $ValFileSize KB"; Exit
}
$ValGroup = Import-Csv "D:\ValGroup.csv"
Foreach($NERCgrp in $GroupeNERC)
{
Foreach($Valgrp in $ValGroup)
{
If($NERCgrp.Groupe -eq $Valgrp.Name)
{
$GrpMatch = $NERCgrp.Groupe
Write-Host "Le groupe identique d'après la liste initial est :" $NERCgrp.Groupe
}
}
}
If($GrpMatch){}
Else
{
Write-Host "Aucun groupe correspondant à la liste initial à été trouvé! `n Quitting ..."; Exit
}
Write-Host "`n Recherche le groupe problématique ... `n"
Get-QADGroupMember $GrpMatch -Type "group" -Indirect | Select-Object Name | Export-Csv "D:\GetGrp-GrpMatch.csv"
Get-QADMemberOf "$domaine\$user" | Select-Object Name | Export-Csv "D:\GetGrp-User.csv"
$Grpmatch = Import-Csv "D:\GetGrp-GrpMatch.csv"
$Grpuser = Import-Csv "D:\GetGrp-User.csv"
Foreach($ValGrpmatch in $Grpmatch)
{
Foreach($ValGrpuser in $Grpuser)
{
if($ValGrpmatch.Name -match $ValGrpuser.Name)
{
Write-Host "L'utilisateur se trouve dans le groupe : " $ValGrpmatch.Name
}
}
} |
Mon script fonctionne correcte jusqu'à la deuxième partie. Si la recherche intial à deux entré, la variable $GrpMatch resort avec deux entrés il fait seulement la recherche pour une.
Est-ce qu'il a une façon de faire en sorte, que si la variable $GrpMatch trouve deux entré la commande :
Code:
Get-QADGroupMember $GrpMatch -Type "group" -Indirect | Select-Object Name | Export-Csv "D:\GetGrp-GrpMatch.csv"
Cherche pour les deux entrés trouvé et ensuite elle output dans un seul fichier CSV? ou je doit absolument la sortir dans deux fichiers séparer?
Merci!