Powershell Skript setzt Rechte nicht auf vorhandene untergeordnete Ordner
Hallo,
ich habe folgendes Skript:
$UserInfoFile = Import-Csv 'C:\csv\Schueler-Klasse.csv' –Delimiter ';'
Foreach ($Name in $UserInfoFile)
{
$samAccountName = $Name.Name
$Klasse = $Name.Klasse
$PathKlasse = „\\daten\Klassen\1_Homeschüler\{0}“ -f $Klasse
$fullPath = $PathKlasse + "\" + $samAccountName
$driveLetter = „H:“
$User = Get-ADUser -Identity $samAccountName
if($User -ne $Null) {
Set-ADUser $User -HomeDrive $driveLetter -HomeDirectory $fullPath -ea Stop
$homeShare = New-Item -path $fullPath -ItemType Directory -force -ea Stop
$acl = Get-Acl $homeShare
$FileSystemRights = [System.Security.AccessControl.FileSystemRights]“FullControl“
$AccessControlType = [System.Security.AccessControl.AccessControlType]::Allow
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]“ContainerInherit, ObjectInherit“
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]“InheritOnly“
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($User.SID, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($AccessRule)
Set-Acl -Path $homeShare -AclObject $acl -ea Stop
Write-Host („HomeDirectory created at {0}“ -f $fullPath)
}
}
Das funktioniert auch soweit.
Das einzige Problem ist das es die vorhandenen Unterordner nicht die Rechte setzt. Wenn ivh neue Ordner anlege funktioniert es.
Was muss ich ändern?
rodelking
ich habe folgendes Skript:
$UserInfoFile = Import-Csv 'C:\csv\Schueler-Klasse.csv' –Delimiter ';'
Foreach ($Name in $UserInfoFile)
{
$samAccountName = $Name.Name
$Klasse = $Name.Klasse
$PathKlasse = „\\daten\Klassen\1_Homeschüler\{0}“ -f $Klasse
$fullPath = $PathKlasse + "\" + $samAccountName
$driveLetter = „H:“
$User = Get-ADUser -Identity $samAccountName
if($User -ne $Null) {
Set-ADUser $User -HomeDrive $driveLetter -HomeDirectory $fullPath -ea Stop
$homeShare = New-Item -path $fullPath -ItemType Directory -force -ea Stop
$acl = Get-Acl $homeShare
$FileSystemRights = [System.Security.AccessControl.FileSystemRights]“FullControl“
$AccessControlType = [System.Security.AccessControl.AccessControlType]::Allow
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]“ContainerInherit, ObjectInherit“
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]“InheritOnly“
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($User.SID, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($AccessRule)
Set-Acl -Path $homeShare -AclObject $acl -ea Stop
Write-Host („HomeDirectory created at {0}“ -f $fullPath)
}
}
Das funktioniert auch soweit.
Das einzige Problem ist das es die vorhandenen Unterordner nicht die Rechte setzt. Wenn ivh neue Ordner anlege funktioniert es.
Was muss ich ändern?
rodelking
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 351378
Url: https://administrator.de/forum/powershell-skript-setzt-rechte-nicht-auf-vorhandene-untergeordnete-ordner-351378.html
Ausgedruckt am: 23.12.2024 um 11:12 Uhr
1 Kommentar
Hi,
E.
- benutze bitte Code-Tags!
- Warum definierst Du "$FileSystemRights" usw. wenn Du sie dann doch nicht benutzt? Sowas lenkt bloß ab.
- Nimm mal "None" als "PropagationFlags". Du willst doch sicherlich erreichen "diesen und alle untergeordneten". "InheritOnly" bedeutet "nur alle untergeordneten" --> PropagationFlags-Enumeration
- Wenn an diesen vorhandenen Unterordnern z.Z. die Vererbung deaktiviert ist, dann übernehmen sie das natürlich nicht. Prüfe das erstmal.
E.