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 :

récupérer des lignes dans le résultat d'une commande [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut récupérer des lignes dans le résultat d'une commande
    Bonjour

    N'ayant pas fais de powershell depuis très (trop) longtemps, j'ai besoin d'une remise en jambe pour répondre à une demande
    La MOA d'une application va réaliser un extract des utilisateurs (que nous appellerons C:/toto.csv pour le moment) renseigné dans son interface et souhaite que je vérifie si les compte sont toujours actif et à quelle "UA" ils appartiennent (c'est un code spécifique de cette société)
    un net user /domain <login_user> me remonte les informations que je veux mais il y a un bon millier de login à traiter, il faut donc passer par une boucle

    exemple de résultat du net user /domain avec mon login :
    *****************************************
    C:\Users\xxxxxxx>net user /domain xxxxxxx
    La demande sera traitée sur contrôleur de domaine du domaine intra.xxx.local.

    Nom d’utilisateur xxxxxxx
    Nom complet XXXXXXXX Xxxxxxx (UA xxxx)

    Commentaire
    Commentaires utilisateur
    Code du pays ou de la région 000 (Valeur par défaut du système)
    Compte*: actif Oui
    Le compte expire 31/07/2020 23:00:00

    Mot de passe*: dernier changmt. 04/11/2019 09:18:20
    Le mot de passe expire 06/01/2020 09:18:20
    Le mot de passe modifiable 12/11/2019 09:18:20
    Mot de passe exigé Oui
    L’utilisateur peut changer de mot de passe Oui

    Stations autorisées Tout
    Script d’ouverture de session
    Profil d’utilisateur \\intra\profils\P001\%XXX_XXXXX%\%username%
    Répertoire de base
    Dernier accès 07/10/2019 12:01:18

    Heures d’accès autorisé Tout

    Appartient aux groupes locaux
    Appartient aux groupes globaux *XX_XXXXXXXX

    La commande s’est terminée correctement.
    *****************************************

    Comment faire pour boucler sur ce fichier C:/toto.csv qui doit servir à alimenter le paramètre login de la commande net user /domain <login_user>
    et pour chaque boucle, récupérer dans un fichier les lignes :
    Nom d’utilisateur xxxxxxx
    Nom complet XXXXXXXX Xxxxxxx (UA xxxx)
    Compte*: actif Oui/Non

    Sachant pour compliquer les choses, que le fichier toto.csv ne comportera sans doute pas que les logins (vu l'extract qui doit être fait), mais ça encore, je peux en faire une version allégé avec juste 1 login par ligne

    J'arrive à peu prêt à comprendre les différents tuto que je trouve mais fusionner tous les cas de figure ensemble pour arriver à ce que je veux ..... ma tête explose :X
    D'avance merci pour l'aide que vous pourriez m'apporter

    PS: désolé, j'ai du tout anonymiser dans l'exemple de mon net user /domain, j'ai des grosses contrainte de secret professionnel

    Vincent

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Tu empreinte une mauvaise voie je pense.

    Si tu fait du Powershell essaie d'utiliser un maximum les commandes Powershell.
    Si tu veux des information concernant un utilisateur dans l'AD utilise Get-ADUser.

    Mais je n'ai pas d'AD sous la main en ce moment.

    A quoi ressemble donc ton toto.csv ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    merci pour la réponse
    Je ne connaissais pas cette commande Get-ADUser (mais ma formation powershell remonte à plus de 6 ans et je ne m'en suis jamais servi depuis :X )
    ça pourrait être une option mais il faudrait tester, ils utilisent ici une surcouche à l'AD pour la gestion des utilisateurs et je ne sais pas quel impact ça peut avoir

    quand au fichier toto.csv, je ne sais pas encore à quoi il va ressembler, il n'a pas encore été généré (ce ne sera peut être même pas un csv .... )

    Je pars sur du vaguement vague avec encore un peu trop d'inconnu, je vais attendre d'avoir plus d'éléments avant de pousser plus loin

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    je vais attendre d'avoir plus d'éléments avant de pousser plus loin
    Bonne idée, en attendant essaie de trouver les informations qui t’intéresse dans l'AD avec la cmdlet.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    je reviens avec plus d'info pour commencer à travailler sérieusement
    Le get-aduser était une bonne idée, malheureusement la surcouche qui est utilisé ici pour gérer l'AD a l'air de rendre impossible l'utilisation de cette commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PS C:\Users\X1234XX> get-aduser -identity "X1234XX"
    get-aduser : Le terme «get-aduser» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez
    l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct et réessayez.
    Au caractère Ligne:1 : 1
    + get-aduser -identity "X1234XX"
    + ~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (get-aduser:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    il va donc falloir que je me débrouille avec le net user /domain et le fichier User_a_verifier.xlsx que j'ai récupéré et qui est construit comme ça :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Code Utilisateur |	Description	| Groupe d'utilisateurs	| Contrat	| Premier écran	| Date d'expiration du Code Utilisateur	 | Date d'expiration du mot de passe	
    X1234XX           | nom/prenom           | groupe AD (=/= de l'UA)  | n/a         | n/a                 | 31/12/2099                                      | 16/12/2019
    (voir le fichier en pièce jointe)

    le nom/prénom je m'en fiche pour faire la verif, le groupe utilisateur ne correspond pas à l'UA, et les 4 colonnes qui suivent ne sont pas utiles
    il faut maintenant que je me débrouille pour boucler sur les 1237 lignes de mon xlsx pour récupérer le login sur la 1ere colonne et sortir un fichier avec les 3 lignes qui m’intéresse du net user /domain (sur 1 ligne si possible, oui je demande le beurre, l'argent du beurre et les faveurs de la crémière :O )

    Nom d’utilisateur xxxxxxx
    Nom complet XXXXXXXX Xxxxxxx (UA xxxx)
    Compte*: actif Oui

    si je ne peux pas utiliser get-aduser, j'ai l'impression que powershell n'est pas la meilleure option pour ce que je veux faire mais dans ce cas, je suis encore plus perdu
    comment faire boucler une commande net user / domain en faisant prendre en paramètre la 1ere colonne de mon fichier en entrée pour obtenir en sortie un fichier avec les infos qui m’intéresse ?

    edit postscriptum : j'ai anonymisé le fichier d'exemple avec Jean-Michel APEUPRET et ses amis, vous pouvez donc faire tout les tests que vous voulez
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    autant dire que ce module ne sera jamais installé ici
    vu le niveau de sécurité qu'ils veulent appliquer, ça passerait par 6/12 mois de validation qui aboutirais sans doute à un refus à cause de la fameuse surcouche sur l'AD

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Tu peux utiliser directement les commande ADSI sans installer de module mais il faut s'y connaitre un peu.
    Et niveau sécurité c'est surement moins bien que RSAT.

    il va donc falloir que je me débrouille avec le net user /domain et le fichier User_a_verifier.xlsx que j'ai récupéré et qui est construit comme ça
    Sans moi pour le coup, il existe des commandes 100 fois mieux je ne vais pas m'obliger à faire de la m***e.

    Bon courage

  9. #9
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    nouvelle info
    Au final, pas besoin de scripter, l'équipe qui gère la surcouche AD a les outils pour faire ce que je demande
    je marque le sujet en "Abandonné" mais si il y en a qui veulent s'amuser à faire ce genre de script pour ceux qui seraient confronté au même genre de situation, ne vous gênez pas

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

Discussions similaires

  1. Comment récupérer des valeurs dans le résultats d'une commande ?
    Par Spheerys dans le forum Général Python
    Réponses: 6
    Dernier message: 22/02/2013, 12h08
  2. [AC-2003] Message de confirmation des modifications dans le résultat d'une requête
    Par Kaera dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/05/2012, 11h59
  3. générer des n° de lignes dans le résultat d'une requête
    Par karimspace dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/09/2007, 21h33
  4. Réponses: 9
    Dernier message: 04/04/2007, 12h16
  5. Recupérer des lignes dans un fichier ou une variable
    Par vince2005 dans le forum Langage
    Réponses: 12
    Dernier message: 29/09/2006, 19h46

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