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 :

Remplacer les noms affichés lors du résultat [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Remplacer les noms affichés lors du résultat
    Bonjour,

    j'ai fait un script permettant à nos techniciens Service Desk de vérifier si un utilisateur a une licence O365, et quelle licence il a.


    Nos tech ne sont pas forcément au fait des noms de licences et j'aimerai pouvoir adapter le résultat pour qu'il soit facilement compréhensible.


    En effet, nos licences sont sous le nom "nomdelentreprise:ENTERPRISEPREMIUM" pour la E5, "nomdelentreprise:STANDARDPACK" pour la E1....
    j'aimerai qu'elles ressortent avec des noms plus "lisibles" que je définirai ensuite.


    j'ai déjà amélioré mon script en leur permettant d'entrer le SamAccountName pour leur faciliter l'entrée en en paramètre.
    la ligne qui permet de ressortir le résultat est la suivante :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-MsolUser -UserPrincipalName $user.UserPrincipalName | Format-List DisplayName, Licenses

    Résultat actuel : Nom : résult.jpg
Affichages : 258
Taille : 22,9 Ko

    merci pour votre aide

  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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    essai en plaçant une propriété calculée avec Select-object :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Get-MsolUser -UserPrincipalName $user.UserPrincipalName|
     Select -Object DisplayName,  @{label="Licences";expression={ Get-LicenceName $_.Licenses}}| 
     Format-List

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Bonjour Laurent,

    Merci pour la réponse.
    c'est une nouveauté pour moi, je me dis que j'oublie peut-être quelque chose ou que je comprends mal ce que tu me conseilles.
    Quoi qu'il en soit, lorsque je modifie le code avec le tien, ma ligne licence est vide.

    Je présume qu'il faut maintenant indiquer la correspondance entre les licences "sku" et le nom que je voudrai voir affiché, mais je ne comprends pas comment.

  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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par corly Voir le message
    c'est une nouveauté pour moi, je me dis que j'oublie peut-être quelque chose ou que je comprends mal ce que tu me conseilles.
    ceci :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    @{label="Licences";expression={ Get-LicenceName $_.Licenses}
    Déclare une hashtable où la clé label est le nom de la nouvelle propriété (select-object crée un autre objet à partir de celui reçu dans le pipeline) et la clé expression est un scriptblock.
    Ici on appel une fonction Get-LicenceName qui recoit la/les valeurs actuelles des licences et renvoie un chaîne de caractères ou + si besoin:
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dir |
     Select-Object Name, @{label="Taille";expression={ "résultat= $($_.Length) octet(s)" }}
    Tu peux ne pas utiliser de fonction et tout coder dans le scriptblock, ce sera moins lisible.
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Get-Octets {
     param ($File)
    "résultat= $($File.Length) octet(s)" 
    }
    dir |
     Select-Object Name, @{label="Taille";expression={ Get-Octets -File $_ }}

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Merci pour l'explication.
    En effet avec ton exemple je vois comment cela fonctionne.

    c'est donc les commandes utilisées qui ne sont pas les bonnes, d'où la ligne vide.

    pour récupérer les noms de licence, j'utilise la commande Get-MsolAccountSku; les noms de licences sont les AccountSkuId mais ils sont sous la forme que j'ai noté plus haut : "nomdelentreprise:ENTERPRISEPREMIUM"

    je ne sais pas si tu vois ce que je veux dire, où si c'est moi qui ait encore mal compris ce que tu m'explique.

    J'ai essayé en modifiant ton exemple en
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Select-Object DisplayName, @{label = "Licences "; expression = { Get-MsolAccountSku $_.AccountSkuId } }
    mais je me retrouve aussi avec une ligne "Licence" vide

  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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par corly Voir le message
    mais je me retrouve aussi avec une ligne "Licence" vide
    Je n'ai pas O365 pour tester.
    Ici expression :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    expression = { Get-MsolAccountSku $_.AccountSkuId }
    doit renvoyer les informations retravaillées.

    Fait le déjà dans la console avec un foreach, ça te permettre de voir ce qu'il reste à faire.
    A priori une hashtable ou un switch peut suffire :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $CurrentAccount=$_.AccountSkuId
    $CurrentLicences=Get-MsolAccountSku $CurrentAccount|
     Foreach-Object {
       Switch -regex ($_) 
       {
          "nomdelentreprise:ENTERPRISEPREMIUM" { write-Output 'E5'} # ou '*.?:ENTERPRISEPREMIUM' { write-Output 'E5'}
          "nomdelentreprise:STANDARDPACK" { Write-Output 'E1'} # ou  '*.?:STANDARDPACK' { write-Output 'E1'}
       }
    }
    Enfin si j'ai bien compris ton besoin...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Bonjour Laurent,

    merci pour ton retour, je vais tester cela mais je pense que tu as bien compris mon besoin effectivement.

    Mon feedback après mes tests....

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Malheureusement cela me renvoie une valeur nulle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $CurrentLicences=Get-MsolAccountSku $CurrentAccount
    ci-dessous l'erreur ainsi que le résultat lorsque je fais un "select-object" de "AccountSkuId"

    je suis perdu..Nom : PS_o0365.jpg
Affichages : 217
Taille : 190,8 Ko


    Après, s'il n'y a pas de solution, tant pis, je laisserai comme c'est et ferai une notice explicative au pire... ce n'est pas non plus super compliqué à comprendre et tes explications pourront me servir dans d'autres cas

  9. #9
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par corly Voir le message
    je suis perdu..
    Normal, tu prends mon code comme parole d'évangile sans l'intégrer à ton code initiale il en manque donc un bout :-)

    Ceci renvoi les licences d'un user:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Get-MsolUser -UserPrincipalName $user.UserPrincipalName | Format-List DisplayName, Licenses
    et cela le détail:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-MsolAccountSku
    Il te faut raccrocher les wagons (les données) avec le bon cmdlet.
    Ceci
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $CurrentAccount=$_.AccountSkuId
    est incomplet, c'est à toi de dire quel cmdlet produit un objet ayant la propriété AccountSkuId.
    A priori c'est une jointure entre une licence utilisateur et un tableau d'objets licence (du serveur) :
    AccountSkuId. The unique string ID of the account/SKU combination. This value should be used when assigning or updating licenses.
    Si on recherche 0365 AccountSkuId by user on tombe entre autres sur ceci
    Citation Envoyé par corly Voir le message
    Après, s'il n'y a pas de solution,
    Si faut juste prendre le temps de comprendre.
    En étant à côté de toi ça prendrait 10 mn, via un forum c'est plus ou moins long




  10. #10
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Consulte ceci.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Effectivement, j'ai voulu tester seule la commande sans prendre le contexte...
    My Fault.

    Merci en tout cas pour ton aide et pour les liens, cela fonctionne très bien désormais

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

Discussions similaires

  1. Crystal Report remplace les données à afficher
    Par Pascal G. dans le forum Débuter
    Réponses: 5
    Dernier message: 27/06/2018, 19h17
  2. Graphique nuage de points : afficher les noms lors de survol curseur
    Par mini_epsilon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/10/2012, 08h20
  3. [XL-2003] Remplacer les noms et les sources des contrôles d'un userform
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/02/2010, 17h55
  4. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  5. [XSLT] comment afficher tous les noms de balises
    Par stanilas dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/11/2005, 22h24

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