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-ID: 4896551196

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

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

4863114660
Lösung 4863114660 08.12.2022 aktualisiert um 18:59:23 Uhr
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.
Tobixz
Tobixz 08.12.2022 um 19:03:18 Uhr
Goto Top
Super jetzt funktioniert es vielen vielen Dank face-smile