كيف يمكنني تعيين عناصر تحكم التدقيق على الملفات التي تملكها TrustedInstaller باستخدام PowerShell؟

StackOverflow https://stackoverflow.com/questions/19842666

سؤال

أحاول تعيين عناصر تحكم التدقيق على عدد من الملفات (المدرجة في ACLsWin.txt) يقع في \%Windows%\System32 (فمثلا، aaclient.dll) باستخدام نص PowerShell التالي:

$FileList = Get-Content ".\ACLsWin.txt"
$ACL = New-Object System.Security.AccessControl.FileSecurity

$AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone", "Delete", "Failure")
$ACL.AddAuditRule($AccessRule)
foreach($File in $FileList)
{
    Write-Host "Changing audit on $File"
    $ACL | Set-Acl $File
}

كلما قمت بتشغيل البرنامج النصي ، أحصل على الخطأ PermissionDenied [Set-Acl] UnauthorizedAccessException.

يبدو أن هذا يأتي من حقيقة أن مالك هذه الملفات TrustedInstaller. أقوم بتشغيل هذه البرامج النصية كمسؤول (على الرغم من أنني على حساب المسؤول المدمج) وما زال فشله. يمكنني تعيين عناصر تحكم التدقيق هذه باليد باستخدام علامة التبويب الأمان ، ولكن هناك ما لا يقل عن 200 ملف قد يؤدي القيام به باليد إلى أخطاء بشرية.

كيف يمكنني الالتفاف TrustedInstaller وتعيين عناصر التحكم في التدقيق باستخدام PowerShell؟

هل كانت مفيدة؟

المحلول

من سطر الأوامر الإداري (تشغيل كمسؤول):

Takeown /F "اسم الملف" /أ

سيعطي ملكية الملف لمجموعة المسؤولين ويسمح لك بتنفيذ البرنامج النصي الخاص بك.

قد تحتاج أيضًا إلى استخدام أمر ICACLS لإضافة أو تعديل أذونات مجموعة المسؤولين بعد منحها ملكية الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top