PowerShell GUI bestimmten Wert aus Array auswählen und bearbeiten
Hallo Zusammen,
ich baue derzeit eine PowerShell GUI um bestimmte Attribute eines AD-Users zu verändern.
Mein Problem ist, dass in einem Attribut mehr als ein Eintrag vorhanden ist. Ich lasse mir alle EInträge eines Attributes in einer Listbox ausgeben. Aus dieser Listbox wähle ich nun das gewünschte Attribut aus, um es zu verändern. Wenn ich es nun verändere, werden alle weiteren EInträge gelöscht und es ist nur noch das geänderte Attribut vorhanden.
Meine Frage: Wie kann ich das Attribut verändern OHNE, dass alle weiteren EInträge gelöscht werden ?
Hier der betroffene Teil des Codes:
In dem Abscnitt des $EditAddressesButton gibt es den Befehl Set-ADUser. Nach dem Replace Parameter will ich mit $EditAddressesBox.Text NUR den ausgewählten AEintrag des Attributes ändern. Und hier ist das Problem...Es werden ALLE Einträge überschrieben, anstatt der ausgewählte Eintrag.
Vielleicht sitze ich schon zu lange daran und ich übersehe einen einfachen Fehler ?
LG
rOMOP11
ich baue derzeit eine PowerShell GUI um bestimmte Attribute eines AD-Users zu verändern.
Mein Problem ist, dass in einem Attribut mehr als ein Eintrag vorhanden ist. Ich lasse mir alle EInträge eines Attributes in einer Listbox ausgeben. Aus dieser Listbox wähle ich nun das gewünschte Attribut aus, um es zu verändern. Wenn ich es nun verändere, werden alle weiteren EInträge gelöscht und es ist nur noch das geänderte Attribut vorhanden.
Meine Frage: Wie kann ich das Attribut verändern OHNE, dass alle weiteren EInträge gelöscht werden ?
Hier der betroffene Teil des Codes:
#### ProxyAddresses Attribut eines Users in ListBox ausgeben ####
$usercombo.Add_SelectedIndexChanged({
$MailList.Text = (Get-ADUser -Identity $usercombo.SelectedItem -Properties * | Select -ExpandProperty mail | Out-String)
$ProxyAddresses = Get-ADUser -Identity $usercombo.SelectedItem -Properties * | Select -ExpandProperty ProxyAddresses
if($ProxyAddresses.Count -gt 1){
$ProxyList.Items.Clear()
$ProxyList.Items.Add($ProxyAddresses.SubString(5))
$ProxyList.Items.Add($ProxyAddresses.SubString(5)[1])
}
else{
$ProxyList.Items.Clear()
$ProxyAddresses.Count -eq 0
$ProxyList.Items.Add($ProxyAddresses.SubString(5))
$ProxyAddresses = $ProxyAddresses | where {$_ -ne "sip:"}
}})
})
$usercombo = New-Object System.Windows.Forms.ComboBox
$usercombo.Location = New-Object System.Drawing.Size(35,55)
$usercombo.Size = New-Object System.Drawing.Size(175,175)
$objForm.Controls.Add($usercombo)
#### Button zum ändern des Attributes --> neue Object-Form mit TextBox####
$EditProxy = New-Object System.Windows.Forms.Button
$EditProxy.Location = New-Object System.Drawing.Size(120,450)
$EditProxy.Size = New-Object System.Drawing.Size(120,30)
$EditProxy.Text = "Edit ProxyAddresses"
$EditProxy.Add_Click(
{
$EditAddress = New-Object System.Windows.Forms.Form
$EditAddress.Size = New-Object System.Drawing.Size(300,300)
$EditAddress.Text = "Ändern Sie das ProxyAddresses Attribut"
$EditAddress.StartPosition = "CenterScreen"
$EditAddressesBox = New-Object System.Windows.Forms.TextBox
$EditAddressesBox.Size = New-Object System.Drawing.Size(175,175)
$EditAddressesBox.Location = New-Object System.Drawing.Size(25,50)
$EditAddressesBox.Text = $ProxyList.SelectedItem
$EditAddress.Controls.Add($EditAddressesBox)
$EditAddressesButton = New-Object System.Windows.Forms.Button
$EditAddressesButton.Size = New-Object System.Drawing.Size(120,20)
$EditAddressesButton.Location = New-Object System.Drawing.Size(25,100)
$EditAddressesButton.Text = "Edit ProxyAddresses"
$EditAddressesButton.Add_Click(
{
Set-ADUser -Identity $usercombo.SelectedItem -Replace @{ProxyAddresses=$EditAddressesBox.Text}
[System.Windows.Forms.MessageBox]::Show("Das Attribut wurde erfolgreich geändert")
$EditAddress.Close()
})
$EditAddress.Controls.Add($EditAddressesButton)
$EditAddress.ShowDialog()
})
$objForm.Controls.Add($EditProxy)
In dem Abscnitt des $EditAddressesButton gibt es den Befehl Set-ADUser. Nach dem Replace Parameter will ich mit $EditAddressesBox.Text NUR den ausgewählten AEintrag des Attributes ändern. Und hier ist das Problem...Es werden ALLE Einträge überschrieben, anstatt der ausgewählte Eintrag.
Vielleicht sitze ich schon zu lange daran und ich übersehe einen einfachen Fehler ?
LG
rOMOP11
Please also mark the comments that contributed to the solution of the article
Content-Key: 382998
Url: https://administrator.de/contentid/382998
Printed on: April 24, 2024 at 01:04 o'clock
1 Comment
Hi,
schau mal hier
Remove a String from a Multi-Valued Attribute
Statt "-Replace" nimm "-Remove" und "-Add".
E.
schau mal hier
Remove a String from a Multi-Valued Attribute
Statt "-Replace" nimm "-Remove" und "-Add".
E.