NOM Group-Object R?SUM? Regroupe les objets qui contiennent la m?me valeur pour les propri?t?s sp?cifi?es. SYNTAXE Group-Object [-AsHashTable] [-AsString] [[-Property] ] [-CaseSensitive] [-Culture ] [-InputObject ] [-NoElement] [] DESCRIPTION L'applet de commande Group-Object affiche les objets dans des groupes en fonction de la valeur d'une propri?t? sp?c ifi?e. Group-Object retourne une table avec une ligne pour chaque valeur de propri?t? et une colonne indiquant le n ombre d'?l?ments poss?dant cette valeur. Si vous sp?cifiez plusieurs propri?t?s, Group-Object commence par les grouper en fonction des valeurs de la premi?r e propri?t?, puis, au sein de chaque groupe de propri?t?s, elle g?n?re des groupes bas?s sur la valeur de la propri ?t? suivante. PARAM?TRES -AsHashTable [] Retourne le groupe sous la forme d'une table de hachage. Les cl?s de la table de hachage sont les valeurs de p ropri?t? en fonction desquelles les objets sont group?s. Les valeurs de la table de hachage sont les objets pos s?dant cette valeur de propri?t?. Le param?tre AsHashTable retourne chaque table de hachage dans laquelle chaque cl? est une instance de l'objet group?. S'il est utilis? avec le param?tre AsString, les cl?s de la table de hachage sont des cha?nes. -AsString [] Convertit les cl?s de table de hachage en cha?nes. Par d?faut, les cl?s de table de hachage sont des instances de l'objet group?. Ce param?tre est valide uniquement lorsqu'il est utilis? avec le param?tre AsHashTable. -CaseSensitive [] Rend le regroupement sensible ? la casse. Sans ce param?tre, les valeurs de propri?t? des objets d'un groupe pe uvent avoir des casses diff?rentes. -Culture Sp?cifie la culture ? utiliser lors de la comparaison de cha?nes. -InputObject Sp?cifie les objets ? regrouper. Entrez une variable contenant les objets, ou tapez une commande ou une express ion qui obtient ces objets. Lorsque vous utilisez le param?tre InputObject pour envoyer une collection d'objets ? Group-Object, Group-Objec t re?oit un objet repr?sentant la collection. En cons?quence, elle cr?e un groupe unique avec cet objet en tant que membre. Pour regrouper les objets dans une collection, dirigez-les vers Group-Object. -NoElement [] Omet les membres d'un groupe des r?sultats. -Property Sp?cifie les propri?t?s du regroupement. Les objets sont organis?s en groupes en fonction de la valeur de la pr opri?t? sp?cifi?e. La valeur du param?tre Property peut ?tre une nouvelle propri?t? calcul?e. Pour cr?er une propri?t? calcul?e, c r?ez une table de hachage avec une cl? Expression sp?cifiant une valeur de cha?ne ou de bloc de script. Cette applet de commande prend en charge les param?tres courants?: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer et OutVariable. Pour plus d'informations, tapez ??get-help about_commonparameters??. -------------------------- EXEMPLE?1 -------------------------- C:\PS>get-childitem *.doc | group-object -property length Description ----------- Cette commande obtient les fichiers de l'emplacement actuel poss?dant une extension .doc et les regroupe par taille . -------------------------- EXEMPLE?2 -------------------------- C:\PS>get-childitem | sort-object -property extension | group-object -property extension Description ----------- Cette commande obtient les fichiers de l'emplacement actuel, les trie en fonction de leur extension de nom de fichi er, puis les groupe par extension. Notez que les fichiers sont tri?s avant d'?tre group?s. -------------------------- EXEMPLE?3 -------------------------- C:\PS>1..35 | group-object -property {$_ % 2},{$_ % 3} Description ----------- Cet exemple montre comment utiliser des blocs de script en tant que valeur du param?tre Property. Cette commande affiche les entiers de 1 ? 35, regroup?s en fonction de leur reste lorsqu'ils sont divis?s par 2 ou 3. -------------------------- EXEMPLE?4 -------------------------- C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | group-object -property eventID Count Name Group ----- ---- ----- 44 Information {System.Diagnostics.EventLogEntry, 5 Error {System.Diagnostics.EventLogEntry, 1 Warning {System.Diagnostics.EventLogEntry} Description ----------- Ces commandes affichent les 1?000?entr?es les plus r?centes du journal des ?v?nements syst?me, regroup?es par ID d' ?v?nement. La premi?re commande utilise l'applet de commande Get-EventLog pour r?cup?rer les ?v?nements et l'op?rateur d'affec tation (=) pour les enregistrer dans la variable $events. La deuxi?me commande utilise un op?rateur de pipeline (|) pour envoyer les ?v?nements de la variable $events ? l'ap plet de commande Group-Object. Elle utilise le param?tre Property pour indiquer que les ?v?nements doivent ?tre reg roup?s en fonction de la valeur de leur propri?t? EventID. Dans la sortie, la colonne Count repr?sente le nombre d'entr?es de chaque groupe, la colonne Name repr?sente les va leurs EventID qui d?finissent un groupe et la colonne Group repr?sente les objets de chaque groupe. -------------------------- EXEMPLE?5 -------------------------- C:\PS>get-process | group-object -property priorityclass Count Name Group ----- ---- ----- 55 Normal {System.Diagnostics.Process (AdtAgent), System.Diagnostics.Process (alg), System.Dia... 1 {System.Diagnostics.Process (Idle)} 3 High {System.Diagnostics.Process (Newproc), System.Diagnostics.Process (winlogon), System.D... 2 BelowNormal {System.Diagnostics.Process (winperf), C:\PS>get-process | group-object -property company -noelement Count Name ----- ---- 55 Normal 1 3 High 2 BelowNormal Description ----------- Cet exemple illustre l'utilisation du param?tre NoElement. Ces commandes regroupent les processus de l'ordinateur e n fonction de leur classe de priorit?. La premi?re commande utilise l'applet de commande Get-Process pour obtenir les processus de l'ordinateur. Elle util ise un op?rateur de pipeline (|) pour envoyer les r?sultats ? Group-Object, qui groupe les objets en fonction de la valeur de la propri?t? PriorityClass du processus. La deuxi?me commande est identique ? la premi?re, ? ceci pr?s qu'elle utilise le param?tre NoElement pour ?liminer les membres du groupe de la sortie. Le r?sultat obtenu est une table contenant uniquement le nombre et le nom des v aleurs de propri?t?. Les r?sultats sont pr?sent?s dans l'exemple de sortie suivant. -------------------------- EXEMPLE?6 -------------------------- C:\PS>get-eventlog -logname system -newest 1000 | group-object -property {$_.TimeWritten - $_.TimeGenerated} Description ----------- Cette commande montre comment fournir la valeur du param?tre Property en tant que bloc de script. Cette commande affiche les 1?000?entr?es les plus r?centes du journal des ?v?nements syst?me, regroup?es par heure, entre le moment o? elles ont ?t? g?n?r?es et le moment o? elles ont ?t? ?crites dans le journal. La premi?re commande utilise l'applet de commande Get-EventLog pour obtenir les entr?es du journal des ?v?nements. Elle utilise un op?rateur de pipeline (|) pour envoyer les entr?es ? l'applet de commande Group-Object. La valeur d u param?tre Property est sp?cifi?e en tant que bloc de script (une expression entre accolades). Le r?sultat de l'?v aluation du bloc de script correspond ? l'heure comprise entre le moment o? l'entr?e de fichier journal a ?t? g?n?r ?e et le moment o? elle a ?t? ?crite dans le journal. Cette valeur est utilis?e pour regrouper les 1?000 ?v?nements les plus r?cents. -------------------------- EXEMPLE?7 -------------------------- C:\PS>get-childitem | group-object extension -noelement Count Name ----- ---- 21 82 .txt 9 .cmd 5 .log 12 .xml 5 .htm 36 .ps1 1 .psc1 3 .exe 6 .csv 1 .psd1 2 .bat Description ----------- Cette commande groupe les ?l?ments du r?pertoire actif en fonction de leur extension de nom de fichier. Elle utilis e le param?tre NoElement pour omettre les membres du groupe. Les r?sultats sont pr?sent?s dans l'exemple de sortie suivant. -------------------------- EXEMPLE?8 -------------------------- C:\PS>"a", "b", "c", "c", "d" | get-unique a b c d C:\PS> "a", "b", "c", "c", "d" | group-object -noelement | where {$_.Count -gt 1} Count Name ----- ---- 2 c C:\PS> get-process | group-object -property Name -noelement | where {$_.count -gt 1} Count Name ----- ---- 2 csrss 5 svchost 2 winlogon 2 wmiprvse Description ----------- Cet exemple montre comment rechercher les valeurs de propri?t? uniques et non uniques (r?p?t?es) d'une collection. La premi?re commande obtient les ?l?ments uniques d'un tableau en dirigeant ce tableau vers l'applet de commande Ge t-Unique. La deuxi?me commande obtient les ?l?ments non uniques du tableau. Elle dirige le tableau vers l'applet de commande Group-Object, qui groupe les objets en fonction de leur valeur. Les groupes obtenus sont dirig?s vers l'applet de c ommande Where-Object, qui s?lectionne les objets des groupes comportant plusieurs membres. La troisi?me commande illustre une utilisation pratique de cette technique. Elle utilise la m?me m?thode pour reche rcher des processus de m?me nom sur l'ordinateur. Les r?sultats sont pr?sent?s dans l'exemple de sortie suivant. -------------------------- EXEMPLE?9 -------------------------- C:\PS>$a = get-command get-*, set-* -type cmdlet | group-object -property verb -ashashtable -asstring C:\PS> $a Name Value ---- ----- Get {Get-PSCallStack, Get-PSBreakpoint, Get-PSDrive, Get-PSSession...} Set {Set-Service, Set-StrictMode, Set-PSDebug, Set-PSSessionConfiguration...} C:\PS> $a.get CommandType Name Definition ----------- ---- ---------- Cmdlet Get-PSCallStack Get-PSCallStack [-Verbose] [-Debug] [-ErrorAction ] [-Verbose] [-Debug] [-ErrorA... Cmdlet Get-PSDrive Get-PSDrive [[-Name] ] [-Scope ] [-PSProvider... ... Description ----------- Cet exemple utilise les param?tres AsHashTable et AsString pour retourner les groupes d'une table de hachage, ? sav oir sous la forme d'une collection de paires cl?-valeur. Dans la table de hachage obtenue, chaque valeur de propri?t? est une cl? et les ?l?ments de groupe sont les valeurs . ?tant donn? que chaque cl? est une propri?t? de l'objet table de hachage, vous pouvez utiliser la notation par po int pour afficher les valeurs. La premi?re commande obtient les applets de commande Get et Set de la session, les groupe par verbe, retourne les g roupes sous la forme d'une table de hachage, puis enregistre la table de hachage dans la variable $a. La deuxi?me commande affiche la table de hachage dans la variable $a. Il existe deux paires cl?-valeur, une pour le s applets de commande Get et une pour les applets de commande Set. La troisi?me commande utilise la notation par point pour afficher les valeurs de la cl? Get dans la variable $a. Ce s valeurs sont l'objet CmdletInfo. Le param?tre AsString ne convertit pas les objets des groupes en cha?nes. REMARQUES Pour consulter les exemples, tapez?: "get-help Group-Object -examples". Pour plus d'informations, tapez?: "get-help Group-Object -detailed". Pour obtenir des informations techniques, tapez?: "get-help Group-Object -full".