(PowerShell) Output in ListBox

  • PowerShell

    (PowerShell) Output in ListBox

    Hallo, ich weiß dass das Forum kein PowerShell support anbietet aber nachdem ich von diversen leuten @ErfinderDesRades uvm. so hilfreiche Tipps bekommen hab wollte ich trotzdem mein Glück versuchen..
    Es geht darum dass ich in PowerShell eine komplette funktion gebaut hab (diese funktioniert auch so wie sie soll) und möchte das ganze jetzt in einer GUI ausgeben.

    Folgenden Code habe ich, der funktioniert auch.

    C-Quellcode

    1. Add-Type -AssemblyName System.Windows.Forms
    2. [System.Windows.Forms.Application]::EnableVisualStyles()
    3. $Form = New-Object system.Windows.Forms.Form
    4. $Form.ClientSize = '378,400'
    5. $Form.text = "Show Active Directory User"
    6. $Form.TopMost = $false
    7. $txtBxEnterSamAccountName = New-Object system.Windows.Forms.TextBox
    8. $txtBxEnterSamAccountName.multiline = $false
    9. $txtBxEnterSamAccountName.width = 194
    10. $txtBxEnterSamAccountName.height = 20
    11. $txtBxEnterSamAccountName.location = New-Object System.Drawing.Point(14, 46)
    12. $txtBxEnterSamAccountName.Font = 'Microsoft Sans Serif,10'
    13. $lblSamAccountName = New-Object system.Windows.Forms.Label
    14. $lblSamAccountName.text = "Enter samAccountName here"
    15. $lblSamAccountName.AutoSize = $true
    16. $lblSamAccountName.width = 25
    17. $lblSamAccountName.height = 10
    18. $lblSamAccountName.location = New-Object System.Drawing.Point(14, 18)
    19. $lblSamAccountName.Font = 'Microsoft Sans Serif,10'
    20. $OutputAnalyze = New-Object system.Windows.Forms.ListBox
    21. $OutputAnalyze.text = "listBox"
    22. $OutputAnalyze.width = 349
    23. $OutputAnalyze.height = 267
    24. $OutputAnalyze.location = New-Object System.Drawing.Point(12, 117)
    25. $btnSearchSamAccountName = New-Object system.Windows.Forms.Button
    26. $btnSearchSamAccountName.text = "Search"
    27. $btnSearchSamAccountName.width = 146
    28. $btnSearchSamAccountName.height = 30
    29. $btnSearchSamAccountName.location = New-Object System.Drawing.Point(219, 42)
    30. $btnSearchSamAccountName.Font = 'Microsoft Sans Serif,10'
    31. $btnSearchSamAccountName.Add_Click( {
    32. $OutputAnalyze.text = "blablabla" //das wird leider auch nicht in der ListBox angezeigt, warum auch immer :S
    33. })
    34. $Form.controls.AddRange(@($txtBxEnterSamAccountName, $lblSamAccountName, $OutputAnalyze, $btnSearchSamAccountName))
    35. [void]$Form.ShowDialog()


    Die GUI zeigt es mir an, ich sehe sowohl Button als auch Label usw.. Alles kein Problem.
    Was soll dieses "Tool" tun?
    Ich möchte in die TextBox den "samAccountName" eingeben und er soll mir mit einem Klick auf den Button "btnSearchSamAccountName" meine Funktion aufrufen und das Ergebnis in "OutputAnalyze " (ListBox) ausgeben.
    Dazu kann ich aber sagen dass die Funktion in der ISE einwandfrei funktioniert und mir ausgibt was ich will... Aber halt nicht in die GUI.
    Evtl hat da jemand ne Idee wie das umzusetzen ist?

    Gedanke war: Die Funktion komplett rein zu laden (wenn die Form geladen wird) und dann mit dem Klick auf den Button die Funktion auszuführen und den Parameter bzw. die Variable von der TextBox an die Funktion direkt übergibt.

    Also sozusagen nach dem Code Abschnitt

    C-Quellcode

    1. $Form = New-Object system.Windows.Forms.Form
    2. $Form.ClientSize = '378,400'
    3. $Form.text = "Show Active Directory User"
    4. $Form.TopMost = $false


    irgendwie sowas wie:

    C-Quellcode

    1. function.load = $nameOfFunction


    Bin für jede Hilfe dankbar :)

    //Nachtrag: wenn ich

    C-Quellcode

    1. $btnSearchSamAccountName.Add_Click( {
    2. $OutputAnalyze.text = "blablabla" //wird nicht in dem Terminal angezeigt
    3. })


    durch das hier ersetze wird mir der Output (also als String der da wäre "True") im ISE Terminal angezeigt - aber ich will es ja in der GUI sehen. Also das Ergebnis der Funktion

    C-Quellcode

    1. $btnSearchSamAccountName.Add_Click( {
    2. Write-Host $true
    3. })

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „0ptix“ ()