So legen Sie die Berechtigungen „Authentifizierter Benutzer“ für eine bestimmte Datei per Skript unter Win 7 + fest

So legen Sie die Berechtigungen „Authentifizierter Benutzer“ für eine bestimmte Datei per Skript unter Win 7 + fest

Ich habe diese Skriptdatei, die derzeit die Berechtigungen „Authentifizierte Benutzer“ für eine ausführbare Datei auf „Lesen und Ausführen“ setzt – das funktioniert unter Windows 10 einwandfrei, muss aber unter Windows 7 funktionieren – und das tut es nicht:

$file = (Resolve-Path 'c:\Dir\file.exe').Path; 
$acl = (Get-Item $file).GetAccessControl('Access'); 
acl.SetAccessRuleProtection($True, $True); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'Write', 'None', 'None', 'Allow'); 
$acl.RemoveAccessRuleAll($ar); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'Modify', 'None', 'None', 'Allow'); 
$acl.RemoveAccessRuleAll($ar); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'ReadAndExecute', 'None', 'None', 'Allow'); 
$acl.SetAccessRule($ar); 
Set-ACL -Path $file -AclObject $acl; 

Dies wird ausgeführt, legt jedoch nicht die Berechtigungen für authentifizierte Benutzer fest. Wenn ich den GetAccessControlAufruf so ändere, dass der 'Access'Parameter nicht vorhanden ist, erhalte ich unter Win7 diesen Fehler:

The security identifier is not allowed to be the owner of this object.

Gibt es eine Möglichkeit, mein Ziel zu erreichen?

Zusätzliche Anforderungen:

  • Ich kann keine andere App auf dem Computer installieren, betrachte es als eine Standardinstallation von Win 7
  • Es muss nicht-interaktiv ausgeführt werden - da es Teil eines unbeaufsichtigten Installationsskripts ist

verwandte Informationen