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 :

problème de lenteur avec un export [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Points : 3
    Points
    3
    Par défaut problème de lenteur avec un export
    Bonjour,

    J'utilise Powershell depuis plusieurs années mais je constate un comportement très bizarre et j'aimerais avoir votre avis pour savoir si cela est normal ou si ca peut ce corriger/contourner.

    Voici mon test, je récupère la liste d'utilisateur, une fois en spécifiant un controleur de domaine et l'autre sans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $UserA = Get-ADUser -Filter * -Properties *
    $UserB = Get-ADUser -Filter * -Properties * -Server $DC

    Puis je les export en CSV avec par exemple.

    Le problème est le suivant, l'export UserB est BEAUCOUP plus long.
    Je ne parle pas du temps pour les Get-Aduser bien entendu, JUSTE de l'export CSV.
    L'export A prend 0,3s
    L'export B prend 46s

    Si je coupe ma connexion réseau pour l'export CSV, l'export UserB n'est pas complet, j'ai des propriétés sont vides (le champ mail par exemple).
    Powershell semble donc ne pas tout stocker en variable et des propriétés semblent être récupérées à la volé.

    Donc, est-ce normal ?
    Comment rendre la chose plus rapide si c'est le cas ?

    Si vous voulez mon script de test pour reproduire le comportement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $UserA = Get-ADUser -Filter * -Properties * -SearchBase $OU
    $UserB = Get-ADUser -Filter * -Properties * -SearchBase $OU -Server $DC
    (Measure-Command {$UserA | Export-Csv -Path ".\UserA.csv"}).TotalSeconds
    "Export avec DC"
    (Measure-Command {$UserB | Export-Csv -Path ".\UserB.csv"}).TotalSeconds

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    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 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Bonjour,

    Il serait intéressant d'avoir aussi les temps des 2 GetAdUser.
    Cela doit être des propriétés "lazy" : https://learn.microsoft.com/fr-fr/do...initialization

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Bonjour,

    Il serait intéressant d'avoir aussi les temps des 2 GetAdUser.
    Cela doit être des propriétés "lazy" : https://learn.microsoft.com/fr-fr/do...initialization

    Citation Envoyé par ericlm128 Voir le message
    Bonjour,

    Il serait intéressant d'avoir aussi les temps des 2 GetAdUser.
    Cela doit être des propriétés "lazy" : https://learn.microsoft.com/fr-fr/do...initialization
    Merci bien, je connaissais pas du tout ce fonctionnement, je pensais que tout est init dès le début.
    Sur un DC rapide, l'export l'est également, sur un un lent, l'export le devient.

    J'ai trouvé un autre "contournement" grâce à ta doc, en spécifiant le select-object avec le GET et non au moment de l'export, la valeur est donc init et stockée.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $UserB = Get-ADUser -Filter * -Properties * -SearchBase $OU -Server $DC | Select-Object -Property *
    $UserB | Export-Csv -Path ".\UserB.csv"
    Merci bien

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

Discussions similaires

  1. pb de lenteur avec Index
    Par LeNeutrino dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 19/12/2006, 11h48
  2. Réponses: 4
    Dernier message: 10/08/2006, 17h00
  3. Problème avec l'export en VBA
    Par ludvax dans le forum Access
    Réponses: 4
    Dernier message: 24/02/2006, 14h38
  4. [Oracle 9i/Export] Pb avec un export full de ma base
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 19
    Dernier message: 23/11/2004, 08h16
  5. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43

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