AD User Properties per CMD Befehl öffnen ?
Hallo Zusammen,
ich arbeite derzeit an einem PowerShell-Script (GUI), um AD User zu verwalten (anlegen, löschen, ändern). Dazu habe ich eine ListBox erstellt in der alle vorhandenen User einer zuvor ausgewählten OU (per ComboBox) angezeigt werden.
Wenn ich nun einen User "ändern" möchte, per klick auf den dazugehörigen Button, würde ich gerne das Fenster der User Eigenschaften öffnen lassen. Sprich, statt Rechtsklick --> Eigenschaften auf den entsprechenden User im AD Benutzer & Computer Verwaltungstool, will ich dieses Fenster per Button Aktion aufrufen um die User Eigenschaften zu ändern.
Gibt es da eine Möglichkeit ? Ich habe da an so eine Art sysdm.cpl Befehl gedacht den ich in der Button Click Aktion hinterlegen kann. Google konnte mir da bis jetzt leider keine Auskunft geben, ob so etwas überhaupt möglich ist.
Mit einem alternativen Lösungsvorschlag gebe ich mich natürlich auch zufrieden..
Mfg
rOMOP11
ich arbeite derzeit an einem PowerShell-Script (GUI), um AD User zu verwalten (anlegen, löschen, ändern). Dazu habe ich eine ListBox erstellt in der alle vorhandenen User einer zuvor ausgewählten OU (per ComboBox) angezeigt werden.
Wenn ich nun einen User "ändern" möchte, per klick auf den dazugehörigen Button, würde ich gerne das Fenster der User Eigenschaften öffnen lassen. Sprich, statt Rechtsklick --> Eigenschaften auf den entsprechenden User im AD Benutzer & Computer Verwaltungstool, will ich dieses Fenster per Button Aktion aufrufen um die User Eigenschaften zu ändern.
Gibt es da eine Möglichkeit ? Ich habe da an so eine Art sysdm.cpl Befehl gedacht den ich in der Button Click Aktion hinterlegen kann. Google konnte mir da bis jetzt leider keine Auskunft geben, ob so etwas überhaupt möglich ist.
Mit einem alternativen Lösungsvorschlag gebe ich mich natürlich auch zufrieden..
Mfg
rOMOP11
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 399997
Url: https://administrator.de/contentid/399997
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
Hi,
irgendwie in dieser Richtung:
https://docs.microsoft.com/de-de/previous-versions/windows/desktop/mmc/u ...
E.
irgendwie in dieser Richtung:
https://docs.microsoft.com/de-de/previous-versions/windows/desktop/mmc/u ...
E.
Servus,
Wenn du schon eine GUI baust bau dir den Dialog doch nach oder zumindest die wichtigsten und speichere diese dann mit
Grüße Uwe
Wenn ich nun einen User "ändern" möchte, per klick auf den dazugehörigen Button, würde ich gerne das Fenster der User Eigenschaften öffnen lassen
Machen kann man das, wenn auch nicht gerade schön, da das MMC20 Com-Object sich unter der PS etwas zickig verhält.function Show-ADUCObjectPropertySheet{
param(
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)][ValidateScript({[ADSI]"LDAP://$_"})]$distinguishedName
)
# extract CN, OU, Domain od User
$m = [regex]::match($distinguishedName,'^CN=(.*?),(OU|CN)=(.*?)(?=,DC),DC=(.*)$')
$strCN = $m.Groups[1].Value
$arrOU = $m.Groups[3].Value -split ',(?:OU|CN)='
$strDomain = $m.Groups[4].Value -replace ',DC=','.'
# prepare mmc
$mmc = [System.Activator]::CreateInstance([type]::GetTypeFromProgID('MMC20.Application'))
# load dsa.msc (ADUC)
$mmc.Load("dsa.msc")
# assign Document, View and Scope variables
$doc = $mmc.Document
$view = $doc.ActiveView
$ns = $doc.ScopeNamespace
# get root of doc
$n = $ns.GetRoot()
# get first child of Root = ADUC Node
$n = $ns.GetChild($n)
# get first Child of ADUC-Node
$n = $ns.GetChild($n)
# search matching domain node
while($n.Name -ne $strDomain){
$n = $ns.GetNext($n)
}
# get first child of found domain node
$n = $ns.GetChild($n)
# traverse the OUs
($arrOU.Count-1)..0 | %{
while($n.Name -ne $arrOU[$_]){
$n = $ns.GetNext($n)
}
if ($_ -gt 0){
$n = $ns.GetChild($n)
}
}
# expand OU
$view.ActiveScopeNode = $n
$ns.Expand($n)
# select found object
$view.ListItems | ?{$_.Name -eq $strCN} | %{$view.Select($_)}
# show property sheet of selected object
$view.DisplaySelectionPropertySheet()
# user can interact with mmc
$mmc.UserControl = 1
# show mmc
$mmc.Show()
}
Get-ADuser Administrator | Show-ADUCObjectPropertySheet
Set-ADUser
selbst, lernst du eine Menge über Error-Handling und LDAP-Attribute .Grüße Uwe