blackhawk17
Goto Top

Powershell ListBox mit anderer Beschreibung in den Items

Guten Morgen,

ich habe mir eine kleine GUI gebaut mit der ich verschiedene Attribute im AD auslesen lassen möchte.

Hierzu habe ich eine ListBox gebaut:

                                            $objLabel = New-Object System.Windows.Forms.Label
                                            $objLabel.Location = New-Object System.Drawing.Size(30,30) 
                                            $objLabel.Size = New-Object System.Drawing.Size(200,20) 
                                            $objLabel.Text = "Kategorie auswählen:"  
                                            $objLabel.Name = "Kategorie auswählen:"  
                                            $objForm.Controls.Add($objLabel)

                                                $objListbox = New-Object System.Windows.Forms.Listbox 
                                                $objListbox.Location = New-Object System.Drawing.Size(30,50) 
                                                $objListbox.Size = New-Object System.Drawing.Size(200,50) 
                                                $objListbox.SelectionMode = "MultiExtended"  
			                                    $objListBox.Height = 300
                                                [void] $objListBox.Items.Add("sn")  
			                                    [void] $objListBox.Items.Add("givenname")  
			                                    [void] $objListBox.Items.Add("department")  
			                                    [void] $objListBox.Items.Add("company")  
                                                [void] $objListBox.Items.Add("emailaddress")  
                                                [void] $objListBox.Items.Add("telephoneNumber")  
                                                [void] $objListBox.Items.Add("facsimileTelephoneNumber")  
                                                [void] $objListBox.Items.Add("mobile")  
                                                [void] $objListBox.Items.Add("homeDrive")  
                                                [void] $objListBox.Items.Add("homeDirectory")  
                                                [void] $objListBox.Items.Add("title")  
			                                    [void] $objListBox.Items.Add("streetAddress")  
			                                    [void] $objListBox.Items.Add("physicalDeliveryOfficeName")  
			                                    [void] $objListBox.Items.Add("co")  
			                                    [void] $objListBox.Items.Add("wWWHomePage")  
			                                    [void] $objListBox.Items.Add("description")  
			                                    [void] $objListBox.Items.Add("sAMAccountName")  
			                                    [void] $objListBox.Items.Add("manager")  
                                                $objListBox.SelectedItem
                                                $objForm.Controls.Add($objListbox) 

Soweit funktioniert auch alles so wie ich es mir vorstelle.

Einzig, wenn ich die GUI jetzt ausführe, dann stehen in der Listbox die oben angegeben werden wie z.B. sn etc.

Damit kann ein nicht Administrator natürlich nichts anfangen.

Daher meine Frage, kann ich die Werte hier in der GUI irgendwie anders anzeigen lassen?

Mein Problem jetzt ist, wenn ich statt SN da Nachname reinschreibe, dann funktioniert mein nachgelagertes Skript natürlich nicht mehr.

get-aduser -filter * -Properties sn,Givenname,department,company,manager,EmailAddress,telephoneNumber,employeeNumber | select-object $objListBox.SelectedItems | Export-csv $objTextBoxComputername.Text -Encoding UTF8

Es müsste irgendwie die Möglichkeit geben zu sagen, dass in der Listbox der "richtige" Name z.B. Nachname steht und dann im Hintergrund der Nachname zu SN umgewandelt wird damit das Skript richtig läuft.

Die Frage ist nur wie machen?

Hat da jemand von Euch eine Idee zu ?

Content-Key: 363119

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: Kraemer
Kraemer Feb 01, 2018 at 07:23:54 (UTC)
Goto Top
Moin,

ich würde mit einer Listview arbeiten und beim anzeigen eine Spalte Breite auf 0 setzen.

Gruß
Mitglied: 135333
135333 Feb 01, 2018 updated at 10:13:53 (UTC)
Goto Top
Mach dir einfach eine Hashtable als Übersetzungstabelle
$table = @{
    'sn' = 'Nachname'  
    'Givenname' = 'Vorname'  
    # usw.
}
Gruß snap
Member: blackhawk17
blackhawk17 Feb 03, 2018 at 10:32:08 (UTC)
Goto Top
Hi ja daran habe ich auch schon gedacht.

Aber wie gleiche ich das ab? Ich muss ja irgendwie das was über die Listbox kommt mit der Hashtable abgleichen und den Wert dann weitergeben.

Hast du da eine Idee?
Mitglied: 135333
Solution 135333 Feb 03, 2018 updated at 12:35:40 (UTC)
Goto Top
Na einfach den selektierten Wert der Listbox an die Hashtable übergeben.
$table.($listbox.selecteditem)
Dafür ist die ja gerade da ...
Aber die Logik deiner Form kennen wir ja nicht.
Member: blackhawk17
blackhawk17 Feb 05, 2018 at 10:25:27 (UTC)
Goto Top
Klasse, hab vielen Dank für deine Hilfe face-smile.