Comment puis-je définir des contrôles d'audit sur les fichiers appartenant à TrustInstaller à l'aide de PowerShell?

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

Question

J'essaie de définir des contrôles d'audit sur un certain nombre de fichiers (répertorié dans ACLsWin.txt) situé dans \%Windows%\System32 (par exemple, aaclient.dll) en utilisant le script PowerShell suivant:

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

Chaque fois que j'exécute le script, j'obtiens l'erreur PermissionDenied [Set-Acl] UnauthorizedAccessException.

Cela semble provenir du fait que le propriétaire de ces fichiers est TrustedInstaller. J'exécute ces scripts en tant qu'administrateur (même si je suis sur le compte administrateur intégré) et il échoue toujours. Je peux définir ces contrôles d'audit à la main en utilisant l'onglet de sécurité, mais il y a au moins 200 fichiers pour lesquels faire à la main peut entraîner des erreurs humaines.

Comment puis-je me déplacer TrustedInstaller et définir ces contrôles d'audit à l'aide de PowerShell?

Était-ce utile?

La solution

À partir de la ligne de commande administrative (exécuter en tant qu'administrateur):

Takeown / f "nom de fichier" / a

Donnera la propriété du fichier au groupe des administrateurs et vous permettra d'exécuter votre script.

Vous pourriez également avoir besoin d'utiliser la commande ICACLS pour ajouter ou modifier les autorisations pour le groupe des administrateurs après avoir donné sa propriété du fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top