355363a
Goto Top

Berechtigungen auf User Home Laufwerke mit PowerShell setzen

Hallo zusammen, vielleicht kann mir jemand helfen. Ich würde gerne diverse User Home Laufwerke, automatisch mithilfe einer vorher eingelesen TXT Datei, in welcher die entsprechenden User Namen hinterlegt sind, Berechtigungen entziehen. Jedoch kommt es hier immer wieder zu Fehlern. Ich habe mir schon sehr viele Möglichkeiten angeschaut, komme aber leider nicht mehr weiter

Content-ID: 2137643738

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

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

Felix0201
Felix0201 06.11.2023 um 15:06:57 Uhr
Goto Top
Hi.
Was für Fehler kommen denn?
Das dazugehörige Skript wäre auch hilfreich.
355363a
355363a 06.11.2023 um 15:20:44 Uhr
Goto Top
Zitat von @Felix0201:

Hi.
Was für Fehler kommen denn?
Das dazugehörige Skript wäre auch hilfreich.

Das Problem ist, das es einmal auch ohne Fehler funktioniert hat, sich an den gesetzten Berechtigungen aber nichts getan hat

#$PSDefaultParameterValues['*-AD*:Server'] = 'XY' 

$listpath = $PSScriptRoot + '\Users.txt'  
$userList = Get-Content $listpath

Durchgehen von Liste der Benutzer und versuch die Berechtigungen zu ändern
foreach ($user in $userList) {

$path = '\\citsfs02\global\users\' + $user  

Write-Host $path -ForegroundColor Green
$acl = Get-Acl $path
#Informationen über Berechtigungen ausgeben lassen

foreach ($Access in $acl.Access){
if ($Access.IdentityReference -like "S-1-5-21-2104262037-4104397967-1002242693-00000" -or $Access.IdentityReference -like "Admin"){  
Write-Host $Access.IdentityReference "darf nicht geändert werden!" -ForegroundColor Yellow  
} else {
Write-Host $Access.IdentityReference "muss auf Lesen geändert werden!" -ForegroundColor Red  
Write-Output $Access | ft
$filter = "SID -eq '" + $Access.IdentityReference + "'"  
$aduser = Get-ADUser -Filter $filter
Write-Host "change " $aduser.SamAccountName  
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aduser.SamAccountName,"Read","Allow")  
Write-Output $AccessRule | ft
$acl.SetAccessRule($AccessRule)
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aduser.SamAccountName,"Write, Modify, FullControl","Deny")  
Write-Output $AccessRule | ft
$acl.SetAccessRule($AccessRule)
Set-Acl -Path $path -AclObject $acl
}
}
}
Felix0201
Felix0201 06.11.2023 um 15:53:32 Uhr
Goto Top
vielleicht hilft erst ma diese Seite weiter:
Powershell set ACL Permissions

Ansonsten hatte ich mal was ähnliches vor, da ging es allerdings um das setzten von Vollzugriff für eine bestimmte Gruppe.

# Pfad
$pfad = "C:\hier\und\da\"  
#Domäne\Gruppe oder Domäne\Benutzer
$username="domain\group"  
#Rechte
$permission="FullControl"  

ForEach($folder in get-childItem -Path $pfad)
{
$full = $pfad+$folder
$Acl = Get-Acl $full
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($username,$permission,'ContainerInherit,ObjectInherit', 'None', 'Allow')  
$Acl.SetAccessRule($Ar)
Set-Acl $full $Acl
write-host $full
}


Ich weiß allerdings nicht genau, ob es wie bei dir mit "$aduser.samaccountname" funktioniert. Da der Idendity-Parameter "domain\user" voraussetzt.

siehe MS