Anlässlich des c’t-Artikels „Schotten dicht“ zur Absicherung von Windows, musste ich mich etwas damit beschäftigen, wie man unter Windows ACLs mit Hilfe der Windows Powershell kopiert und verändert.
Mein Fall: ScanScap möchte leider Schreibrechte auf seinem Installationsverzeichnis haben. Starten als Admin halte ich für keine Option – auch schon aus dem Grund, dass Admin die notwendigen Netzlaufwerke nicht hat.
Eine wirklich saubere Lösung habe ich nicht gefunden, aber so kann ich ScanSnap (bei nicht ganz optimaler Sicherheit, leider) wenigstens wieder verwenden:
$acl = Get-Acl 'C:\Program Files (x86)\'
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule("stk", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($ar)
Get-ChildItem -path 'C:\Program Files (x86)\PFU\ScanSnap' -Recurse | Set-Acl -AclObject $acl
Damit werden die Recht aus dem Program-Files-Folder ins ScanSnap-Verzeichnis und alle Unterverzeichnisse übertragen – erweitert um Schreibrechte für den User stk.
Die Unterverzeichnisse werden dabei einzeln „behandelt“. Will man die Rechte nur auf dem obersten Verzeichnis setzen, dann so:
Set-Acl 'C:\Program Files (x86)\PFU\ScanSnap' $acl