Powershell Ordner mit Berechtigungen anlegen
Guten Tag,
Ich schreibe ein Script um einen Ablauf zu automatisieren.
Bei mir werden immer wieder mehrere Datein in einem Ordner abgelegt, welche dann von anderen Usern benutzt werden.
Jetzt wollte ich jede Datei in einem anderen Unterordner ablegen, wo dann nur eine bestimmte Person zugriff drauf hat.
Der Datei Name sieht wie folgt aus:
Beispiel_Text_ (Max Mustermann_12345).pdf
Hier raus kann man ja dann den Namen des Users in der AD auslesen und dann die Berechtigungen für den jeweiligen Ordner übergeben.
Nur leider weiß ich nicht genau wie ich das machen soll.
Hier mein Code:
Set-Location 'C:\BeispielPfad' # Der Ordner in dem die Dateien gespeichert sind, wird aufgerufen
While($true)
{
Get-ChildItem -Filter *.* | where { ! $_.PSIsContainer } | #Es werden nur Ordner wieder gegeben
ForEach{$ext = $_.name.split('()')[-2]
if(Test-Path $ext) # Hier wird geprüft ob der Ordner schon vorhanden ist
{
Write-Host "Das Verzeichnis ($ext) existiert bereits."
}
else
{
New-Item -ItemType directory $ext # Der neue Ordner wird erzeugt
}
Copy-Item $_ $ext # Die Datei wird in den Ordner kopiert
Remove-Item $_ | Where { ! $_.PSIsContainer } # Die Datei wird gelöscht
}
}
Danke schon mal im Vorraus!
Ich schreibe ein Script um einen Ablauf zu automatisieren.
Bei mir werden immer wieder mehrere Datein in einem Ordner abgelegt, welche dann von anderen Usern benutzt werden.
Jetzt wollte ich jede Datei in einem anderen Unterordner ablegen, wo dann nur eine bestimmte Person zugriff drauf hat.
Der Datei Name sieht wie folgt aus:
Beispiel_Text_ (Max Mustermann_12345).pdf
Hier raus kann man ja dann den Namen des Users in der AD auslesen und dann die Berechtigungen für den jeweiligen Ordner übergeben.
Nur leider weiß ich nicht genau wie ich das machen soll.
Hier mein Code:
Set-Location 'C:\BeispielPfad' # Der Ordner in dem die Dateien gespeichert sind, wird aufgerufen
While($true)
{
Get-ChildItem -Filter *.* | where { ! $_.PSIsContainer } | #Es werden nur Ordner wieder gegeben
ForEach{$ext = $_.name.split('()')[-2]
if(Test-Path $ext) # Hier wird geprüft ob der Ordner schon vorhanden ist
{
Write-Host "Das Verzeichnis ($ext) existiert bereits."
}
else
{
New-Item -ItemType directory $ext # Der neue Ordner wird erzeugt
}
Copy-Item $_ $ext # Die Datei wird in den Ordner kopiert
Remove-Item $_ | Where { ! $_.PSIsContainer } # Die Datei wird gelöscht
}
}
Danke schon mal im Vorraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 263657
Url: https://administrator.de/forum/powershell-ordner-mit-berechtigungen-anlegen-263657.html
Ausgedruckt am: 29.04.2025 um 07:04 Uhr
3 Kommentare
Neuester Kommentar

Moin,
einfach mal die Suchfunktion bemühen, das Forum existiert ja nicht erst seit gestern:
Gruß jodel32
einfach mal die Suchfunktion bemühen, das Forum existiert ja nicht erst seit gestern:
- Berechtigungsänderung über die Powershell - Skript funktioniert nicht richtig
- 500 Ordner - NTFS Berechtigungen mit wenigen Klicks ändern
- Kann man per Powershell Benutzer-Ordner aus vorhandenen AD Konten erzeugen?
Gruß jodel32

hä ? In den Links wird dir das doch mehrfach auf dem Silbertablett serviert ... was verstehst du daran denn nicht ?
mit Get-ACL die Berechtigungen des Ordners holen, dann die neuen Berechtigungen hinzufügen und mit Set-Acl wieder zurückschreiben. Bei Bedarf mit der Funktion SetAccessRuleprotection die Vererbung unterbrechen und alle bestehenden Berechtigungen entfernen.
@colinardo hat das ja in dem einen Beispiel schön kommentiert.
Wo ist also dein Problem ?
mit Get-ACL die Berechtigungen des Ordners holen, dann die neuen Berechtigungen hinzufügen und mit Set-Acl wieder zurückschreiben. Bei Bedarf mit der Funktion SetAccessRuleprotection die Vererbung unterbrechen und alle bestehenden Berechtigungen entfernen.
@colinardo hat das ja in dem einen Beispiel schön kommentiert.
Wo ist also dein Problem ?