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 :

Add-ADGroupMember : confusion entre les attributs Identity et Member [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut Add-ADGroupMember : confusion entre les attributs Identity et Member
    Bonjour,

    dans mon code, le message d'erreur montre qu'il prend pour valeur de l'attribut Identity la valeur attribuée à Member. Peut-on m'expliquer ?

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Add-ADGroupMember -Identity $groupdestOK -Member $member_already_displayed -Server "gad.schneider-electric.com"

    message d'erreur :
    Add-ADGroupMember : Impossible de trouver un objet avec l’identité «SESA23161» sous: «
    DC=gad,DC=schneider-electric,DC=com».
    Or SESA23161 est la valeur de la variable $member_already_displayed qui est attribuée à l'attribut Member et non Identity.
    Donc où est le problème ?

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je reviens après une semaine de congés. Apparemment, mon problème n'a pas inspiré grand monde...

    Je vais essayer de donner plus de détails.
    L'objectif est de sélectionner un groupe à copier puis de sélectionner un groupe destinataire où l'on souhaite coller le contenu du groupe copié. (en gros un copier-coller d'un groupe sur un autre).

    Voici le script complet pour faire ça (je ne mets pas le script list_der.ps1, car il fonctionne donc ça n'apporterait rien) :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #vider le contenu du fichier, s'il existe
    $scriptPath = split-path -parent $MyInvocation.MyCommand.Definition #chemin du script en cours
    if (test-path $scriptPath\..\output_files\member.csv) {clear-content $scriptPath\..\output_files\member.csv}
     
    #liste déroulante, pour sélectionner le groupe à copier
    . "$scriptPath\liste_der.ps1"
    $groupsource=$liste1.Text
    Write-Host "groupsource="$groupsource
     
    #liste déroulante, pour sélectionner le groupe à alimenter
    . "$scriptPath\liste_der.ps1"
    $groupdest=$liste1.Text
    Write-Host "groupdest="$groupdest
     
    $member_already_displayed=@()
    $member=(Get-ADGroupMember -Identity $groupsource  -Server "gad.schneider-electric.com" | select -Unique).name 
     
    if (!($member_already_displayed -Contains $member)) { 
                $member_already_displayed+=$member 
                Write-Host "member_already_displayed="$member_already_displayed
    }
     
    if ($member_already_displayed) {                
        $groupdestOK = Get-ADGroup -filter {name -eq $groupdest}  -Server "gad.schneider-electric.com" #génération d'une variable comprise pr la cmdlet Add-ADGroupMember
        if ($groupdestOK) {
            Add-ADGroupMember -Identity $groupdestOK -Member $member_already_displayed -Server "gad.schneider-electric.com"
        }
    }       
     
     
    $member_already_displayed  | set-content -path $scriptPath\..\output_files\member.csv
    Pour écrire ce script, je me suis inspiré d'un autre script qui alimente lui aussi un groupe AD et celui-ci fonctionne donc je ne comprends pas le message d'erreur du post #1. Quelqu'un comprend ?

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    C'est un peu désolant de ne pas recevoir d'aide car je suis coincé. Vu qu'il semble intervertir les paraètres Identity et Member, j'ai fait l'échange dans ma ligne de code : Add-ADGroupMember -Identity $member_already_displayed -Member $groupdestOK -Server "gad.schneider-electric.com" à la place de Add-ADGroupMember -Identity $groupdestOK -Member $member_already_displayed -Server "gad.schneider-electric.com" mais cela donne un autre message d'erreur :
    Add-ADGroupMember : Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADGroup' required by
    parameter 'Identity'. Specified method is not supported.
    Vu le message d'erreur, je pense qu'il ne fallait pas intervertir...

    Un truc quand même : la cmdlet Get-ADGroupMember est censée retourner tous les membres du groupe AD désigné par le paramètre Identity. Or mon code nécessite d'affecter un seul membre à la fois dans la variable $member. Comment corriger mon code pour que ce soit le cas ?

  4. #4
    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 laurentSc

    il arrive que personne ne réponde; souvent parce qu'on ne sais pas, parfois parce qu'il faut lire la doc , et d'autre fois parce que c'est evident pour nous ! pas pour toi

    dans la doc on voir que on peut donner plusieurs utilisateurs ou groupes ou ordinateurs comme membres, mais il faut qu'ils soit au format objet !!!
    ex : les utilisateurs -> Microsoft.ActiveDirectory.Management.ADUser
    soit donc extrait d'un get-ADUser

    dans ton cas tu doit plutôt faire une boucle puis Get-ADGroupMembe renvoie un objet de type : Microsoft.ActiveDirectory.Management.ADPrincipal !!

    ex de boucle :
    $member_already_displayed | foreach {Add-ADGroupMember -Identity $groupdestOK -Member $_}

    bon courage pour la suite

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    je te remercie pour ta réponse ; même si je suis depuis quelques années sur ce forum, Powershell, ça fait que un mois ou 2...
    La doc, je le regarde pas ; quand, je cherche de l'aide, je fais un help...Ca suffit pas ?

    Tu dis que les membres doivent être issus d'un get-ADUser mais dans l'exemple de boucle que tu donnes, y en a pas ???

    Et si j'utilise ta boucle, la variable $member_already_displayed est vide !

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $groupdestOK = Get-ADGroup -filter {name -eq $groupdest}  -Server "gad.schneider-electric.com" #génération d'une variable comprise pr la cmdlet Add-ADGroupMember
    $member_already_displayed=@()
    $member_already_displayed | foreach {Add-ADGroupMember -Identity $groupdestOK -Member $_}
    Write-Host "member_already_displayed="$member_already_displayed

  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
    Citation Envoyé par laurentSc Voir le message
    Bonjour,
    La doc, je le regarde pas ; quand, je cherche de l'aide, je fais un help...Ca suffit pas ?
    si bien sur, perso j'utilise l'ISE, avec le volet commande qui te donne l'accès à l'aide et au paramétrage

    Tu dis que les membres doivent être issus d'un get-ADUser mais dans l'exemple de boucle que tu donnes, y en a pas ???
    je me suis mal exprimé, si tu rajoute un seul membre tu peut mettre un string sinon tu doit utilisé un objet de type "ADUser"
    dans la boucle que je t'ai donner le pipeline envoie un par un les membres à Add-ADGroupMember

    [/QUOTE]Et si j'utilise ta boucle, la variable $member_already_displayed est vide ![/QUOTE]c'était un exemple basé sur ton premier message.
    dans le dernier l'exemple de code que tu donne tu ne met rien dans $member_already_displayed

    pour ton cas ce serait plutôt ceci :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $member=(Get-ADGroupMember -Identity $groupsource  -Server "gad.schneider-electric.com" | select -Unique).name
    $member | foreach {Add-ADGroupMember -Identity $groupdestOK -Member $_}
    Add-ADGroupMember rajoute les membres $membre du groupe $groupsource au groupe $groupdestOK

    si je regarde bien, je voie que tu cherche a rajoute les membres d'un groupe dans un autre en vérifient qu'ils n'y soit pas déjà (pour ne pas généré d'erreur je suppose) !! c'est bien ça ?

  7. #7
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Mon essai prouve bien que je débute en Powershell ! En fait, ta boucle, je l'avais récupérée par copier-coller mais sans en comprendre la syntaxe...Et maintenant je comprends bien aussi pourquoi pas besoin d'un get-ADUser dans un foreach {...$_...}

    En fait, le groupe groupdestOK est supposé vide au départ, et il s'agit juste de faire un copier-coller du groupsource sur le groupdestOK.

    Et je crois que mon test sur l'existence du membre, c'est faire ceinture et bretelle, vu le select -Unique dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $member=(Get-ADGroupMember -Identity $groupsource  -Server "gad.schneider-electric.com" | select -Unique).name
    Mais si comme tu l'indiques, je fais
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $member=(Get-ADGroupMember -Identity $groupsource  -Server "gad.schneider-electric.com" | select -Unique).name
    $member | foreach {Add-ADGroupMember -Identity $groupdestOK -Member $_}

    Add-ADGroupMember : Impossible de trouver un objet avec l’identité «*SESA23161*» sous*: «*DC=gad,DC=schneider-electric,DC=com*».
    At C:\Users\sesa27384\Documents\aalaurent\boulot\powershell\zip\scripts\copy_groupnew.ps1:17 char:20
    + $member | foreach {Add-ADGroupMember -Identity $groupdestOK -Member $_}
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (SESA23161:ADPrincipal) [Add-ADGroupMember], ADIdentityNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMemb
    er

  8. #8
    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 tiens à m'excusé car le script que je tai donné ne fonctionne pas !!!

    perso j'utilise cette écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADGroupMember $groupsource | foreach {Add-ADGroupMember -Identity $groupdestOK -members $_; $_.name}
    le "; $_.name" est utilisé pour afficher les noms des groupes copier

    si je lis mieux la doc on ne peut que des objet AD pour les membres :
    The objects specified for this parameter are processed as Microsoft.ActiveDirectory.Management.ADPrincipal objects. Derived types, such as the following are also received by this parameter.
    Microsoft.ActiveDirectory.Management.ADUser
    Microsoft.ActiveDirectory.Management.ADComputer
    Microsoft.ActiveDirectory.Management.ADServiceAccount
    Microsoft.ActiveDirectory.Management.ADGroup
    en faite l'identifiant d'un membre ne peut avoir qu'un de ces format : Distinguished Name, GUID (objectGUID), Security Identifier (objectSid), SAM Account Name (sAMAccountName)
    voir la doc pour plus de details ...
    et pour un utilisateur le sAMAccountName et diffèrent du name alors que pour un groupe ils sont identique (normalement),
    ce qui fait que mes tests fonctionnais et pas les tiens, car j'utilise des utilisateurs ou groupes avec le même name et sAMAccountName pour mes tests (c'est plus simple)
    je vais y faire attention a partir de maintenant !!
    pour conclure il faut pas utilisé le name !!!!!

    si je ne me trompe pas sur les noms de groupes et utilisateurs que tu utilise, ceci devrait confirmer ce que je viens de dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Add-ADGroupMember -Identity "GAD-SU-NextGenPDM_NonPROD" -Members "SESA23161"
    il faut que SESA23161 soit un nom et non un groupe !
    et tu aurra une belle erreur alors tous semble bon !!


    Et je crois que mon test sur l'existence du membre, c'est faire ceinture et bretelle, vu le select -Unique dans
    deux chose sur ce point :
    le select -unique ne sert a rien !! car il ne peut y avoir qu'une seule fois un utilisateur/groupe dans un groupe
    la cmdlet Add-ADGroupMember peut être executer plusieurs fois avec les membres sans provoqué d'erreur !


    bon courage pour la suite !

  9. #9
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    j'ai laissé passer plusieurs faute de disponibilité et de groupe AD disponible pour faire des tests. Je reviens ce soir. J'avoue ne pas comprendre l'écriture que tu proposes. Néanmoins je l'ai essayée ainsi :

    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
    #vider le contenu du fichier, s'il existe
    $scriptPath = split-path -parent $MyInvocation.MyCommand.Definition #chemin du script en cours
    if (test-path $scriptPath\..\output_files\member.csv) {clear-content $scriptPath\..\output_files\member.csv}
     
    #liste déroulante, pour sélectionner le groupe à copier
    . "$scriptPath\liste_der.ps1"
    $groupsource=$liste1.Text
    Write-Host "groupsource="$groupsource
     
    #liste déroulante, pour sélectionner le groupe à alimenter
    . "$scriptPath\liste_der.ps1"
    $groupdest=$liste1.Text
    Write-Host "groupdest="$groupdest
     
    $groupdestOK = Get-ADGroup -filter {name -eq $groupdest}  -Server "gad.schneider-electric.com" #génération d'une variable comprise pr la cmdlet Add-ADGroupMember
     
    Get-ADGroupMember $groupsource | foreach {Add-ADGroupMember -Identity $groupdestOK -members $_; $_.name}

    ...et
    Get-ADGroupMember : Impossible de trouver un objet avec l’identité «GAD-SU-NextGenPDM_NonPROD» sous: «
    etc
    donc je m'y prend mal.
    GAD-SU-NextGenPDM_NonPROD est le nom de $groupsource.
    C'est quoi mon problème ? Et STP détaille moi un peu la ligne 17...

  10. #10
    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
    Citation Envoyé par laurentSc Voir le message
    Bonsoir,
    Get-ADGroupMember : Impossible de trouver un objet avec l’identité «GAD-SU-NextGenPDM_NonPROD» sous: «
    etc
    donc je m'y prend mal.
    GAD-SU-NextGenPDM_NonPROD est le nom de $groupsource.
    une de ces deux lignes (normalement les deux) te donne le même message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Get-ADGroupMember "GAD-SU-NextGenPDM_NonPROD"
    Get-ADGroupMember $groupsource
    essai ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Get-ADGroupMember "GAD-SU-NextGenPDM_NonPROD"  -Server "gad.schneider-electric.com"
    Get-ADGroupMember $groupsource  -Server "gad.schneider-electric.com"
    sinon on retombe sur le problème de l'attribut name different du sAMAccountName du groupe dont l'on a déjà parler



    C'est quoi mon problème ?
    je crois que je n'arrive pas a te faire comprendre que les cmdlets AD ne travail pas avec le name mais avec un de ces quatre attributs :
    Distinguished Name (distinguishedName), GUID (objectGUID), Security Identifier (objectSid), SAM Account Name (sAMAccountName)

    si c'est bien la le problème, il va te falloir revoir cette ligne voir d'autres parties du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $groupsource=$liste1.Text
    tu peut peut-être faire un tableau avec les deux propriétés
    $listegroupes.name, pour affichage dans la from
    $listegroupes.sAMAccountName, pour le travail avec les cmdlets AD



    Et STP détaille moi un peu la ligne 17...
    je pense que c'était clair pour toi mais voila :
    Get-ADGroupMember $groupsource # la recup des membres du groupe $groupsource
    | foreach { # suivit du foreach qui transmet un par un, via la variable $_, les éléments renvoyer par get-adgroupmember
    Add-ADGroupMember -Identity $groupdestOK -members $_ # rajoute dans le groupe $groupdestOK l'utilisateur contenue dans $_
    $_.name # affichage le nom de l'utilisateur contenue dans $_
    } # fin de la boucle !!!!

    Ps : j'ai relu mon precedent pst et le crois que je ne fini pas mes phrase parfois
    sans oublier les "quelques" fautes orthographes/frappes
    j'en suis désolé mais c'est irréversible dans mon etat ...

  11. #11
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    j'avais vu ta réponse hier mais pas dispo pour la traiter avant ce matin...

    Déjà le fait d'ajouter -Server "gad.schneider-electric.com" à Get-ADGroupMember $groupsource a supprimé le message d'erreur, mais j'en ai un autre : Add-ADGroupMember : Droits d’accès insuffisants pour effectuer cette opération
    Dès que je disposerai d'un groupe AD sur lequel faire des essais, ça ira mieux...

    $_.name # affichage le nom de l'utilisateur contenue dans $_
    il manque pas un ; ?

    tu peut peut-être faire un tableau avec les deux propriétés
    $listegroupes.name, pour affichage dans la from
    $listegroupes.sAMAccountName, pour le travail avec les cmdlets AD
    Vu que le message d'erreur a disparu, pas sûr d'en avoir besoin. Si oui, c'est quoi la from ?

  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
    il manque pas un ; ?
    le point virgule est un séparateur de commande lorsque l'on met plusieurs commandes sur la même ligne !!
    sinon il ne sert pas en temps normal

    c'est quoi la from ?
    la from est un erreur de frappe comme j'en fais souvent !!
    je voulais dire ta form, l'interface graphique que tu essai de mettre en place

  13. #13
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Ca y est ; j'ai un AD opérationnel ! Et ça marche !

  14. #14
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    "Ca marche" ; disons que ça ne plante plus mais le résultat obtenu n'est pas celui attendu ; sachant que dans mon cas les membres sont tous des utilisateurs et non des groupes et que je ne veux sélectionner que les utilisateurs actifs, j'ai remplacé la ligne Get-ADGroupMember $groupsource | foreach {Add-ADGroupMember -Identity $groupdestOK -members $_; $_.name} par Get-ADUser -filter "(enabled -eq '$true')" -Server "gad.schneider-electric.com"| foreach {Add-ADGroupMember -Identity $groupdest -Server "gad.schneider-electric.com" -members $_; $_.name}Get-ADUser afin de pouvoir utiliser le paramètre -filter mais là, pas moyen de spécifier le groupe AD de ces utilisateurs ; du coup, ce qui va dans $groupdest est faux ; comment faire ?

  15. #15
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Si j'essaie Get-ADUser -filter "(enabled -eq '$true')" -Identity $groupsource -Server "gad.schneider-electric.com"| foreach {Add-ADGroupMember -Identity $groupdest -Server "gad.schneider-electric.com" -members $_; $_.name} il est pas content et je ne peux pas utiliser Get-ADGroupMember vu que j'ai besoin du paramètre -filter, donc comment faire ?

  16. #16
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Comme je n'ai pas la patience, comme la dernière fois, d'attendre 15 jours pour avoir une réponse , je me sus creusé les méninges et ai essayé un script :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $member="";
    if ($add=Get-ADUser -filter "enabled -eq '$true'" -Identity $groupsource -Server "gad.schneider-electric.com") {
        $member+=$add
    }
    Add-ADGroupMember -Identity $groupdest -Member $member -Server "gad.schneider-electric.com"
    #Get-ADUser -filter "(enabled -eq '$true')" -Identity $groupsource -Server "gad.schneider-electric.com"| foreach {Add-ADGroupMember -Identity $groupdest -Server "gad.schneider-electric.com" -members $_; $_.name}
    mais ça ne lui plaît pas :
    Get-ADUser : Parameter set cannot be resolved using the specified named parameters.
    At...
    Peut-on m'aider ?

  17. #17
    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
    c'est pas bon l'impatience !!!
    fait comme moi prend des vacances pour te relaxé

    Get-ADUser afin de pouvoir utiliser le paramètre -filter mais là, pas moyen de spécifier le groupe AD de ces utilisateurs ; du coup, ce qui va dans $groupdest est faux
    encore une fois tu lis pas les doc
    et de plus tu n'apprend pas de tes expériences !!

    tu ne peut pas choisir comment doit fonctionner une instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADUser -filter "enabled -eq '$true'" -Identity $groupsource
    c'est soit identity soit filter mais pas les deux !!! lis la doc

    essai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get-aduser  -Properties memberof -filter {enabled -eq $true -and MemberOf -like $groupsource}

  18. #18
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par 6ratgus Voir le message
    et de plus tu n'apprend pas de tes expériences !!
    Quelle expérience ?

    Citation Envoyé par 6ratgus Voir le message
    essai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get-aduser  -Properties memberof -filter {enabled -eq $true -and MemberOf -like $groupsource}
    Merci pour cette proposition, mais je ne pourrai l'essayer que demain car aujourd'hui, je suis en vacances (temps partiel) et la connexion à distance est actuellement en panne...

  19. #19
    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
    bonne vacances alors

    Quelle expérience ?
    tu travail avec PowerShell depuis plusieurs semaines, ça te donne une bonne expérience !!

    de plus, a chaque fois que tu essai utilise une commande qui ne fonctionne pas, tu apprend une mauvaise utilisation !
    et a chaque fois que ça fonctionne tu apprend une des bonnes syntaxes pour une commande !!


    Pensées, citations et proverbes célèbres sur les erreurs :

    L’homme sage apprend de ses erreurs,
    l’homme plus sage apprend des erreurs des autres !
    Confucius

    N’ayez pas peur de faire une erreur.
    Mais faites en sorte de ne pas faire la même erreur deux fois.
    Akio Morita

    Si vous fermez la porte à toutes les erreurs,
    la vérité restera dehors.
    Rabindranàth Tagore

  20. #20
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Super, je suis créatif :
    La créativité autorise chacun à commettre des erreurs.
    Mais je doute de m'être trompé !
    L’erreur est humaine,
    admettre la sienne est surhumain.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2010, 18h35
  2. [xsd] Contrainte entre les attributs
    Par XtoX dans le forum Valider
    Réponses: 3
    Dernier message: 03/04/2009, 11h00
  3. [DF] dépendances fonctionnelles entre les attributs et la clé
    Par sadook dans le forum Schéma
    Réponses: 9
    Dernier message: 06/09/2007, 00h51
  4. Confusions entre les one/many-to-many/one
    Par TigrouMeow dans le forum Hibernate
    Réponses: 1
    Dernier message: 01/01/2007, 21h44
  5. Sérialisation: Quelles différences entre les attributs ?
    Par eldoctor.Sylvain dans le forum Framework .NET
    Réponses: 2
    Dernier message: 18/09/2006, 15h12

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