Question [Résolu] Aide création script AD

Plus d'informations
il y a 7 ans 1 mois #28159 par Will
Bonjour,

Je viens ici, un peu en détresse, car je tourne en rond depuis un bon moment sur un script, qui pourtant ne doit pas être bien compliqué...

Je vous explique globalement le projet :
Je souhaite créér un script qui permet l'automatisation de la création d'un nouveau département dans l'entreprise, le tout avec GUI.
En gros au lancement du script, une boite de dialogue s'affiche et demande le nom du département à créer (par exemple Commercial).
De là, le script va créer le répertoire sur le serveur de fichier, créer les groupes nécessaire dans l'active directory, et partager le dossier avec les bonnes permissions.

Ca, c'est sur la papier...

Dans la pratique, voilà où j'en suis :
L'interface s'ouvre, avec une textbox pour récupérer le nom du département, un bouton \"Create\" et un \"Cancel\". Sauf que je ne sais pas comment faire en sorte que quand je clique sur \"Create\", il déroule la suite du script avec création du dossier etc. Pour le moment j'arrive juste à afficher le nom du département dans la console. Je m'en remet donc à votre aide pour m'éclaire, car je suis complètement débutant dans le powershell.
Je précise que j'ai les commandes pour la création des répertoires etc, mais pas encore intégrées au script car je ne sais pas comment faire \"intéragir\" le bouton !

[code:1]
#Loading necessary librairies
[void] [System.Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
[void] [System.Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)

$Script:inputText = \"\"

#Creating form
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = \"Department's creation\"
$objForm.Size = New-Object System.Drawing.Size(320,150)
$objForm.StartPosition = \"CenterScreen\"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq \"Enter\"«»)
{$Script:inputText = $objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq \"Escape\"«»)
{$objForm.Close()}})

#Creating \"Create\" button
$CreateButton = New-Object System.Windows.Forms.Button
$CreateButton.Location = New-Object System.Drawing.Size(75,80)
$CreateButton.Size = New-Object System.Drawing.Size(75,23)
$CreateButton.Text = \"Create\"
$CreateButton.Add_Click({$Script:inputText = $objTextBox.Text;$objForm.close()})
$objForm.Controls.Add($CreateButton)

#Creating \"Cancel\" button
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,80)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = \"Cancel\"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)

#Creating order
$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 = \"Type department's name : \"
$objForm.Controls.Add($objLabel)

#Creating textbox
$objTextBox = New-Object System.Windows.Forms.RichTextBox
$objTextBox.Location = New-Object System.Drawing.Size(10,40)
$objTextBox.Size = New-Object System.Drawing.Size(260,20)
$objTextBox.multiline = $false
$objForm.Controls.Add($objTextBox)
$objForm.Topmost = $True

#Show the form
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

$inputText
[/code:1]<br><br>Message édité par: BillyBob, à: 13/02/19 15:14

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 1 mois #28163 par Sinjk
Réponse de Sinjk sur le sujet Re:Aide création script AD
Hello,
Pour intéragir avec tes boutons, tu dois tout d'abord créer un \&quot;évènement\&quot;.

Je t'ai fais un exemple très simple où le bouton intéragit avec d'autres éléments pour que tu puisses comprendre le mécanisme d'évènements

[code:1]
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form = New-Object system.Windows.Forms.Form
$Form.ClientSize = '400,400'
$Form.text = \&quot;Form\&quot;
$Form.TopMost = $false

$Button1 = New-Object system.Windows.Forms.Button
$Button1.text = \&quot;button\&quot;
$Button1.width = 60
$Button1.height = 30
$Button1.location = New-Object System.Drawing.Point(136,180)
$Button1.Font = 'Microsoft Sans Serif,10'

$Label1 = New-Object system.Windows.Forms.Label
$Label1.text = \&quot;label\&quot;
$Label1.AutoSize = $true
$Label1.width = 25
$Label1.height = 10
$Label1.location = New-Object System.Drawing.Point(152,270)
$Label1.Font = 'Microsoft Sans Serif,10'

$TextBox1 = New-Object system.Windows.Forms.TextBox
$TextBox1.multiline = $false
$TextBox1.width = 100
$TextBox1.height = 20
$TextBox1.location = New-Object System.Drawing.Point(130,61)
$TextBox1.Font = 'Microsoft Sans Serif,10'

$Form.controls.AddRange(@($Button1,$Label1,$TextBox1))

$Button1.Add_Click({

$Label1.Text = $TextBox1.Text

})

$Form.Add_Shown({$Form.Activate()})
[void] $Form.ShowDialog()
[/code:1]

La partie qui t'intéresseras est la suivante:

[code:1]
$Button1.Add_Click({

$Label1.Text = $TextBox1.Text

})

[/code:1]

Ici l'évènement est le $Button1.Add_Click.
Tout ce qui se trouve à l'intérieur sera exécuté lorsque tu cliqueras sur le bouton.

Dans l'exemple, lors du click, le texte inséré dans la Textbox (par exemple un nom de département), sera affiché par le label (en dessous du bouton).

Donc c'est dans cette partie là que tu pourras dérouler la suite de ton script.

J'espère que ça t'aidera à mieux cerner ton problème !

Je me permets de mettre le liens de POSHGUI qui est un site bien foutu pour faire une interface rapidement et sans se prendre la tête.

poshgui.com/

Bon courage :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 1 mois #28175 par Will
Réponse de Will sur le sujet Re:Aide création script AD
Bonjour à toi,

Je savais que c'était tout bête... Et effectivement, ça fonctionne, j'ai pu faire ce que je voulais.

Un grand merci à toi ! :silly:

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena