skahle85
Goto Top

Powershell Set-ADAccountPassword : Zugriff Verweigert

Hallo zusammen,

für die Erleichterung der arbeit beim Kunden baute ich mir (mal wieder) ein kleines Script. Folgendes wird getan dabei:

Auszug:
                $Name=$InputBoxUser.text;
                $User=Get-ADUser -Filter "Name -eq '$Name'" -Properties SamAccountName   
				$Password = ''  
 				$random = New-Object System.Random
				1..10 | ForEach { $Password = $Password + [char] $random.next(48,123) }
				$SetPassword = ConvertTo-SecureString -AsPlainText $Password -Force
                $outputbox.Text +="`r`n"  
                $OUGUID
                $outputbox.Text += Invoke-Command @ServerSettings -Credential $cred -ArgumentList ($User,$SetPassword,$OUGUID) -ScriptBlock{
                Param($user,$SetPassword,$TargetOU)
                $ou=$TargetOU.Item("TargetPath")  
                ("User deaktiviert: "+$user.SamAccountName)   
                Get-AdUser -Identity $user.SamAccountName | Set-ADAccountPassword -NewPassword $SetPassword -Reset -Confirm:$false
                Get-AdUser -Identity $user.SamAccountName | Set-ADAccountControl -CannotChangePassword:$true
                Get-ADPrincipalGroupMembership -Identity $user.SamAccountName | % {Remove-ADPrincipalGroupMembership -Identity $user.SamAccountName -MemberOf $_ -Confirm:$false}
                Get-AdUser -Identity $user.SamAccountName | Move-ADObject -TargetPath $ou
                Get-AdUser -Identity $user.SamAccountName | Disable-ADAccount
                } -ErrorAction SilentlyContinue -ErrorVariable ErrDelUser -WarningVariable WarningDelUser

Soweit so gut.
Dies Funktioniert einwandfrei bei all meinen Kunden, nur bei einem streikt das ganze und scheitert mit folgendem Fehler am Beispiel Passwort ändern:
Set-ADAccountPassword : Zugriff verweigert
In Zeile:1 Zeichen:45
+ Get-AdUser -Identity $user.SamAccountName | Set-ADAccountPassword -NewPassword $ ...
+                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (CN=USER...DC=domain,DC=local:ADUser) [Set-ADAccountPassword], Un
   authorizedAccessException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.UnauthorizedAccessException,Microsoft.ActiveDirectory.Manag
   ement.Commands.SetADAccountPassword
Selbst direkt am Server auf der Powershell funktioniert es nicht...

Wen es interessiert und wer es vielleicht braucht hier das ganze Script:
https://onedrive.live.com/redir?resid=D3CF971C2580642B!3752&authkey= ...

Vielen Dank an alle beteiligten

Grüße

Content-ID: 301562

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

Ausgedruckt am: 08.11.2024 um 11:11 Uhr

emeriks
Lösung emeriks 12.04.2016 um 14:39:47 Uhr
Goto Top
Hi,
steht doch da...?
UnauthorizedAccessException
Keine Zugriffsrechte. Man kann auch einem Domänenadmin Rechte verweigern.

E.
skahle85
skahle85 12.04.2016 um 14:43:25 Uhr
Goto Top
Danke E.
Ok. Das ist richtig.
Aber wie kann es sein, dass dies so ist? Ich check es an der Stelle einfach nicht...
Oder anders gefragt, welche Rechte benötigt denn der Domänen Admin um dies zu ändern per Powershell? in der AD MMC kann ich ja alles machen...
114757
Lösung 114757 12.04.2016 um 14:43:43 Uhr
Goto Top
Hat der Server UAC aktiviert? Wird das Skript in einer elevated Shell ausgeführt ?

Gruß jodel32
skahle85
skahle85 12.04.2016 um 14:48:07 Uhr
Goto Top
Hallo Jodel32,

UAC ist aus. Shell wird mit/als admin gestartet. Andersherum hab ichs auch schon probiert
emeriks
emeriks 12.04.2016 um 14:49:20 Uhr
Goto Top
in der AD MMC kann ich ja alles machen...
  1. hast Du das nicht erwähnt
  2. Sicher? Hast Du es mit der MMC für den betreffenden Benutzer erfolgreich ändern können?
114757
114757 12.04.2016 aktualisiert um 14:54:13 Uhr
Goto Top
Dann würde ich mir die AD-Permissions(adsiedit / erweiterte Eigenschaften Tab: Sicherheit in ADUC) des Benutzers für den das Password geändert werden soll mal genauer anschauen, was bei dem so in den ACLs steht.
skahle85
skahle85 12.04.2016 aktualisiert um 15:16:00 Uhr
Goto Top
@e
Ja, auf jeden Fall.
Musste es dann ja leider händisch machen ohne meine Erleichterung...
skahle85
skahle85 12.04.2016 aktualisiert um 15:17:02 Uhr
Goto Top
@114757
Das werd ich mal gleich überprüfen.

Scheint nicht nur dieses sondern alle User Objekte zu betreffen. Bei keinem funktioniert es über die powershell...
emeriks
emeriks 12.04.2016 um 15:16:00 Uhr
Goto Top
Achso, habe überlesen. Nicht "bei einem Benutzer" sondern "bei einem Kunden". Also ein anderes AD.
Mal ins Blaue gestochert:
Könnte es sein, dass es dort mehrere Domains gibt?
Könnte es sein, dass dort eine andere Passwortrichtlinie gilt?
Könnte es sein, dass das Script dummerweise über einen RODC versucht, das Passwort zu ändern?
114757
114757 12.04.2016 um 15:19:45 Uhr
Goto Top
Könnte es sein, dass dort eine andere Passwortrichtlinie gilt?
Guter Einwand .. Sein Skript generiert ja wahllose Passwörter ohne einer bestimmten Komplexität zu entsprechen zu müssen.
skahle85
skahle85 12.04.2016 um 15:19:46 Uhr
Goto Top
@e

mehrere Domains: nein
Passwortrichtlinien: default
RODC: JA und NEIN - Warum? Der jetzige primary wurde hochgestuft weil der alte DC abgelöst wurde... sollte etwa hier der Hund begraben liegen?
emeriks
emeriks 12.04.2016 um 15:20:38 Uhr
Goto Top
RODC - Read Only DC!
Hat nix mit PDC und FSMO zu tun ...
skahle85
skahle85 12.04.2016 um 15:21:51 Uhr
Goto Top
bezüglich der PW Richtlinie:

dies hier ist z.B. ein gerade generiertes PW welches ich per ps nicht ändern kann aber über die mmc
km_A:JL`pa
114757
114757 12.04.2016 um 15:22:59 Uhr
Goto Top
Wie sieht es mit einem anderen Enterprise- oder Domain-Admin Account aus, dort das selbe Verhalten ?
skahle85
skahle85 12.04.2016 um 15:23:51 Uhr
Goto Top
@e:

das ist mir bewusst, glaub mir. Bbin mir nicht 100% sicher weil ich es so übernommen hatte ob es nicht vorher ein RODC war
skahle85
skahle85 12.04.2016 um 15:25:13 Uhr
Goto Top
@114757

Genau das Gleiche face-sad
114757
114757 12.04.2016 aktualisiert um 15:30:00 Uhr
Goto Top
Zitat von @skahle85:
@114757
Genau das Gleiche face-sad
Gut, dann hat der Server ein generelles Problem, könnte tatsächlich mit der Umwandlung des RODC zu tun haben.

Geb mal den Server mit dem -Server Parameter bei Set-ADAccountPasswort explizit an auf welchem das Passwort geändert werden soll.
skahle85
skahle85 12.04.2016 um 15:32:05 Uhr
Goto Top
@114757
auch unter Server Angabe ohne Erfolg. Leider!
114757
114757 12.04.2016 um 16:33:22 Uhr
Goto Top
Was sagen die Eventlogs?
skahle85
skahle85 14.04.2016 um 10:55:36 Uhr
Goto Top
Hallo zusammen,

leider geben die Eventlogs nichts vernünftiges her. Mittlerweile spitzt sich das ganze aber auch noch weiter zu...
Ein beschreiben des Netlogons ist nämlich auch nicht möglich. Lediglich übers sysvol kann der Admin dort schreiben - Aber das nur so am Rande.

Am Ende denke ich, dass das alles irgendwie zusammenhängt. Ich denke ein ablösen des DCs ist hier unausweichlich.

Oder gibt es noch Ideen? Falls nicht würde ich das Thema dann hier erstmal schließen und bedanke mich schonmal bei @114757 und @emeriks für die Ideen.

VG skahle
114757
114757 14.04.2016 aktualisiert um 11:07:40 Uhr
Goto Top
Hmm, ohne die genaue Vorgeschichte zu kennen, sehr sehr schwierig hier eine passende Aussage zu treffen was da verbastelt wurde, außer du kannst deinen Vorgänger ausquetschen was er da verbrochen hat.

Einen neuen DC aufzusetzen ist denke ich in dieser Situation eine vernünftige und schnelle Lösung.

Gruß jodel32
emeriks
emeriks 14.04.2016 um 11:41:48 Uhr
Goto Top
Ich denke ein ablösen des DCs ist hier unausweichlich.
Du willst einen DC eines Kunden "ablösen", weil Deine Scripte nicht laufen? Und Du diese nicht zum Laufen bekommst?
Oder machst Du das Ganze dann unentgeldlich auf Deine Verantwortung? Oder Ihr habt einen entsprechenden Wartungsvertrag ...
skahle85
skahle85 14.04.2016 um 11:45:05 Uhr
Goto Top
Du willst einen DC eines Kunden "ablösen", weil Deine Scripte nicht laufen? Und Du diese nicht zum Laufen bekommst?

Die haben einen Wartungsvertrag - ;) face-smile. Von daher eher unproblematisch. Mittlerweile laufen ja nicht nur meine Scripts nicht sondern andere Kuriositäten wie beschreiben des Netlogons laufen ja auch nicht.
emeriks
emeriks 14.04.2016 aktualisiert um 11:51:00 Uhr
Goto Top
Netlogon
Freigabeberechtigungen überprüft? Auf jedem DC dieser Domäne.
skahle85
skahle85 14.04.2016 um 12:05:21 Uhr
Goto Top
Freigabeberechtigungen überprüft? Auf jedem DC dieser Domäne.

Ja, alles überprüft

kurz zur Struktur: ein DC und ein Exchange 2013
und jetzt kommts, festhalten
vom Exchange aus funktioniert sowohl das ändern von AD objekten über die Ps und auch das Schreiben im Netlogon ^^

???
skahle85
skahle85 14.04.2016 um 12:13:10 Uhr
Goto Top
Ich denke, ich werde diesen Thread hier jetzt mal so stehen lassen als "gelöst".

Da ich nicht gerade viel Zeit mit der Behebung dieses komischen Problems verbringen möchte mach ich es auf die brachiale und einfachste Variante über einen neuen DC.

Beste Grüße