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:
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.
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 ?
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 ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 363119
Url: https://administrator.de/contentid/363119
Ausgedruckt am: 17.11.2024 um 01:11 Uhr
5 Kommentare
Neuester Kommentar
Mach dir einfach eine Hashtable als Übersetzungstabelle
Gruß snap
$table = @{
'sn' = 'Nachname'
'Givenname' = 'Vorname'
# usw.
}
Na einfach den selektierten Wert der Listbox an die Hashtable übergeben.
Dafür ist die ja gerade da ...
Aber die Logik deiner Form kennen wir ja nicht.
$table.($listbox.selecteditem)
Aber die Logik deiner Form kennen wir ja nicht.