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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    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 : 310
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
    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 averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    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
    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 averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    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
    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...

+ 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