Voilà un outil ultra basique que j'utilise en permanence : transformer mes scripts pour avoir un affichage graphique un peu plus sympa !
Les 2 exemples sont des extraits de mon script de réplication de labos Hyper-V :
1) Je veux poser une question simple à l'utilisateur.
2) S'il répond non, le script lui affiche une nouvelle fenêtre et lui propose de remédier à la situation avant de recommencer puis quitte
Add-Type -AssemblyName System.Windows.Forms
# (1) Avez-vous placé les VM non compressées dans C:\LABOVM ?
$response1 = [System.Windows.Forms.MessageBox]::Show('Avez-vous placé les VM non compressées dans C:\LABOVM ?', 'Vérification des pré-requis', [System.Windows.Forms.MessageBoxButtons]::YesNo)
if ($response1 -eq 'No') {
# (4) Veuillez procéder à l'action demandée puis ré-exécuter ce script
[System.Windows.Forms.MessageBox]::Show('Veuillez procéder à l`action demandée puis ré-exécuter ce script')
exit
}
Voici le résultat lors de l'exécution :
Et si je clique sur Oui (ou tappe ENTRER) :
1) je veux créer un formulaire qui demande à l'utilisateur d'entrer le nom d'un labo
(là, le code est déjà bien plus dégueulasse...)
# Veuillez nommer le LABO (exemple : TP06)
$form8 = New-Object System.Windows.Forms.Form
$form8.Text = 'Nom du LABO'
$form8.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen # Cette ligne centre la fenêtre
$form8.AutoSize = $true
$form8.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink
$textBox8 = New-Object System.Windows.Forms.TextBox
$textBox8.Location = New-Object System.Drawing.Point(10, 10)
$textBox8.Size = New-Object System.Drawing.Size(200, 20)
$form8.Controls.Add($textBox8)
$buttonOk = New-Object System.Windows.Forms.Button
$buttonOk.Text = 'OK'
$buttonOk.Location = New-Object System.Drawing.Point(220, 10)
$buttonOk.Size = New-Object System.Drawing.Size(50, 20)
$buttonOk.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form8.Controls.Add($buttonOk)
$form8.AcceptButton = $buttonOk
$form8.ShowDialog()
$LABNAME = $textBox8.Text
Voici le résultat lors de l'exécution :
Pour aller plus loin, regardez le mini-article pour convertir votre joli script graphique en .exe !