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 :

syntaxe : utiliser une variable dans une cmdlet [PowerShell]


Sujet :

Scripts/Batch

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut syntaxe : utiliser une variable dans une cmdlet
    Bonsoir,

    je souhaite paramétrer l'utilisation d'une cmdlet. Voici mon essai, qui ne marche pas :

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #construction de la variable $ADgroup
    #appel de la cmdlet
    Add-ADGroupMember "CN=$ADgroup,OU=Access Management,OU=Groups,DC=gad,DC=schneider-electric,DC=com" -server gad.schneider-electric.com -Member $data
    Ma façon d'introduire la variable $ADgroup n'est pas bonne.

    At C:\Users\sesa27384\Documents\aalaurent\boulot\powershell\scripts\PopulateADGroup3.ps1:71 char:23
    + Add-ADGroupMember "CN=$ADgroup,OU=Access Management,OU=Groups,DC=gad,DC=schne ...
    + ~~~~~~~~~~~
    Unexpected token 'CN=$ADgroup' in expression or statement.
    Quelle serait une bonne façon de faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  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
    L'implémentation de ta variable semble bonne
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ADgroup = "toto"
    Write-Host "CN=$ADgroup,OU=Access Management,OU=Groups,DC=gad,DC=schneider-electric,DC=com"
    CN=toto,OU=Access Management,OU=Groups,DC=gad,DC=schneider-electric,DC=com

    La commande Add-ADGroupMember semble ne pas supporter ta syntaxe et attend un objet de type "Group" ou "User" retourné via "Get-ADGroup" et "Get-ADUser"

    Issu de https://technet.microsoft.com/en-us/.../ee617210.aspx
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $User = Get-ADUser -Identity "CN=Chew David,OU=UserAccounts,DC=NORTHAMERICA,DC=FABRIKAM,DC=COM" -Server "northamerica.fabrikam.com"
    $Group = Get-ADGroup -Identity "CN=AccountLeads,OU=UserAccounts,DC=EUROPE,DC=FABRIKAM,DC=COM" -Server "europe.fabrikam.com"
    Add-ADGroupMember -Identity $Group -Member $User -Server "europe.fabrikam.com"

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour
    J'ai bien vu ta réponse vendredi matin mais ne pourrai tester que mardi.
    Et petite difficulté pressentie : la variable $ADgroup est générée par l'utilisateur qui choisit dans une liste déroulante donc ça va être dur de la générer par une des 2 fonctions que tu indiques...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    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
    Peut être avec cette syntaxe alors
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADGroup -filter {name -eq $ADgroup}

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Ok et si je fais ça ; après je fais quoi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    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
    Pour répondre à la question du post, je ferais comme cela
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Group = Get-ADGroup -filter {name -eq $ADgroup}
    Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
    Attention, cette commande suppose que $data soit aussi du type attendu par la commande "Add-ADGroupMember".

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Merci j'essaye demain et te dis
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Ca y est ; non sans mal, j'ai fini par réussir à essayer et apparemment, ça ne va pas.

    Mon script complet :
    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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    Write-Host "Hello, World"
     
    #vider le contenu des 2 fichiers, s'ils existent
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESAOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESAOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESAOK.csv}
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESANOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESANOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESANOK.csv}
     
    #création des 2 tables pour les logs (à faire avant le foreach)
    $sesaNOK=@()
    $sesaOK=@()
     
    #import du fichier csv à une seule colonne
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
     
    $objForm = New-Object System.Windows.Forms.OpenFileDialog
    $objForm.InitialDirectory = "c:\"
    $objForm.Title = "Selectionner un fichier :"
    $objForm.FilterIndex = 3
    $Show = $objForm.ShowDialog()
     
    If ($Show -eq "Cancel")
    {
    "Annulé par l'utilisateur"
    }
    Else
    {
    write-host $objForm.FileName
    }
    $path=$objForm.FileName
     
    #Ouvre une fenêtre.
    [reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
    $form1 = New-Object Windows.Forms.Form
    $form1.text = "Contrôles"             
    $form1.Size = New-Object System.Drawing.Size(300,200)
    #Liste déroulante (ComboBox).
    $liste1 = New-Object System.Windows.Forms.Combobox
    $liste1.Location = New-Object Drawing.Point 20,20
    $liste1.Size = New-Object System.Drawing.Size(250,30)
    $liste1.DropDownStyle = "DropDownList"
    $liste1.Items.AddRange(("GAD-SU-NextGenPDM_NonPROD","GAD-SU-NextGenPDM_PrePROD","GAD-SU-MediaReviewUATGroup","GAD-SU-MediaReviewUserGroup"))
    $liste1.SelectedIndex = 0
    #Attache le contrôle à la fenêtre
    $form1.controls.add($liste1)
    #Affiche le tout.
    $form1.ShowDialog()
    #Affiche la sélection.
    write-host "ComboBox = " $liste1.Text
    #Fin.
    $ADgroup=$liste1.Text #on affecte le choix de la liste déroulante dans la variable $ADgroup
     
    $csv = Import-Csv -path $path
    foreach($line in $csv)
    { 
        $columnvalue = $line.name
     
    	$data = @()
    	$domains = "gad.schneider-electric.com","eur.gad.schneider-electric.com","apa.gad.schneider-electric.com","nam.gad.schneider-electric.com","gmea.gad.schneider-electric.com"
    	foreach($domain in $domains)
    	{
    		$data += Get-ADUser -filter "((EmployeeID -like '$columnvalue') -OR (name -like '$columnvalue')) -AND (enabled -eq '$true') " -Server $domain 
    	}
    	[bool]$data
    	if ($data) { Write-Host "Insert $columnvalue"
     
     
     
        $Group = Get-ADGroup -filter {name -eq $ADgroup}
        Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
     
    	$sesaOK +=$line   #si $data existe, on a inséré le SESA et ajoût de la ligne (donc le SESA) ds la variable $sesaOK
            # ces 4 lignes, pour mémoire : 
            #foreach ($User in $data)    #on explore la variable $data{
            # Write-Host $user.SamAccountName   #pour chq ligne, on sélectionne la propriété SamAccountName (qui contient le SESA)
            # $New=$User|Select-Object SamAccountName   #construire un objet avec une seule propriété
            # $New | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv -Append   #export de cet objet
            #}
    }
    if (!$data) {Write-Host "Entry Not Found $columnvalue" 
                        $sesaNOK +=$line     #SESA pas inséré donc ajoût de la ligne (donc le SESA) ds la variable $sesaNOK}
    } 
    #export des 2 variables ds les 2 fichiers de log
    $sesaNOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESANOK.csv
     
    $sesaOK  | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv

    Le message d'erreur :
    Add-ADGroupMember : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument,
    and then try running the command again.
    At C:\Users\sesa27384\Documents\aalaurent\boulot\powershell\scripts\PopulateADGroupetape2-3.ps1:70 char:33
    + Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-elec ...
    + ~~~~~~
    + CategoryInfo : InvalidData: ( [Add-ADGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
    Un Write-Host confirme ce message : la variable $Group est bien vide ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #9
    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
    Je ne vois pas le "Write-Host $Group", ou encore "$Group".
    Par contre cette ligne affiche correctement ton groupe ? write-host "ComboBox = " $liste1.Text

    Tu devrais essayer simplement en ligne de commande dans l'interpréteur PowerShell la ligne "Get-ADGroup -filter {name -eq "mongroup"}" pour voir si cela fonctionne.
    Sinon je ferai des tests sur mon AD, en journée.

  10. #10
    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
    Après test, la commande "Get-ADGroup -filter {name -eq "mongroup"}" fonctionne correctement sur mon AD.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Désolé mais pas eu de temps avant maintenant à consacrer au sujet.

    D'abord, voici le script complet avec le Write-Host :

    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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Write-Host "Hello, World"
     
    #vider le contenu des 2 fichiers, s'ils existent
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESAOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESAOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESAOK.csv}
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESANOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESANOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESANOK.csv}
     
    #création des 2 tables pour les logs (à faire avant le foreach)
    $sesaNOK=@()
    $sesaOK=@()
     
    #import du fichier csv à une seule colonne
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
     
    $objForm = New-Object System.Windows.Forms.OpenFileDialog
    $objForm.InitialDirectory = "c:\"
    $objForm.Title = "Selectionner un fichier :"
    $objForm.FilterIndex = 3
    $Show = $objForm.ShowDialog()
     
    If ($Show -eq "Cancel")
    {
    "Annulé par l'utilisateur"
    }
    Else
    {
    write-host $objForm.FileName
    }
    $path=$objForm.FileName
     
    #Ouvre une fenêtre.
    [reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
    $form1 = New-Object Windows.Forms.Form
    $form1.text = "Contrôles"             
    $form1.Size = New-Object System.Drawing.Size(300,200)
    #Liste déroulante (ComboBox).
    $liste1 = New-Object System.Windows.Forms.Combobox
    $liste1.Location = New-Object Drawing.Point 20,20
    $liste1.Size = New-Object System.Drawing.Size(250,30)
    $liste1.DropDownStyle = "DropDownList"
    $liste1.Items.AddRange(("GAD-SU-NextGenPDM_NonPROD","GAD-SU-NextGenPDM_PrePROD","GAD-SU-MediaReviewUATGroup","GAD-SU-MediaReviewUserGroup"))
    $liste1.SelectedIndex = 0
    #Attache le contrôle à la fenêtre
    $form1.controls.add($liste1)
    #Affiche le tout.
    $form1.ShowDialog()
    #Affiche la sélection.
    write-host "ComboBox = " $liste1.Text
    #Fin.
    $ADgroup=$liste1.Text #on affecte le choix de la liste déroulante dans la variable $ADgroup
     
    $csv = Import-Csv -path $path
    foreach($line in $csv)
    { 
        $columnvalue = $line.name
     
    	$data = @()
    	$domains = "gad.schneider-electric.com","eur.gad.schneider-electric.com","apa.gad.schneider-electric.com","nam.gad.schneider-electric.com","gmea.gad.schneider-electric.com"
    	foreach($domain in $domains)
    	{
    		$data += Get-ADUser -filter "((EmployeeID -like '$columnvalue') -OR (name -like '$columnvalue')) -AND (enabled -eq '$true') " -Server $domain 
    	}
    	[bool]$data
    	if ($data) { Write-Host "Insert $columnvalue"
     
     
     
        $Group = Get-ADGroup -filter {name -eq $ADgroup}
        Write-Host "Group=$Group"
        Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
     
    	$sesaOK +=$line   #si $data existe, on a inséré le SESA et ajoût de la ligne (donc le SESA) ds la variable $sesaOK
            # ces 4 lignes, pour mémoire : 
            #foreach ($User in $data)    #on explore la variable $data{
            # Write-Host $user.SamAccountName   #pour chq ligne, on sélectionne la propriété SamAccountName (qui contient le SESA)
            # $New=$User|Select-Object SamAccountName   #construire un objet avec une seule propriété
            # $New | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv -Append   #export de cet objet
            #}
    }
    if (!$data) {Write-Host "Entry Not Found $columnvalue" 
                        $sesaNOK +=$line     #SESA pas inséré donc ajoût de la ligne (donc le SESA) ds la variable $sesaNOK
                        }
    } 
    #export des 2 variables ds les 2 fichiers de log
    $sesaNOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESANOK.csv
     
    $sesaOK  | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv

    Sinon, l'instruction write-host "ComboBox = " $liste1.Text affiche correctement le groupe sélectionné.

    Enfin la ligne "Get-ADGroup -filter {name -eq "mongroup"}" dans l'interpréteur de commande ne fonctionne que si je retire des guillemets : "Get-ADGroup -filter {name -eq mongroup}"...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  12. #12
    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
    Ok, c'est étrange pour ma part je doit mettre les guillements autour du nom de mon groupe

    Fonctionne
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADGroup -filter {name -eq "mongroup"}

    Fonctionne pas
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ADGroup -filter {name -eq mongroup}
    Get-ADGroup : Erreur lors de l'analyse de la requête: «name -eq mongroup» Message d'erreur: «syntax error» à la position: «10».

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Finalement pareil, mais j'avais pas compris ici les guillemets de début et de fin : "Get-ADGroup -filter {name -eq "mongroup"}" et si je les recopie pas dans l'interpréteur de commande : Get-ADGroup -filter {name -eq "mongroup"}, c'est comme pour toi.

    EDIT : pas possible de mettre en cause le format de la variable générée par la liste déroulante, car même chose si je la remplace par une chaîne de caractères $Group = Get-ADGroup -filter {name -eq "GAD-SU-NextGenPDM_NonPROD"}.

    EDIT2 : j'ai essayé de changer la partie du script qui gère la liste déroulante mais même combat :

    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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    Write-Host "Hello, World"
     
    #vider le contenu des 2 fichiers, s'ils existent
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESAOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESAOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESAOK.csv}
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESANOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESANOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESANOK.csv}
     
    #création des 2 tables pour les logs (à faire avant le foreach)
    $sesaNOK=@()
    $sesaOK=@()
     
    #import du fichier csv à une seule colonne
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
     
    $objForm = New-Object System.Windows.Forms.OpenFileDialog
    $objForm.InitialDirectory = "c:\"
    $objForm.Title = "Selectionner un fichier :"
    $objForm.FilterIndex = 3
    $Show = $objForm.ShowDialog()
     
    If ($Show -eq "Cancel")
    {
    "Annulé par l'utilisateur"
    }
    Else
    {
    write-host $objForm.FileName
    }
    $path=$objForm.FileName
     
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
     
    $objForm = New-Object System.Windows.Forms.Form 
    $objForm.Text = "Select a Computer"
    $objForm.Size = New-Object System.Drawing.Size(300,200) 
    $objForm.StartPosition = "CenterScreen"
     
    $objForm.KeyPreview = $True
    $objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter") 
        {$x=$objListBox.SelectedItem;$objForm.Close()}})
    $objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") 
        {$objForm.Close()}})
     
    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = "OK"
    $OKButton.Add_Click({$x=$objListBox.SelectedItem;$objForm.Close()})
    $objForm.Controls.Add($OKButton)
     
    $CancelButton = New-Object System.Windows.Forms.Button
    $CancelButton.Location = New-Object System.Drawing.Size(150,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,23)
    $CancelButton.Text = "Cancel"
    $CancelButton.Add_Click({$objForm.Close()})
    $objForm.Controls.Add($CancelButton)
     
    $objLabel = New-Object System.Windows.Forms.Label
    $objLabel.Location = New-Object System.Drawing.Size(10,20) 
    $objLabel.Size = New-Object System.Drawing.Size(280,20) 
    $objLabel.Text = "Please select a computer:"
    $objForm.Controls.Add($objLabel) 
     
    $objListBox = New-Object System.Windows.Forms.ListBox 
    $objListBox.Location = New-Object System.Drawing.Size(10,40) 
    $objListBox.Size = New-Object System.Drawing.Size(260,20) 
    $objListBox.Height = 80
     
    [void] $objListBox.Items.Add("GAD-SU-MediaReviewUATGroup")
    [void] $objListBox.Items.Add("GAD-SU-MediaReviewUserGroup")
    [void] $objListBox.Items.Add("GAD-SU-NextGenPDM_NonPROD")
    [void] $objListBox.Items.Add("NextGenPDM_PrePROD")
    [void] $objListBox.Items.Add("GAD-SU-NextGenPDM_PROD")
    [void] $objListBox.Items.Add("GAD-SU-TES-Crash_plan")
     
    $objForm.Controls.Add($objListBox) 
     
    $objForm.Topmost = $True
     
    $objForm.Add_Shown({$objForm.Activate()})
    [void] $objForm.ShowDialog()
     
     
    $ADgroup=$objListBox.text #on affecte le choix de la liste déroulante dans la variable $ADgroup
     
    $csv = Import-Csv -path $path
    foreach($line in $csv)
    { 
        $columnvalue = $line.name
     
    	$data = @()
    	$domains = "gad.schneider-electric.com","eur.gad.schneider-electric.com","apa.gad.schneider-electric.com","nam.gad.schneider-electric.com","gmea.gad.schneider-electric.com"
    	foreach($domain in $domains)
    	{
    		$data += Get-ADUser -filter "((EmployeeID -like '$columnvalue') -OR (name -like '$columnvalue')) -AND (enabled -eq '$true') " -Server $domain 
    	}
    	[bool]$data
    	if ($data) { Write-Host "Insert $columnvalue"
     
     
     
        $Group = Get-ADGroup -filter {name -$ADGroup}
        Write-Host "Group=$Group /ADgroup=$ADgroup"
        Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
     
    	$sesaOK +=$line   #si $data existe, on a inséré le SESA et ajoût de la ligne (donc le SESA) ds la variable $sesaOK
            # ces 4 lignes, pour mémoire : 
            #foreach ($User in $data)    #on explore la variable $data{
            # Write-Host $user.SamAccountName   #pour chq ligne, on sélectionne la propriété SamAccountName (qui contient le SESA)
            # $New=$User|Select-Object SamAccountName   #construire un objet avec une seule propriété
            # $New | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv -Append   #export de cet objet
            #}
    }
    if (!$data) {Write-Host "Entry Not Found $columnvalue" 
                        $sesaNOK +=$line     #SESA pas inséré donc ajoût de la ligne (donc le SESA) ds la variable $sesaNOK
                        }
    } 
    #export des 2 variables ds les 2 fichiers de log
    $sesaNOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESANOK.csv
     
    $sesaOK  | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv

    $Group est encore vide. Il faut donc me proposer autre chose pour la ligne 104...

    EDIT3 : je viens de voir un message d'erreur :
    Get-ADGroup : Erreur lors de l’analyse de la requête: «name -$ADGroup» Message d’erreur: «Operator Not supported: » à la position: «6
    ».
    At C:\Users\sesa27384\Documents\aalaurent\boulot\powershell\scripts\PopulateADGroupetape2-3.ps1:108 char:14
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    j'ai contourné le problème et finalement, je n'utilise pas de variable dans la cmdlet mais j'obtiens le comportement souhaité donc je suis satisfait. L'idée est qu'au lieu d'utiliser une variable générée par une liste déroulante dans une cmdlet, je génère cette variable par la liste déroulante, puis j'effectue un switch avec autant d'appels à la cmdlet que de valeurs possibles pour cette variable :

    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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #début liste déroulante 
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
     
    $objForm = New-Object System.Windows.Forms.Form 
    $objForm.Text = "Select a Computer"
    $objForm.Size = New-Object System.Drawing.Size(300,200) 
    $objForm.StartPosition = "CenterScreen"
     
    $objForm.KeyPreview = $True
    $objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter") 
        {$x=$objListBox.SelectedItem;$objForm.Close()}})
    $objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") 
        {$objForm.Close()}})
     
    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = "OK"
    $OKButton.Add_Click({$x=$objListBox.SelectedItem;$objForm.Close()})
    $objForm.Controls.Add($OKButton)
     
    $CancelButton = New-Object System.Windows.Forms.Button
    $CancelButton.Location = New-Object System.Drawing.Size(150,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,23)
    $CancelButton.Text = "Cancel"
    $CancelButton.Add_Click({$objForm.Close()})
    $objForm.Controls.Add($CancelButton)
     
    $objLabel = New-Object System.Windows.Forms.Label
    $objLabel.Location = New-Object System.Drawing.Size(10,20) 
    $objLabel.Size = New-Object System.Drawing.Size(280,20) 
    $objLabel.Text = "Please select a computer:"
    $objForm.Controls.Add($objLabel) 
     
    $objListBox = New-Object System.Windows.Forms.ListBox 
    $objListBox.Location = New-Object System.Drawing.Size(10,40) 
    $objListBox.Size = New-Object System.Drawing.Size(260,20) 
    $objListBox.Height = 80
     
     
    [void] $objListBox.Items.Add("GAD-SU-MediaReviewUATGroup")
    [void] $objListBox.Items.Add("GAD-SU-MediaReviewUserGroup")
    [void] $objListBox.Items.Add("GAD-SU-NextGenPDM_NonPROD")
    [void] $objListBox.Items.Add("NextGenPDM_PrePROD")
    [void] $objListBox.Items.Add("GAD-SU-NextGenPDM_PROD")
    [void] $objListBox.Items.Add("GAD-SU-TES-Crash_plan")
     
    $objForm.Controls.Add($objListBox) 
     
    $objForm.Topmost = $True
     
    $objForm.Add_Shown({$objForm.Activate()})
    [void] $objForm.ShowDialog()
     
    $ADgroup=$objListBox.text #on affecte le choix de la liste déroulante dans la variable $ADgroup
    #fin liste déroulante
    ...
    switch ( $ADgroup )
        {
            "GAD-SU-MediaReviewUATGroup"  {Add-ADGroupMember -Identity "GAD-SU-MediaReviewUATGroup" -Member $data -Server "gad.schneider-electric.com";break}
            "GAD-SU-MediaReviewUserGroup" {Add-ADGroupMember -Identity "GAD-SU-MediaReviewUserGroup" -Member $data -Server "gad.schneider-electric.com";break}
            "GAD-SU-NextGenPDM_NonPROD" {Add-ADGroupMember -Identity "GAD-SU-NextGenPDM_NonPROD" -Member $data -Server "gad.schneider-electric.com";break}
            "NextGenPDM_PrePROD" {Add-ADGroupMember -Identity "NextGenPDM_PrePROD" -Member $data -Server "gad.schneider-electric.com";break} 
            "GAD-SU-NextGenPDM_PROD" {Add-ADGroupMember -Identity "GAD-SU-NextGenPDM_PROD" -Member $data -Server "gad.schneider-electric.com";break}
            "GAD-SU-TES-Crash_plan" {Add-ADGroupMember -Identity "GAD-SU-TES-Crash_plan" -Member $data -Server "gad.schneider-electric.com";break}
        }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #15
    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
    Évite le Switch pour ton cas présent. Le ".text" doit fonctionner.

    Le problème de ta ligne 104 est simplement qu'il manque l'opérateur "-eq".

    Ta ligne corrigée :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $Group = Get-ADGroup -filter {name -eq $ADGroup}

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    J'y ai cru, mais je viens d'essayer et $group reste vide...

    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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    Write-Host "Hello, World"
     
    #vider le contenu des 2 fichiers, s'ils existent
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESAOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESAOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESAOK.csv}
    #$strFileName="C:\Users\SESA27384\Desktop\AD\SESANOK.csv"
    if (test-path "C:\Users\SESA27384\Desktop\AD\SESANOK.csv") {clear-content C:\Users\SESA27384\Desktop\AD\SESANOK.csv}
     
    #création des 2 tables pour les logs (à faire avant le foreach)
    $sesaNOK=@()
    $sesaOK=@()
     
    #import du fichier csv à une seule colonne
    [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
     
    $objForm = New-Object System.Windows.Forms.OpenFileDialog
    $objForm.InitialDirectory = "c:\"
    $objForm.Title = "Selectionner un fichier :"
    $objForm.FilterIndex = 3
    $Show = $objForm.ShowDialog()
     
    If ($Show -eq "Cancel")
    {
    "Annulé par l'utilisateur"
    }
    Else
    {
    write-host $objForm.FileName
    }
    $path=$objForm.FileName
     
    #Ouvre une fenêtre.
    [reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
    $form1 = New-Object Windows.Forms.Form
    $form1.text = "Contrôles"             
    $form1.Size = New-Object System.Drawing.Size(300,200)
    #Liste déroulante (ComboBox).
    $liste1 = New-Object System.Windows.Forms.Combobox
    $liste1.Location = New-Object Drawing.Point 20,20
    $liste1.Size = New-Object System.Drawing.Size(250,30)
    $liste1.DropDownStyle = "DropDownList"
    $liste1.Items.AddRange(("GAD-SU-NextGenPDM_NonPROD","GAD-SU-NextGenPDM_PrePROD","GAD-SU-MediaReviewUATGroup","GAD-SU-MediaReviewUserGroup"))
    $liste1.SelectedIndex = 0
    #Attache le contrôle à la fenêtre
    $form1.controls.add($liste1)
    #Affiche le tout.
    $form1.ShowDialog()
    #Affiche la sélection.
    write-host "ComboBox = " $liste1.Text
    $ADgroup=$liste1.text #on affecte le choix de la liste déroulante dans la variable $ADgroup
    #fin liste déroulante
    #Fin.
     
    $csv = Import-Csv -path $path
    foreach($line in $csv)
    { 
        $columnvalue = $line.name
     
    				$data = @()
    				$domains = "gad.schneider-electric.com","eur.gad.schneider-electric.com","apa.gad.schneider-electric.com","nam.gad.schneider-electric.com","gmea.gad.schneider-electric.com"
    				foreach($domain in $domains)
    				{
    					$data += Get-ADUser -filter "((EmployeeID -like '$columnvalue') -OR (name -like '$columnvalue')) -AND (enabled -eq '$true') " -Server $domain 
    				}
    				[bool]$data
    				if ($data) { Write-Host "Insert $columnvalue"
     
     
                             $Group = Get-ADGroup -filter {name -eq $ADGroup}
                            Write-Host "Group=$Group /ADgroup=$ADgroup"
                            Add-ADGroupMember -Identity $Group -Member $data -Server "gad.schneider-electric.com"
     
     
     
     
    						#Add-ADGroupMember "CN=GAD-SU-NextGenPDM_NonPROD,OU=Access Management,OU=Groups,DC=gad,DC=schneider-electric,DC=com" -server gad.schneider-electric.com -Member $data
    			            $sesaOK +=$line   #si $data existe, on a inséré le SESA et ajoût de la ligne (donc le SESA) ds la variable $sesaOK
                             # ces 4 lignes, pour mémoire : 
                             #foreach ($User in $data)    #on explore la variable $data{
                              # Write-Host $user.SamAccountName   #pour chq ligne, on sélectionne la propriété SamAccountName (qui contient le SESA)
                              # $New=$User|Select-Object SamAccountName   #construire un objet avec une seule propriété
                              # $New | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv -Append   #export de cet objet
                             #}
    				}
    				if (!$data) { Write-Host "Entry Not Found $columnvalue" 
                                  $sesaNOK +=$line     #SESA pas inséré donc ajoût de la ligne (donc le SESA) ds la variable $sesaNOK
    				}
    } 
    #export des 2 variables ds les 2 fichiers de log
    $sesaNOK | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESANOK.csv
     
    $sesaOK  | Export-csv -path C:\Users\SESA27384\Desktop\AD\SESAOK.csv

    Hello, World

    GAC Version Location
    --- ------- --------
    True v4.0.30319 C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Window...
    C:\Users\sesa27384\Desktop\AD\testunecolonne2.csv
    True v4.0.30319 C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Window...
    Cancel
    ComboBox = GAD-SU-NextGenPDM_NonPROD
    True
    Insert sesa449786
    Group= /ADgroup=GAD-SU-NextGenPDM_NonPROD
    Add-ADGroupMember : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument,
    and then try running the command again.
    At C:\Users\sesa27384\Documents\aalaurent\boulot\powershell\scripts\PopulateADGroupetape2.ps1:71 char:53
    + Add-ADGroupMember -Identity $Group -Member $data -Server ...
    + ~~~~~~
    + CategoryInfo : InvalidData: ( [Add-ADGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
    ...etc
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #17
    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
    La vérité est ailleurs car j'ai fait le test et $ADgroup contient bien le choix de la liste déroulante.

    Sinon j'ai simulé ton programme sur notre AD. Il trouve bien l'utilisateur, le groupe et l'ajoute correctement.

  18. #18
    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
    tu pourrait tenter de spécifier ton serveur AD. Mais tout ceci dépend de ton écosystème.
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $Group = Get-ADGroup -filter {name -eq $ADGroup} -Server "gad.schneider-electric.com"

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    tu pourrait tenter de spécifier ton serveur AD. Mais tout ceci dépend de ton écosystème.
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $Group = Get-ADGroup -filter {name -eq $ADGroup} -Server "gad.schneider-electric.com"
    c'est une bonne solution
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    j'aimerais bien comprendre cette "magie". Pourrais-tu m'expliquer ce que fait cette ligne :
    $Group = Get-ADGroup -filter {name -eq $ADGroup} -Server "gad.schneider-electric.com"
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 27/07/2011, 09h50
  2. utilisation d'une variable d'une class dans une autre class
    Par the watcher dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2010, 14h01
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

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