Як встановити права доступу "Аутентифікованих користувачів" до даного файлу за допомогою сценаріїв на Win 7 +


0

У мене є цей файл сценарію, який наразі встановлює дозволи "Аутентифікованих користувачів" для виконуваного файлу "ReadAndExecute" - це добре працює на Windows 10, але він повинен працювати на Windows 7 - і це не так:

$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; 

Це запускається, але не встановлює дозволів для автентифікованих користувачів, якщо я зміню GetAccessControl закликати не мати 'Access' Параметр, на Win7 я отримую цю помилку:

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

Чи є все одно, щоб досягти того, що я намагаюся зробити?

Додаткові вимоги:

  • Я не можу встановити іншу програму на машині, вважаю її ванільною установкою Win 7
  • Він повинен працювати не в інтерактивному режимі - оскільки він є частиною автоматичного сценарію інсталяції

Чи намагалися ви скористатися командлетом Set-ACL?
EBGreen

@EBGreen - Ні, я цього не зробив
Chris Skardon

Хоча - я не впевнений, як використовувати його, щоб робити те, що я намагаюся зробити - з того, що я бачу, мені потрібно AclObj - і все, що знаходиться в середині, просто отримує Acl - остання лінія, де я називаю Set-ACL - я повинен робити це іншим шляхом?
Chris Skardon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.