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 :

Script traitement utilisateurs AD [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut Script traitement utilisateurs AD
    Bonjour,

    Je suis administrateur système et je me lance dans le PowerShell afin de traite une demande de désactivation et suppression de compte Active Directory.
    Apres pas mal de recherche j'ai trouvé mon bonheur à quelques détails prêt.

    Voici mon premier script qui me sert a la désactivation des utilisateurs :
    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
    16
    17
    Import-Module ActiveDirectory 
    
    $Date = Get-Date -format d
    
    Start-Sleep -s 5 
     
    $File=Import-CSV  -path ".\UsersADesactiver.csv"
    
    $LOG=".\log.txt"
     
    foreach ($item in $File) 
    { 
        $login=$item.login 
        Disable-ADAccount -Identity $login
       	ADD-content -path $LOG -value  "$login désactivé le $Date "    
    }
    pause
    Ce script fonctionne bien cependant, je n'arrive pas a faire de contrôle sur les comptes.
    J'aimerai contrôler le fait que l'utilisateur existe bien et qu'il n'est pas désactivé.
    J'ai bien chercher avec l'aide d'un très bon amis (google) mais je n'arrive pas à mettre en place un tel controle.

    Pour ce qui est du deuxième script c'est un peu le même problème, voici le script :
    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
    16
    17
    Import-Module ActiveDirectory 
    
    $Date = Get-Date -format d
    
    Start-Sleep -s 5 
     
    $File=Import-CSV  -path ".\UsersASupprimer.csv"
    
    $LOG=".\log.txt"
     
    foreach ($item in $File) 
    { 
        $login=$item.login 
        Remove-ADUser -Identity $login -Confirm:$false
       	ADD-content -path $LOG -value  "$login supprimé le $Date "    
    }
    pause
    Pareil je voudrais contrôler l'état de l'utilisateur, sa présence dans l'AD, ainsi que l'état de la protection contre la suppression accidentel.

    Je cherche à faire ces contrôles afin de bien logger mes actions, et pouvoir justement savoir l'état réel de mes objet après traitement.

    Je suis sur qu'ici je vais trouver mes réponses.

    Merci d'avance à toutes la communauté developpez.com

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    salut Sebtoune

    voici tous les tests que tu cherche :

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Import-Module ActiveDirectory 
     
    $Date = Get-Date -format d
     
    $File = Import-CSV  -path ".\UsersADesactiver.csv"
     
    $LOG = ".\log.txt"
     
    foreach ($item in $File) { 
        $login = $item.login 
        if (Get-ADUser -Filter {SamAccountName -eq $login}) { # test la presence de l'utilisateur
            if ((Get-ADUser -Filter {SamAccountName -eq $login}).enabled -eq $true) { # test si l'utilisateur est activé
                # test de l'état de la protection contre la suppression accidentel
                if ((Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion).ProtectedFromAccidentalDeletion -eq $true) {
                    Disable-ADAccount -Identity $login
       	            ADD-content -path $LOG -value  "$login désactivé le $Date "
                    }
                }
            }
        }

    n'hésite pas si ta besoin de précision !

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Merci pour la réponse super rapide.
    Je vais de ce pas modifié mes scripts

    Juste une petite question subsidiaire avant toutes choses :
    Est ce que je peux gérer les différents Else?

    Par exemple:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Import-Module ActiveDirectory 
    
    $Date = Get-Date -format d
    
    Start-Sleep -s 5 
     
    $File=Import-CSV  -path ".\UsersADesactiver.csv"
    
    $LOG=".\log.txt"
     
    foreach ($item in $File) 
    { 
        if (Get-ADUser -Filter {SamAccountName -eq $login}) { # test la presence de l'utilisateur
    
            if ((Get-ADUser -Filter {SamAccountName -eq $login}).enabled -eq $true) # test si l'utilisateur est activé
            { 
        
                $login=$item.login 
                Disable-ADAccount -Identity $login
       	        ADD-content -path $LOG -value  "$login : compte désactivé le $Date "    
            }
            Else #l'utilisateur est désactivé 
            {
                Add-Content -path $LOG -value  "$login : compte deja désactivé "
            }
        Else #L'utilisateur n'existe pas 
        {
             Add-Content -path $LOG -value  "$login : l'utilisateur n'existe pas "
        }
    }
    pause
    J'ai un doute sur le cheminement des "ELSE"

    Merci encore.

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Je vais le tester et je reviendrais dire le résultat...
    Je vais quand même pas attendre qu'on me mâche le travail... Un peu de recherche voyons...

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Est on obligé d'utiliser -filter dans la requete ou on peux utiliser le -identity de mon script du départ?

    Merci en tout cas, j'avance doucement mais surement et je cherche aussi à bien comprendre pour ne pas faire de copier coller "bêtement"

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    Est on obligé d'utiliser -filter dans la requete ou on peux utiliser le -identity de mon script du départ?
    l'utilisation de filter permet de ne pas avoir de message d'erreur si l'utilisateur n'existe pas
    il est donc utile pour le premier if
    après tu fais comme tu veux ! mais ça change rien au résultat de la recherche !

    J'ai un doute sur le cheminement des "ELSE"
    tu a tres bien fais tes IF/ELSE pas de probleme sur ce point !

    je cherche aussi à bien comprendre pour ne pas faire de copier coller "bêtement"
    c'est une bonne chose
    pose toutes les questions donc t'a besoin, j'essaierais dis répondre au mieux

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Merci bcp pour la réponse.
    J'ai juste un problème lors de l’exécution du script avec -Filter

    Alors je m'explique, j'ai fait les modifs sur mon scirpt et il ne marche pas, j'ai donc pris les lignes de commandes afin de tester le resultats des lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Identity login
    Cela fonctionne tres bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq login}
    La j'ai un msg d'erreur que voici :
    Get-ADUser : Erreur lors de l’analyse de la requête: «SamAccountName -eq login» Message d’erreur: «syntax error» à la position: «20».
    Au caractère Ligne:1 : 1
    + Get-ADUser -Filter {SamAccountName -eq login}
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ParserError: ( [Get-ADUser], ADFilterParsingException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADFilterParsingException,Microsoft.ActiveDirector
    y.Management.Commands.GetADUser
    Bien entendu je n'ai pas mis "login" mais bien un vrai login présent sur mon AD ^^

    Je suis dans un environnement assez sécurisé, est ce que cela pourrai provenir d'un droit de délégation que je n'aurai pas? (normalement je les ai tous mais on ne sait jamais)
    Peut être que la méthode de test n'est pas la bonne?

    Merci encore pour l'aide que tu pourra m'apporter

  8. #8
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Citation Envoyé par Sebtoune Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq login}
    La j'ai un msg d'erreur que voici :


    Bien entendu je n'ai pas mis "login" mais bien un vrai login présent sur mon AD ^^
    Erreur résolu, il faut mettre le login entre " ' "

    Cependant mon script ne veux pas se lancer, j'ai toujours un msg d'erreur lors du lancement du script :
    .\DesactivationUserAD.ps1 : Impossible de charger le fichier
    C:\temp\DesactivationUserAD.ps1, car son exécution est bloquée par des
    stratégies de restriction logicielle, telles que celles créées à l'aide de la
    stratégie de groupe.
    Au caractère Ligne:1 : 1
    + .\DesactivationUserAD.ps1
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : Erreur de sécurité*: ( [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
    Alors que mon premier script fonctionnait parfaitement ....

    Edit 1 :
    Premier problème corrigé tout seul comme un grand
    il devait y avoir un problème d'UAC, j'ai lancé le script en tant qu'administrateur et la il m'a dit qu'il me manquait un } en fin de script ...
    Je l'ai ajouté et la il fonctionne, sauf qu'il ne reconnait pas mon 2eme ELSE...

    Je ne commence surement pas le powershell avec le plus simple mais au moins ... c'est formateur

    Edit 2 :
    Le script de désactivation fonctionne très bien, juste quelque erreur de } pas bien placé...
    Merci pour les aides au départ, tu m'a mis sur la bonne voie....
    Je me lance sur le 2eme Script de suppression de compte.

  9. #9
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    Je ne commence surement pas le powershell avec le plus simple mais au moins ... c'est formateur
    te décourage pas t'es sur la bonne voie

    pour le login si tu a des caractères spéciaux il vaut mieux que tu le mettre entre guillemets, voir dans une variable

    pour le blocage du script regarde sur ce blog
    c'est souvent la stratégie d’exécution de PowerShell qui coince

  10. #10
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Merci encore
    Je ne me décourage presque jamais ^^
    Je suis tenace lol

    Voila donc mon premier script PowerShell :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Import-Module ActiveDirectory 
    
    $Date = Get-Date | foreach {$_ -replace "/","_"}| foreach {$_ -replace ":","_"}
    
    Start-Sleep -s 5
     
    $File=Import-CSV  -path ".\UsersADesactiver.csv"
    
    $LOG=".\log_descativ_$date.txt"
    
    $executor = [environment]::UserName
    
    $DesactivatedUser = 0
    $AlreadyDesactivatedUser = 0
    $NoUser = 0
    $User = 0
    
    Add-Content -path $LOG -value  "  Script lancé par $executor"
    Add-Content -path $LOG -value  "_____________________________________________________________________"
     
    foreach ($item in $File) 
    { 
        $user ++
        $login=$item.login 
        if (Get-ADUser -Filter {SamAccountName -eq $login}) # test la presence de l'utilisateur
        {
        
    
        if ((Get-ADUser -Filter {SamAccountName -eq $login}).enabled -eq $true) # test si l'utilisateur est activé
            {  
                $DesactivatedUser ++
                Disable-ADAccount -Identity $login
       	        ADD-content -path $LOG -value  "$login : compte désactivé  "    
            }
            Else #l'utilisateur est désactivé 
            {
                $AlreadyDesactivatedUser ++
                Add-Content -path $LOG -value  "$login : compte deja désactivé "
            } 
           
            
        }
        Else #L'utilisateur n'existe pas 
        {
            $NoUser ++
             Add-Content -path $LOG -value  "$login : l'utilisateur n'existe pas "
        }
    }
    
        Add-Content -path $LOG -value  "_____________________________________________________________________"
        Add-Content -path $LOG -value "Nombre de compte désactivé : $DesactivatedUser "
        Add-Content -path $LOG -value "Nombre de compte deja désactivé : $AlreadyDesactivatedUser"
        Add-Content -path $LOG -value "Nombre de compte inexistant : $NoUser"
        Add-Content -path $LOG -value "Nombre de compte traité : $User"
    
    pause
    Donc un peu plus poussé qu'au départ, avec des contrôles sur le nombre de compte traité et un log plus poussé et plus complet.

    Pour ce qui est du deuxième script, celui concernant la suppression des comptes, je bloque sur la partie modification du champ ProtectedFromAccidentalDeletion.
    Je te remercie en tout cas.

    Pourrai tu m'expliquer pourquoi on double le ProtectedFromAccidentalDeletion dans cet ligne de code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion).ProtectedFromAccidentalDeletion -eq $true)
    Merci encore

  11. #11
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Voila voila mon deuxieme script fonctionnel...
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Import-Module ActiveDirectory 
    
    Start-Sleep -s 5 
    
    $Date = Get-Date | foreach {$_ -replace "/","_"}| foreach {$_ -replace ":","_"}
     
    $File=Import-CSV  -path ".\UsersASupprimer.csv"
    
    $LOG=".\Log_Delete_$date.txt"
    
    $executor = [environment]::UserName
    
    $DeleteUser = 0
    $ProtectUser = 0
    $NoUser = 0
    $User = 0
    
    Add-Content -path $LOG -value  "  Script lancé par $executor"
    Add-Content -path $LOG -value  "_____________________________________________________________________"
     
    foreach ($item in $File) 
    { 
        $User ++
        $login=$item.login 
        if (Get-ADUser -Filter {SamAccountName -eq $login}) # test la presence de l'utilisateur
        {
            if ((Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion).ProtectedFromAccidentalDeletion -eq $true) #test protection contre la suppresion accidentelle 
            {
                Get-ADUser -identity $login | set-ADobject -ProtectedFromAccidentalDeletion $false
                Remove-ADUser -Identity $login -Confirm:$false
    
                ADD-content -path $LOG -value  "$login : l'utilisateur protégé contre la supression accidentelle supprimé"
                $ProtectUser ++
            }
            Else
            {
                Remove-ADUser -Identity $login -Confirm:$false
    
                ADD-content -path $LOG -value  "$login : l'utilisateur est supprimé "
                $DeleteUser ++
            }
        }
    
        Else #L'utilisateur n'existe pas 
        {
             Add-Content -path $LOG -value  "$login : l'utilisateur n'existe pas "
             $NoUser ++
        }
      
    }
    
        Add-Content -path $LOG -value  "_____________________________________________________________________"
        Add-Content -path $LOG -value "Nombre de compte protegé supprimé : $ProtectUser"
        Add-Content -path $LOG -value "Nombre de compte non protegé supprimé : $DeleteUser"
        Add-Content -path $LOG -value "Nombre de compte inexistant : $NoUser"
        Add-Content -path $LOG -value "Nombre de compte traité : $User"
    
    pause
    Merci 6ratgus pour ton aide.
    Si juste tu pouvais m'expliquer pourquoi on double le ProtectedFromAccidentalDeletion dans cet ligne de code?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion).ProtectedFromAccidentalDeletion -eq $true)
    Je passe en résolu ce post.

  12. #12
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    Voila voila mon deuxieme script fonctionnel...
    bonne nouvelle

    Si juste tu pouvais m'expliquer pourquoi on double le ProtectedFromAccidentalDeletion dans cet ligne de code?
    il faut decomposer cette ligne pour comprendre !

    avec l'écriture normal pour avoir les infos d'un utilisateur, tu le remarque dans le résultat afficher qu'il n'y a pas la propriété ProtectedFromAccidentalDeletion :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq $login}

    tu peut confirmer sont absence en forcent l'affichage de toutes les propriétés :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq $login} | Format-List *

    ou encore en affichent les members de l'objet renvoyer comme ceci :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq $login} | Get-Member

    voila donc la raison du premier "ProtectedFromAccidentalDeletion" après le paramètre "-Properties"
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion

    pour le second "ProtectedFromAccidentalDeletion" après la parenthèse et le point, il sert a n'avoir que l'attribut "ProtectedFromAccidentalDeletion" :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (Get-ADUser -Filter {SamAccountName -eq $login} -Properties ProtectedFromAccidentalDeletion).ProtectedFromAccidentalDeletion

    tous comme je le fais pour le "DistinguishedName" ci-dessous :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (Get-ADUser -Filter {SamAccountName -eq $login}).DistinguishedName

    j'espère être clair !

  13. #13
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    oui je crois que je comprend bien.
    Je vais me servir de cet exemple et faire des test en ligne de commande pour bien finaliser la compréhension

    Je me lance dans un nouveau script et je crois que ca va bien me servir toutes ces explications.

    Merci encore d'avoir pris du temps pour m'aider et m'expliquer les choses

  14. #14
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    je suis heureux de voir que je ne suis pas si mauvais dans mes explications !!!

    pour complété l'explication,
    cette écriture "un objet entre parenthèse point une propriété" renvoie la valeur de la propriété d'un objet unique
    et dans le cas d'un tableau d'objet renvoie la valeur de la propriété de tous les objets du tableau !
    et l'objet renvoyer est un tableau du type de la propriété (ici string) et affiche une liste de chaine de caractères sans nom de colonne

    exemple toujours sur les users AD :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (Get-ADUser -Filter {SamAccountName -like  "a*"}).Name
    cette ligne renvoie donc le nom de tous les utilisateurs dont le login commence par A !

    ça fonctionne quelques soit objet tableau de chaine de caractères, tableau de fichiers (get-childitem), etc...
    exemple pour get-childitem :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (get-childitem).fullname
    on peut l'apparenté a une autre ecriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    get-childitem | select fullname
    # ou encore
    get-childitem | Format-Table fullname
    avec une différence quand même,
    des deux dernières écriture renvoie un tableau du type de objet source (ici dans la premier exemple Selected.System.IO.DirectoryInfo et Selected.System.IO.FileInfo) et affiche une liste avec un nom de colonne

  15. #15
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 17
    Par défaut
    Non, je te rassure tu es plutot bon dans tes explications.
    Si tu veux te reconvertir en Prof, pas de soucis tu peux y aller^^

    je fait quelque test avec les lignes que tu m'a envoyé, et j'apprend, j'apprend, j'essai d'autres choses et surtout de bien comprendre

    Je vais pas tarder à pouvoir mettre expert PowerShell sur mon CV grace à toi

  16. #16
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    Non, je te rassure tu es plutot bon dans tes explications.
    Si tu veux te reconvertir en Prof, pas de soucis tu peux y aller^^
    je te remercie

    Je vais pas tarder à pouvoir mettre expert PowerShell sur mon CV grace à toi
    je pense que je vais facturé les cours pour devenir expert

    au passage je remercie Laurent Dardenne qui m'a permis de devenir le prof que je suis aujourd'hui !!
    .

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

Discussions similaires

  1. Scripts Création Utilisateur
    Par Hacksign dans le forum Windows Serveur
    Réponses: 15
    Dernier message: 15/02/2008, 17h35
  2. [Recherche] script session utilisateurs ..
    Par cuisto44000 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/02/2008, 16h28
  3. [exchange 2007] créer script nvl utilisateur
    Par valoche51_2 dans le forum Exchange Server
    Réponses: 0
    Dernier message: 05/12/2007, 12h02
  4. [PERL]: Help script traitement fichier txt tabulaire
    Par Piccolupo13 dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2007, 21h37
  5. Réponses: 3
    Dernier message: 26/07/2007, 00h07

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