审核文件夹的成功和失败事件

时间:2018-08-06 07:23:04

标签: windows powershell permissions windows-10 audit

我正在使用PowerShell将用户添加到Windows 10中的文件夹审核中。 我正在使用此代码来设置“所有人”进行审核。 但是我需要为失败设置特殊规则,为成功和失败设置特殊规则,因此我需要将其保存在2个不同的行中。 -像这张照片:

auditing

这是我正在使用的代码:

$Folders = "C:\windows\system32\config"

Foreach ($Folder in $Folders) {
    Write-Host "" # Empty line
    Write-Host "Applying Auditing for folder", $Folder
    Write-Host "" # Empty line

    $ACL = Get-Acl $Folder

    # Set Auditing for Success event for above Folders for EVeryone group
    $PermAudited = "CreateFiles"
    $AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone", $PermAudited, "Failure")
    $ACL.SetAuditRule($AccessRule)

    # Set Auditing for Success event for Top folder
    Write-Host $Folder, "for auditing Success event"
    $ACL | Set-Acl $Folder
}

1 个答案:

答案 0 :(得分:0)

您可以使用System.Security.AccessControl.FileSystemRights枚举指定那些规则,检查可用的规则,如下所示:

[enum]::GetNames([System.Security.AccessControl.FileSystemRights])

基本上,您需要查看FileSystemAuditRule的构造函数之一,以了解如何设置它,对于您的需求,我认为这是正确的:

FileSystemAuditRule(
string identity,
FileSystemRights fileSystemRights,
AuditFlags flags
)

因此,您需要根据自己的示例设置RightsAuditFlags,如下所示:

$Rights = "ReadAndExecute","Modify"
$Flags = "Failure"

$AccessRights = [System.Security.AccessControl.FileSystemRights]$Rights 
$AuditFlags = [System.Security.AccessControl.AuditFlags]$Flags 

然后按如下所示设置ACL:

$ACL = Get-Acl $Folder
$AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone",$AccessRights, $AuditFlags)
$ACL.SetAuditRule($AccessRule)
Set-Acl -Path $Folder -AclObject $ACL