IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Gestion du cmdlet Get-QADGroupMember au sein d'une boucle [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut Gestion du cmdlet Get-QADGroupMember au sein d'une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $GrpMatch|
     Get-QADGroupMember -Type "group" -Indirect | 
     Select-Object Name | 
     Export-Csv "D:\GetGrp-GrpMatch.csv"
    Sous réserve que les objets contenus dans le tableau $GrpMatch contiennent une propriété Identity, voir la doc.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    Malheureusement ça ne fonctionne pas.
    Je vais essayer de trouvé autre chose.

    Ma variable $GrpMatch peux avoir deux entré.

    Ex.:

    $GrpMatch = GroupeA et GroupB
    donc la variable à deux entré. Ensuite moi je veux faire un Get-QADGroupMember pour ces deux groupe et faire un export dans un seul fichier CSV.

    Est-ce que c'est possible?

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ovcrash Voir le message
    Malheureusement ça ne fonctionne pas.
    Ne pouvant tester ma proposition, vérifie si :
    les objets contenus dans le tableau $GrpMatch contiennent une propriété Identity
    Citation Envoyé par ovcrash Voir le message
    Est-ce que c'est possible?
    J'ai bien compris
    Autre point à vérifier, le type de la variable $GrpMatch, celle-ci doit être un tableau. Si c'est un autre type de collection, essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $GrpMatch.GetEnumerator()|...
    Avant d'aller plus loin, indique nous stp le type des objets que tu manipules, c'est le plus important sous PowerShell.

    La conception d'un cmdlet est basé sur ce type d'opération, as-tu essayé qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Get-QADGroup mon groupe ... |
     Get-QADGroupMember -Type "group" -Indirect | 
     Select-Object Name | 
     Export-Csv "D:\GetGrp-GrpMatch.csv"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    Get-QADGroup mon groupe ... |
    Get-QADGroupMember -Type "group" -Indirect |
    Select-Object Name |
    Export-Csv "D:\GetGrp-GrpMatch.csv"
    Ceci fonctionne très bien.
    Mon problème c'est que je doit faire un Get-QadGroup sur deux groupes ou plus différent.

    Je voudrais avoir le résultat de cette recherche dans un seul fichier, ou dans une seule variable. Parce que par la suite je doit vérifier l'information récolter contre un autre fichier.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    J'ai trouvé la solution.

    $Variable = += Get-QADGroupMember $Variable2 -Type "group" -Indirect | Select-Object Name

    $Variable | Export-Csv Fichier.csv
    Tout est fonctionnel ou dumoin fait ce que je veux.

    Merci pour l'aide!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion workflow : traitement des dérogations au sein d'une entreprise industrielle
    Par saidsaid dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 07/10/2011, 12h45
  2. Au sein d'une boucle passer de colonne a colonne
    Par hlander dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2008, 17h30
  3. Réponses: 29
    Dernier message: 27/07/2006, 17h28
  4. [RegEx] problème variable au sein d'une boucle for
    Par mussara dans le forum Langage
    Réponses: 4
    Dernier message: 22/06/2006, 14h26
  5. Réponses: 7
    Dernier message: 14/02/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo