tobixz
Goto Top

Inhalt aus Textbox in Variable Speichern PowerShell

Guten Abend zusammen, ich habe ein Problem bei meiner PowerShell UI, ich kann kein Text in den Textboxen speichern. Ich hatte bereits versucht die Funktionalität des Buttons zu prüfen, dieser geht. Warum er allerdings nicht in der vorgesehen variable speichert, ist mir ein Rätsel.

Add-Type -AssemblyName System.Windows.Forms
# Create a new form object
$form = New-Object System.Windows.Forms.Form
$Uebersicht = New-Object System.Windows.Forms.Form

# Set the form properties
$Uebersicht.Text = "Neuer AD Nutzer"  
$Uebersicht.Size = New-Object System.Drawing.Size(500,400)
$Uebersicht.StartPosition = "CenterScreen"  
#-------------------------------------------------------------
#Button
#-------------------------------------------------------------  
    $NeuerNutzer = New-Object System.Windows.Forms.Button
    $NeuerNutzer.Location = New-Object System.Drawing.Size(35,150)
    $NeuerNutzer.Size = New-Object System.Drawing.Size(130,23)
    $NeuerNutzer.Text = "Neuen Nutzer erstellen"  
    $Uebersicht.Controls.Add($NeuerNutzer)
    #Add Button event 
     $NutzerSpeeren = New-Object System.Windows.Forms.Button
     $NutzerSpeeren.Location = New-Object System.Drawing.Size(100,150)
     $NutzerSpeeren.Size = New-Object System.Drawing.Size(130,23)
     $NUtzerSpeeren.Text = "Neuen Nutzer erstellen"  
     $Uebersicht.Controls.Add($NutzerSpeeren)
     $NutzerSpeeren.Add_Click({
        $Uebersicht.Controls.Remove($NutzerSpeeren)
        $Uebersicht.Controls.Remove($NeuerNutzer)
#-------------------------------------------------------------  
        $pictureBox = New-Object System.Windows.Forms.PictureBox
        $pictureBox.Size = New-Object System.Drawing.Size(300,200)
        $pictureBox.Location = New-Object System.Drawing.Point(300,50)
        $Uebersicht.Controls.Add($pictureBox)
        $image = [System.Drawing.Image]::FromFile("C:\Users\Administrator\Desktop\images(2).png")  
        $pictureBox.Image = $image
#-------------------------------------------------------------  
        $Ueberschrift = New-Object System.Windows.Forms.Label
        $Ueberschrift.Text = "Nutzer Speeren"  
        $Ueberschrift.Font = New-Object System.Drawing.Font("Arial", 16, [System.Drawing.FontStyle]::Bold)  
        $Ueberschrift.AutoSize = $true
        $Ueberschrift.Location = New-Object System.Drawing.Point(150, 10)
        $Uebersicht.Controls.Add($Ueberschrift)
#-------------------------------------------------------------  
        $NutzerSpeerenONLYTEXT= New-Object System.Windows.Forms.Label
        $NutzerSpeerenONLYTEXT.Text = "Vornamen"  
        $NutzerSpeerenONLYTEXT.AutoSize = $true
        $NutzerSpeerenONLYTEXT.Location = New-Object System.Drawing.Point(10,50)
        $Uebersicht.Controls.Add($NutzerSpeerenONLYTEXT)
#-------------------------------------------------------------  
        $NutzerSpeerenONLYTEXT1= New-Object System.Windows.Forms.Label
        $NutzerSpeerenONLYTEXT1.Text = "Nachnamen"  
        $NutzerSpeerenONLYTEXT1.AutoSize = $true
        $NutzerSpeerenONLYTEXT1.Location = New-Object System.Drawing.Point(10,100)
        $Uebersicht.Controls.Add($NutzerSpeerenONLYTEXT1)    
#-------------------------------------------------------------  
        $VornamenNeuText = New-Object System.Windows.Forms.TextBox
        $VornamenNeuText.Location = New-Object System.Drawing.Point(10,80)
        $VornamenNeuText.Size = New-Object System.Drawing.Size(260,20)
        $Uebersicht.Controls.Add($VornamenNeuText)
        #-------------------------------------------------------------
        $NachnameNeuTEXT = New-Object System.Windows.Forms.TextBox
        $NachnameNeuTEXT.Location = New-Object System.Drawing.Point(10,130)
        $NachnameNeuTEXT.Size = New-Object System.Drawing.Size(260,20)
        $Uebersicht.Controls.Add($NachnameNeuTEXT)
#-------------------------------------------------------------  
        $NutzerSpeeren = New-Object System.Windows.Forms.Button
        $NutzerSpeeren.Location = New-Object System.Drawing.Size(100,150)
        $NutzerSpeeren.Size = New-Object System.Drawing.Size(130,23)
        $NutzerSpeeren.Text = "Absenden"  
        $Uebersicht.Controls.Add($NutzerSpeeren)  
        $NutzerSpeeren.Add_Click({
        $NameNeu = $VornameNeuTEXT.Text + '.' + $NachnameNeuTEXT.Text  
        $ADuser = Get-ADUser -Identity $NameNeu -ErrorAction SilentlyContinue})

    })

        #-------------------------------------------------------------  
        $Uebersicht.ShowDialog()

                           

Content-Key: 4896551196

Url: https://administrator.de/contentid/4896551196

Printed on: April 27, 2024 at 16:04 o'clock

Mitglied: 4863114660
Solution 4863114660 Dec 08, 2022 updated at 17:59:23 (UTC)
Goto Top
Das liegt am Variable Scope du definierst/änderst die Variable nur im Subscope des Add_Click Events, im Parent Scope existiert sie dann nicht. Hier kannst du bspw. mit $global:var usw. arbeiten
Lies dich hier ein dann verstehst du was ich meine https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...

$global:NameNeu = ''  
# .....
$NutzerSpeeren.Add_Click({
    $global:NameNeu = $VornameNeuTEXT.Text + '.' + $NachnameNeuTEXT.Text  
     # ......
})

Gruß s.
Member: Tobixz
Tobixz Dec 08, 2022 at 18:03:18 (UTC)
Goto Top
Super jetzt funktioniert es vielen vielen Dank face-smile