derwowusste
Goto Top

Welches Privileg bestimmt, ob ein AD-User sein eigenes Kennwort per net user Name Slash domain resetten kann

Moin Kollegen!

Schwieriges Thema, nicht unterschätzen face-smile

Den Titel bitte genau lesen: es geht nicht um eine Kennwortänderung (welche jeder per default darf), sondern um Kennwort-Reset, also ein Setzen ohne vorherige Eingabe des alten Kennwortes. Ebenso geht es um geskriptetes Setzen, nicht um Setzen über die Oberfläche.

Domänenadmins dürfen das natürlich, aber welches Recht müsste ich einem Nutzer zuteilen, wenn ich wollte, dass er das auch kann? Erstaunlicherweise macht es nämlich einen Unterschied, ob man die GUI benutzt, oder net user.
In der GUI (also über die MMC mit ADUC-Snapin) gelingt es, sobald der User das Privileg "Reset password" hat, über net user kommt weiterhin "access denied". Erst wenn ich dem Benutzer Vollzugriff auf sein eigenes Objekt erteile, kann er auch über net user resetten. Aber Vollzugriff will ich dem Benutzer natürlich nicht geben face-smile

Ich hoffe nun, dass das Problem deutlich geworden ist: der Nutzer soll es auch über die Kommandozeile können und nicht die GUI nutzen müssen.

Content-Key: 233941

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

Printed on: April 19, 2024 at 17:04 o'clock

Member: Snowman25
Snowman25 Mar 28, 2014 at 12:14:56 (UTC)
Goto Top
Hallo @DerWoWusste,

kann der User denn sein Passwort ändern, wenn dies per net user <username> /PASSWORDCHG:YES gesetzt wurde?

Gruß,
@Snowman25
Member: DerWoWusste
DerWoWusste Mar 28, 2014 at 12:57:47 (UTC)
Goto Top
Nein, nicht über net user.
Es sieht mir so aus, als wäre die net.exe schlicht schlecht programmiert und würde (unnötigerweise) einen Check machen, ob Vollzugriff besteht.
Member: colinardo
Solution colinardo Mar 28, 2014, updated at Mar 31, 2014 at 21:41:59 (UTC)
Goto Top
Hi DWW,
hab vorhin auch mal ein bißchen mit den Berechtigungen dafür gespielt, und bin da auch nicht viel weiter gekommen, alternativ mach's halt mit Powershell (wenn du es damit in deinem Projekt umsetzen kannst):

Password für den gerade angemeldeten User neu setzen
Function Set-AdUserPwd ([string]$user,[string]$pwd) {
    $objSearch = New-Object System.DirectoryServices.DirectorySearcher 
    $objSearch.Filter = "(SamAccountName=$user)"  
    $allUsers = $objSearch.FindOne()
    foreach ($user in $allUsers) {
    	$o = $user.GetDirectoryEntry()
        $o.Invoke("SetPassword",$pwd)  
        $o.CommitChanges()
    }
}
Set-AdUserPwd -user $env:USERNAME -pwd "Passw0rd"  
Grüße Uwe
Member: DerWoWusste
DerWoWusste Mar 28, 2014 at 14:43:17 (UTC)
Goto Top
Sehr gut, läuft.
Pfeifen wir einfach auf die unfähige net.exe face-wink
Member: DerWoWusste
DerWoWusste Mar 31, 2014 at 21:43:50 (UTC)
Goto Top
Sieht so aus, als wäre es wirklich etwas sonderbares, was in die net.exe eingearbeitet ist. Ich hatte nun aber nicht die Lust, alle ACL-Einträge einzeln durchzugehen, wenn man sich durch Einsatz der Powershell behelfen kann. Danke nochmals, Uwe.