- forum
- PowerShell
- Entraide pour les débutants
- Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
Question
Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 1 an 1 mois #32551
par Julien
Réponse de Julien sur le sujet Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
Bonjour,
Non j'avoue ne pas avoir tout saisi de ton code exposé.
Je suis en revanche parti de ta proposition :
$Resultat=$ListeDEL |GObject SamAccountName
Je me retrouve bien pour Amara Anieze, par exemple, avec deux item de type "count" dans $Resultat tels que :
Count =8 -> contient les 8 comptes identiques
Count =1-> contient un compte unique pour elle
A partir de la, je ne sais pas comment faire pour dire :
Pour chaque "item" de count
Si count supérieur à 1 faire ça...
Si count égal 1 faire ça...
Je ne parviens à faire que :
Foreach($user in $Resultat){
Ce qui ne correspond pas a mon besoin car la boucle va analyser de nouveau chaque utilisateur dans $Resultat alors que j'ai besoin d'analyser la situation du Count et ainsi restaurer une fois l'utilisateur du Count supérieur à 1 et une fois l'utilisateur du count égal à 1 si existant.
Je peux avoir des cas où je n'aurai qu'un utilisateur avec un count supérieur à 1 ou égal à 1 ou bien les deux.
Comment m'y prendre ?
Je suis vraiment désolé pour ces échanges, mais j'ai vraiment besoin de réussir ce bout de code.
Merci beaucoup pour ton aide
Non j'avoue ne pas avoir tout saisi de ton code exposé.
Je suis en revanche parti de ta proposition :
$Resultat=$ListeDEL |GObject SamAccountName
Je me retrouve bien pour Amara Anieze, par exemple, avec deux item de type "count" dans $Resultat tels que :
Count =8 -> contient les 8 comptes identiques
Count =1-> contient un compte unique pour elle
A partir de la, je ne sais pas comment faire pour dire :
Pour chaque "item" de count
Si count supérieur à 1 faire ça...
Si count égal 1 faire ça...
Je ne parviens à faire que :
Foreach($user in $Resultat){
Ce qui ne correspond pas a mon besoin car la boucle va analyser de nouveau chaque utilisateur dans $Resultat alors que j'ai besoin d'analyser la situation du Count et ainsi restaurer une fois l'utilisateur du Count supérieur à 1 et une fois l'utilisateur du count égal à 1 si existant.
Je peux avoir des cas où je n'aurai qu'un utilisateur avec un count supérieur à 1 ou égal à 1 ou bien les deux.
Comment m'y prendre ?
Je suis vraiment désolé pour ces échanges, mais j'ai vraiment besoin de réussir ce bout de code.
Merci beaucoup pour ton aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 1 an 1 mois - il y a 1 an 1 mois #32552
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
>>Je me retrouve bien pour Amara Anieze, par exemple, avec deux item de type "count" dans $Resultat
Non, $Resultat contient un tableau d'objet de type Microsoft.PowerShell.Commands.GroupInfo.
Et cette classe à 4 propriétés dont 'Count' (cf. Get-Member).
>>Ce qui ne correspond pas a mon besoin car la boucle va analyser de nouveau chaque utilisateur dans $Resultat
Certes, Group-Object doit lire l'intégralité d'une collection AVANT de regrouper selon un critère.
On a désormais une autre collection qui regroupe des utilisateurs, on est bien obligé d'avoir un résultat intermédiaire.
>> alors que j'ai besoin d'analyser la situation du Count et ainsi restaurer une fois l'utilisateur du Count supérieur à 1 et une fois l'utilisateur du count égal à 1 si existant.
Ici on manipule des groupes, chaque groupe indique le nom d'utilisateur identique, selon les critères, et les données dupliquées sont dans la propriété 'Group' qui est une collection d'utilisateurs:
Pour filtrer :
Non, $Resultat contient un tableau d'objet de type Microsoft.PowerShell.Commands.GroupInfo.
Et cette classe à 4 propriétés dont 'Count' (cf. Get-Member).
>>Ce qui ne correspond pas a mon besoin car la boucle va analyser de nouveau chaque utilisateur dans $Resultat
Certes, Group-Object doit lire l'intégralité d'une collection AVANT de regrouper selon un critère.
On a désormais une autre collection qui regroupe des utilisateurs, on est bien obligé d'avoir un résultat intermédiaire.
>> alors que j'ai besoin d'analyser la situation du Count et ainsi restaurer une fois l'utilisateur du Count supérieur à 1 et une fois l'utilisateur du count égal à 1 si existant.
Ici on manipule des groupes, chaque groupe indique le nom d'utilisateur identique, selon les critères, et les données dupliquées sont dans la propriété 'Group' qui est une collection d'utilisateurs:
$Groups=$Accounts|group-object SamAccountName
$UnGroupe=$groups[0]
$UnGroupe.Count # 1 ou n
$UnGroupe.Name #Critère
$UnGroupe.Group[0] # Utilisateur(s) identique(s) POUR le critère
Pour filtrer :
$list=@{SamAccountName = 'a.anieze';userPrincipalName = 'amara.anieze'},
@{SamAccountName = 'a.anieze';userPrincipalName = 'amara.anieze'},
@{SamAccountName = 'B.anieze';userPrincipalName = 'amara.Bnieze'},
@{SamAccountName = 'B.anieze';userPrincipalName = 'amara.Cnieze'},
@{SamAccountName = 'F.anieze';userPrincipalName = 'amara.Fnieze'}
$Accounts=$list |% {
[PscustomObject]$_
}
Foreach ($CurrentUserGroup in $Accounts|Group-Object SamAccountName)
{
switch ($CurrentUserGroup.Count)
{
1 { Write-host ("{0} n'est pas dupliqué." -F $CurrentUserGroup.Name) }
default { Write-host ('{0} dupliqué {1} fois.' -F $CurrentUserGroup.Name,$CurrentUserGroup.Count) }
#Une évidence : pas de groupe ayant un count à zéro
}
}
Tutoriels PowerShell
Dernière édition: il y a 1 an 1 mois par Laurent Dardenne.
Connexion ou Créer un compte pour participer à la conversation.
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 1 an 1 mois #32559
par Julien
Réponse de Julien sur le sujet Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
Bonjour Laurent,
Merci pour tes explications détaillées. J'ai bien mieux compris ce que tu as proposé et ça m'a bien aidé.
À priori tout fonctionne bien pour le moment.
Merci pour tes conseils.
Merci pour tes explications détaillées. J'ai bien mieux compris ce que tu as proposé et ça m'a bien aidé.
À priori tout fonctionne bien pour le moment.
Merci pour tes conseils.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie
Temps de génération de la page : 0.066 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Ajouter colonne "restored" et écrire "ok ou "nok dans un fichier csv en sortie