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 :

introduire une liste déroulante dans un script [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 introduire une liste déroulante dans un script
    Bonjour,

    je voudrais que l'utilisateur puisse exprimer un choix par une liste déroulante (aujourd'hui, autant de choix, autant de scripts).
    J'ai donc recherché un script de liste déroulante :
    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
    #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(("1","2","3","4"))
    $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.

    Ce script fonctionne bien si je l'exécute seul mais plus si je l'insère dans mon script :
    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
     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
     #$path = "C:\Users\SESA27384\Desktop\AD\testunecolonne2.csv"
    $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"
     
     
        #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(("1","2","3","4"))
        $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.
     
     
        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

    Il n'y a pas de message d'erreur mais le script ne termine jamais. Ca vient de la ligne 63 qui affiche la liste déroulante car si je la commente, le script se termine bien mais on ne peut plus choisir ! (Evidemment, les 1, 2, 3, 4 je les changerai). Pourquoi ça ne marche plus ?
    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é
    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
    Mea culpa ; au bout de plusieurs heures, je me suis aperçu que la fenêtre déroulante était bien affichée sauf que la fenêtre était cachée !
    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.

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/03/2007, 12h21
  2. [MySQL] Renseigner une liste déroulante dans un formulaire en faisant une jointure.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2006, 10h12
  3. Réponses: 5
    Dernier message: 27/08/2006, 14h18
  4. Afficher la valeur choisie d'une liste déroulante dans une textbox
    Par bouchette63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 14h26
  5. [VB6]Créer une liste déroulante dans une dataGrid
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2006, 09h32

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