Formulaire de création de rentrer DNS en PowerShell

De Travail-Ivan 2

Formulaire de création de rentrer DNS en PowerShell

using namespace system.windows.forms
using namespace system.drawing
[system.reflection.assembly]::loadwithpartialname("system.windows.forms") | out-null
$form = new-object Form
$lbl1   = new-object Label
$lbl2   = new-object Label
$txt1   = new-object TextBox
$txt2   = new-object TextBox
$btn_ok = new-object button

$lbl1.text       = "Hostname"
$lbl2.text       = "IPAddress"
$btn_ok.text     = "OK"
$lbl1.size       = [size]::new(100, 20)
$lbl2.size       = [size]::new(100, 20)
$txt1.size       = [size]::new(100, 20)
$txt2.size       = [size]::new(100, 20)
$btn_ok.size     = [size]::new( 70, 20)
$lbl1.location   = [point]::new( 25, 25)
$lbl2.location   = [point]::new( 25, 50)
$txt1.location   = [point]::new(150, 25)
$txt2.location   = [point]::new(150, 50)
$btn_ok.location = [point]::new( 25,120)
$btn_ok.BackColor = [color]::GreenYellow
$form.controls.add($lbl1)
$form.controls.add($lbl2)
$form.controls.add($txt1)
$form.controls.add($txt2)
$form.controls.add($btn_ok)
$btn_ok.add_click({
    $name = $txt1.get_text()
    $ip   = $txt2.get_text()
    Add-DnsServerResourceRecordA -ZoneName $env:USERDNSDOMAIN -name $name  -IPv4Address $ip
    $txt1.text = ""
    $txt2.text = ""
})
$form.showdialog()

Explication des éléments du script

  1. Namespaces:
    • using namespace System.Windows.Forms: Permet d'utiliser les classes du namespace System.Windows.Forms, qui contiennent des éléments pour créer des interfaces graphiques.
    • using namespace System.Drawing: Permet d'utiliser des classes pour la gestion des graphiques et des couleurs.
  2. Chargement de l'assembly:
    • [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null: Charge l'assembly nécessaire pour utiliser Windows Forms.
  3. Création des éléments de l'interface:
    • $form = New-Object Form: Crée une nouvelle fenêtre (formulaire).
    • $lbl1, $lbl2, $txt1, $txt2, $btn_ok: Crée des éléments d'interface (labels, textboxes et bouton).
  4. Propriétés des éléments:
    • Texte: Définit le texte des labels et du bouton.
    • Taille: Définit la taille des éléments.
    • Position: Définit la position des éléments dans la fenêtre.
    • Couleur de fond: Définit la couleur de fond du bouton.
  5. Ajout des contrôles au formulaire:
    • Les éléments sont ajoutés au formulaire avec Add().
  6. Gestion de l'événement de clic:
    • $btn_ok.Add_Click({ ... }): Définit ce qui se passe lorsque le bouton "OK" est cliqué.
      • Récupère le texte des zones de texte pour le nom d'hôte et l'adresse IP.
      • Exécute la commande Add-DnsServerResourceRecordA pour ajouter un enregistrement A dans le serveur DNS spécifié par le domaine.
      • Efface les champs de texte après l'ajout.
  7. Affichage du formulaire:
    • $form.ShowDialog(): Affiche le formulaire comme une boîte de dialogue modale, bloquant l'interaction avec la fenêtre principale jusqu'à ce que le formulaire soit fermé.