Veröffentlicht 21. Februar 20241 j Hallo zusammen, ich komme mit meinem Powershell Skript nicht mehr weiter. Ich bin dabei ein Skript zu erstellen, womit ein AD Benutzer angelegt wird, soweit so gut. Das ganze klappt auch bisher, wie ich mir das vorgestellt habe. Das Problem ist das anlegen des Homeverzeichnisses mit Powershell. Wenn man einen Benutzer über die MMC erstellt wird ja standarmäßig der Ordner in dem angegebenen Verzeichnis erstellt und der User bekommt ein Vollzugriff drauf. Mit Powershell ist das leider nicht genau so. Hierbei wird nur der Pfad beim Benutzer eingetragen, dabei wird kein Ordner automatisch erstellt. Bei meinem Skript geht es im Prinzip darum, dass vorhandene User mit einem anderen Namen neu angelegt werden. Ich habe auch versucht das vorhandene Homeverzeichnis umzubenennen und dem neuen User die Rechte auf den Ordner zu geben, jedoch funktionieren die Befehle nicht so wie ich es mir gedacht habe. Hattet ihr bereits so ein Problem gehabt und eien Lösung dafür, wie ich das am leichtesten umsetzen kann? Danke im Voraus
21. Februar 20241 j Dann würde ich vermuten, dass du die falschen Befehle verwendest, weil das was du vorhast funktioniert auf jeden Fall mit PS. Kannst du dein Script mal posten um zu sehen, wie du vorgehst?
22. Februar 20241 j Autor Um den Pfad zu setzen und den Laufwerkbuchstaben habe ich folgenden Befehl benutzt: Set-ADUser -Identity ... -HomeDrive "U" -HomeDirectory "..." Durch diesen Befehl bekommt der User den Pfad zugewiesen, jedoch wird kein Ordner erstellt. Ich habe danach versucht den vorhanden Ordner mit folgenden Befehlen umzubenennen und den neuen Benutzer rechte zu geben: if (Test-Path -Path $U_Drive_path_old -Credential $cred){ #Löschung der Zugriffsrechten des alten Benutzers $aclold = Invoke-Command -Session $sessionAD -ScriptBlock {Get-Acl -Path $($Using:U_Drive_path_old) } Invoke-Command -Session $sessionAD -ScriptBlock {$($Using:aclold.Access) | Where-Object {$_.IdentityReference -eq "...\$($Using:oldinformation.SAMAccountname)"} | ForEach-Object {$($Using:aclold).RemoveAccessRule($_)}} Invoke-Command -Session $sessionAD -ScriptBlock {Set-Acl -Path $($Using:U_Drive_path_old) -AclObject $($Using:aclold)} Rename-Item -Path $U_Drive_path_old -NewName $NewUsernameTextBox.Text -Credential $cred $aclNew = Invoke-Command -Session $sessionAD -ScriptBlock {Get-Acl -Path $($Using:U_Drive_path_new)} $permission = "$($NewUsernameTextBox.Text)", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow" $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission $aclNew = Invoke-Command -Session $sessionAD -ScriptBlock {$($Using:aclNew).SetAccessRule($($Using:accessRule))} Invoke-Command -Session $sessionAD -ScriptBlock {Set-Acl -Path $($Using:U_Drive_path_new) -AclObject $($Using:aclNew)} Bei dem Code habe ich folgendes Problem: Auf dem Server funktioniert es und ich kann ohne Probleme die Befehle ausführen. Wenn ich jedoch über eine Session mit Invoke-Command dran gehe wird der Zugriff verwehrt, obwohl ich die Session mit einem Admin aufmache.
22. Februar 20241 j https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4 Eventuell hat der verwehrte Zugriff hiermit zu tun.
22. Februar 20241 j Autor vor 5 Stunden schrieb x0r: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4 Eventuell hat der verwehrte Zugriff hiermit zu tun. Dann müssten ja theoretisch die restlichen Befehle wie New-ADUser über Invoke-Command auch geblockt werden. Wird aber nicht, sonder nur Get-ACL
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.