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

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

Ausgedruckt am: 17.11.2024 um 01:11 Uhr

Kraemer
Kraemer 01.02.2018 um 08:23:54 Uhr
Goto Top
Moin,

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

Gruß
135333
135333 01.02.2018 aktualisiert um 11:13:53 Uhr
Goto Top
Mach dir einfach eine Hashtable als Übersetzungstabelle
$table = @{
    'sn' = 'Nachname'  
    'Givenname' = 'Vorname'  
    # usw.
}
Gruß snap
blackhawk17
blackhawk17 03.02.2018 um 11:32:08 Uhr
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?
135333
Lösung 135333 03.02.2018 aktualisiert um 13:35:40 Uhr
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.
blackhawk17
blackhawk17 05.02.2018 um 11:25:27 Uhr
Goto Top
Klasse, hab vielen Dank für deine Hilfe face-smile.