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 :

Where-Object retour vide cmdlet csharp [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

richton95 Where-Object retour vide... 11/04/2012, 12h46
Laurent Dardenne Salut, tu renvois peut être... 11/04/2012, 21h29
richton95 Bonjour Merci pour la... 12/04/2012, 16h09
Laurent Dardenne En utilisant l'énumérateur ?... 12/04/2012, 20h49
richton95 Merci pour ton aide ! En... 13/04/2012, 09h01
Laurent Dardenne De rien. Sinon tu peux, toi... 13/04/2012, 20h29
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut Where-Object retour vide cmdlet csharp
    Bonjour

    Je me suis créé une cmdlet powershell, mais je n'arrive pas à filtrer mes objets retournés avec le Where-Object. Bien que j' utilise des objects dans ma librairie, j'ai un doute sur le fait que la commande me renvoit un object de de l'invocation de la commande.
    Merci pour votre aide

    Librairie :
    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
    .....
     switch (ParameterSetName)
                    {
    
                        //Doit retourner une liste d'objet "computer"
                        case "Set02":
                            this.WriteObject(ADSearcher.findAllComputers(_AdEntry, true));
                            break;
    
                        default:
                            throw new ArgumentException("Bad ParameterSet Name");
    
                    }
    .....
    Commande PS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Get-ADComputer -AllComputers 
    
    Resultat :
    
    OS                : Windows Server 2003
    ObjectGUID        : 63e568fa-8273-43e7-8f5c-274b25257f6a
    ObjectSid         : S-1-5-21-299502267-436374069-839522115-1504
    ObjectClass       : {top, person, organizationalPerson, user...}
    Cn                : xxxxxxxx
    DistinguishedName : xxxxx
    Name              : xxxxxxxx
    
    .....
    Commande filtré ne retourne rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Get-ADComputer -AllComputers  | Where-Object{$_.OS -like "*Server*"}

  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,
    tu renvois peut être un objet contenant une collection. Inspecte le type retourrné par ton cmdlet pour t'en assurer.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Bonjour

    Merci pour la réponse. En effet je récupère une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Get-ADComputer -AllComputers  | % { $_.GetType().FullName }
    Retourne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.Collections.Generic.List`1[[xxx.ADObject, xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
    Pourrais tu me dire comment faire fonctionner mon Where-object avec cette liste ?
    Merci d'avance

  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
    En utilisant l'énumérateur ?
    Mais ton pb est plus à la source, le code de ton cmdlet doit itérer sur la collection et pas envoyer une collection. Pour preuve tu t'attends, comme tout le monde, à récupèrer + objets.

    Il faut penser à ceux/celles qui vont l'utiliser.

    Laisse à PS le soin de construire la collection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $Result=Get-MyObject
    #ou pour tjr récupèrer un tableau
    $Result=@(Get-MyObject|select -First 1)
    $result.count # renvoie 0,1 ou n

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Merci pour ton aide !

    En effet j'ai vu qu'on pouvait mettre la propriete enumerateCollection a true dans la methode write-object de ma librairie, cela fonctionne mieux ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     this.WriteObject(ADSearcher.findComputerByName(_AdEntry, ComputerName), true)

  6. #6
    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 richton95 Voir le message
    Merci pour ton aide !
    De rien.
    Sinon tu peux, toi ou ton entreprise, investir dans cet ouvrage, il date un peu , mais contient les bases. Les exemples de code sont téléchargeables gratuitement il me semble.

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

Discussions similaires

  1. Struts2 et JSON, retour vide
    Par _MattU_ dans le forum Struts 2
    Réponses: 1
    Dernier message: 20/03/2013, 19h10
  2. [PowerShell] Comment retrouver le type d'une variable avec Where-Object
    Par badack dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 19/07/2010, 16h49
  3. Retour vide d'un JFileChooser
    Par wwave dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/02/2010, 10h33
  4. [Resource] Comment réussir un Binding sur un object string vide ?
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 02/10/2008, 12h56
  5. [Oracle] Oracle : exécution et retour vide (anormal)
    Par Cyrano dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/09/2007, 09h40

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