ANAVEM
Languagefr
Windows security monitoring dashboard displaying Event ID 4735 local group change audit logs
Event ID 4735InformationMicrosoft-Windows-Security-AuditingWindows

Windows Event ID 4735 – Microsoft-Windows-Security-Auditing: Security-Enabled Local Group Changed

Event ID 4735 fires when a security-enabled local group is modified on Windows systems. This security audit event tracks changes to local group membership, properties, or permissions for compliance and security monitoring.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 March 202612 min read 0
Event ID 4735Microsoft-Windows-Security-Auditing 5 methods 12 min
Event Reference

What This Event Means

Event ID 4735 represents a fundamental component of Windows security auditing infrastructure, specifically designed to track modifications to security-enabled local groups. When this event fires, it indicates that someone or something has altered a local group's configuration, membership, or properties on the target system.

The event contains rich contextual information including the security identifier (SID) of the modified group, the account that performed the change, the workstation from which the change originated, and detailed information about what specific modifications occurred. This granular level of detail makes Event ID 4735 invaluable for forensic investigations and security incident response activities.

Windows generates this event through the Local Security Authority (LSA) subsystem whenever group modification APIs are called. The event captures both successful modifications and provides correlation data with other security events like logon events (4624) and privilege use events (4672). This interconnected logging approach enables security analysts to build comprehensive timelines of administrative activities.

In enterprise environments, Event ID 4735 often correlates with automated provisioning systems, help desk activities, or scheduled maintenance tasks. However, unexpected occurrences of this event, especially during off-hours or from unusual source workstations, can indicate potential security incidents requiring immediate investigation.

Applies to

Windows 10Windows 11Windows Server 2019/2022/2025
Analysis

Possible Causes

  • Administrator adding or removing users from local groups like Administrators, Remote Desktop Users, or Backup Operators
  • Group Policy processing that modifies local group memberships through Restricted Groups or Group Policy Preferences
  • Automated provisioning systems or configuration management tools modifying local group configurations
  • PowerShell scripts or batch files executing Add-LocalGroupMember or Remove-LocalGroupMember cmdlets
  • Third-party software installations that require specific local group memberships for service accounts
  • Help desk personnel making local group changes during user support activities
  • Malicious actors attempting privilege escalation by adding accounts to privileged local groups
  • System restore operations that revert local group configurations to previous states
  • Domain controller replication events affecting local groups on member servers
Resolution Methods

Troubleshooting Steps

01

Review Event Details in Event Viewer

Start by examining the specific details of Event ID 4735 to understand what changed and who initiated the modification.

  1. Open Event Viewer by pressing Win + R, typing eventvwr.msc, and pressing Enter
  2. Navigate to Windows LogsSecurity
  3. Filter the log by clicking Filter Current Log in the Actions pane
  4. Enter 4735 in the Event IDs field and click OK
  5. Double-click on a recent Event ID 4735 entry to view detailed information
  6. Review the following key fields in the event details:
    • Subject: Shows who made the change (Account Name and Account Domain)
    • Group: Displays the modified group name and SID
    • Changed Attributes: Lists specific modifications made to the group
    • Additional Information: Contains privileges used and process information
  7. Cross-reference the timestamp with other security events to build a timeline of activities
Pro tip: Look for patterns in the Subject Account Name field to identify automated systems versus human administrators making changes.
02

Query Events with PowerShell for Analysis

Use PowerShell to efficiently query and analyze Event ID 4735 occurrences across multiple systems or time periods.

  1. Open PowerShell as Administrator
  2. Query recent Event ID 4735 entries with detailed information:
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4735} -MaxEvents 50 | ForEach-Object {
        $xml = [xml]$_.ToXml()
        [PSCustomObject]@{
            TimeCreated = $_.TimeCreated
            SubjectUserName = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
            SubjectDomainName = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectDomainName'} | Select-Object -ExpandProperty '#text'
            TargetUserName = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'TargetUserName'} | Select-Object -ExpandProperty '#text'
            TargetSid = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'TargetSid'} | Select-Object -ExpandProperty '#text'
            GroupName = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'GroupName'} | Select-Object -ExpandProperty '#text'
        }
    } | Format-Table -AutoSize
  3. Filter events by specific time range to investigate incidents:
    $StartTime = (Get-Date).AddDays(-7)
    $EndTime = Get-Date
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4735; StartTime=$StartTime; EndTime=$EndTime}
  4. Export results to CSV for further analysis:
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4735} -MaxEvents 100 | Export-Csv -Path "C:\Temp\Event4735_Analysis.csv" -NoTypeInformation
  5. Query multiple remote systems simultaneously:
    $Computers = @('Server01', 'Server02', 'Workstation01')
    Invoke-Command -ComputerName $Computers -ScriptBlock {
        Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4735} -MaxEvents 10
    } | Select-Object PSComputerName, TimeCreated, Id, LevelDisplayName, Message
Warning: Querying Security logs requires administrative privileges and appropriate audit permissions on target systems.
03

Investigate Current Local Group Memberships

Verify current local group configurations to understand the impact of detected changes and identify any unauthorized modifications.

  1. List all local groups and their current memberships:
    Get-LocalGroup | ForEach-Object {
        $GroupName = $_.Name
        Write-Host "Group: $GroupName" -ForegroundColor Green
        try {
            Get-LocalGroupMember -Group $GroupName | Select-Object Name, ObjectClass, PrincipalSource | Format-Table
        } catch {
            Write-Host "  No members or access denied" -ForegroundColor Yellow
        }
        Write-Host ""
    }
  2. Focus on privileged groups that commonly appear in security incidents:
    $PrivilegedGroups = @('Administrators', 'Remote Desktop Users', 'Backup Operators', 'Power Users')
    foreach ($Group in $PrivilegedGroups) {
        Write-Host "=== $Group ===" -ForegroundColor Cyan
        try {
            Get-LocalGroupMember -Group $Group | Select-Object Name, ObjectClass, PrincipalSource
        } catch {
            Write-Host "Group not found or access denied" -ForegroundColor Red
        }
    }
  3. Compare current memberships with baseline configurations stored in documentation or previous exports
  4. Check for recently added accounts that might indicate compromise:
    Get-LocalUser | Where-Object {$_.Enabled -eq $true -and $_.LastLogon -gt (Get-Date).AddDays(-30)} | Select-Object Name, LastLogon, PasswordLastSet
  5. Verify group membership changes align with change management records or authorized administrative activities
Pro tip: Maintain baseline exports of critical local group memberships to quickly identify unauthorized changes during incident response.
04

Configure Advanced Audit Policies for Enhanced Monitoring

Implement comprehensive audit policies to ensure proper logging of local group changes and related security events.

  1. Open Group Policy Management Console or Local Group Policy Editor (gpedit.msc)
  2. Navigate to Computer ConfigurationWindows SettingsSecurity SettingsAdvanced Audit Policy ConfigurationAudit Policies
  3. Configure the following audit subcategories for comprehensive group change monitoring:
    • Account ManagementAudit Security Group Management: Set to Success and Failure
    • Account ManagementAudit User Account Management: Set to Success and Failure
    • Privilege UseAudit Sensitive Privilege Use: Set to Success and Failure
  4. Verify current audit settings using PowerShell:
    auditpol /get /subcategory:"Security Group Management"
    auditpol /get /subcategory:"User Account Management"
    auditpol /get /subcategory:"Sensitive Privilege Use"
  5. Configure audit settings via command line if Group Policy is not available:
    auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
    auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
  6. Set up Security log retention and archiving to prevent audit data loss:
    • Open Event ViewerWindows LogsSecurity
    • Right-click Security and select Properties
    • Increase Maximum log size to at least 100 MB
    • Select Archive the log when full, do not overwrite events
  7. Consider implementing Windows Event Forwarding (WEF) for centralized log collection in enterprise environments
Warning: Enabling comprehensive auditing increases log volume significantly. Ensure adequate storage and log management infrastructure is in place.
05

Implement Automated Monitoring and Alerting

Deploy automated monitoring solutions to detect and respond to unauthorized local group changes in real-time.

  1. Create a PowerShell script for continuous monitoring of Event ID 4735:
    # Save as Monitor-LocalGroupChanges.ps1
    param(
        [int]$CheckIntervalMinutes = 5,
        [string]$AlertEmail = "security@company.com",
        [string]$SMTPServer = "mail.company.com"
    )
    
    $LastCheck = (Get-Date).AddMinutes(-$CheckIntervalMinutes)
    $Events = Get-WinEvent -FilterHashtable @{
        LogName='Security'
        Id=4735
        StartTime=$LastCheck
    } -ErrorAction SilentlyContinue
    
    if ($Events) {
        $AlertBody = "Detected $($Events.Count) local group changes:\n\n"
        foreach ($Event in $Events) {
            $xml = [xml]$Event.ToXml()
            $Subject = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
            $Group = $xml.Event.EventData.Data | Where-Object {$_.Name -eq 'GroupName'} | Select-Object -ExpandProperty '#text'
            $AlertBody += "Time: $($Event.TimeCreated)\nUser: $Subject\nGroup: $Group\n\n"
        }
        
        Send-MailMessage -To $AlertEmail -From "noreply@company.com" -Subject "Local Group Changes Detected" -Body $AlertBody -SmtpServer $SMTPServer
    }
  2. Schedule the monitoring script using Task Scheduler:
    $Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\Monitor-LocalGroupChanges.ps1"
    $Trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration (New-TimeSpan -Days 365) -At (Get-Date)
    $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
    Register-ScheduledTask -TaskName "Monitor Local Group Changes" -Action $Action -Trigger $Trigger -Settings $Settings -User "SYSTEM"
  3. Configure Windows Event Forwarding for centralized monitoring:
    • On collector server, run: wecutil qc
    • Create subscription configuration file for Event ID 4735
    • Configure source computers to forward security events
  4. Integrate with SIEM solutions by configuring log forwarding to tools like Splunk, QRadar, or Azure Sentinel
  5. Set up correlation rules to detect patterns like multiple group changes from the same account or changes during off-hours
  6. Implement automated response actions such as disabling accounts or triggering incident response workflows when suspicious patterns are detected
Pro tip: Combine Event ID 4735 monitoring with related events like 4728 (member added to global group) and 4732 (member added to local group) for comprehensive group change detection.

Overview

Event ID 4735 is a critical security audit event that fires whenever a security-enabled local group undergoes modification on Windows systems. This event captures changes to local groups including membership additions or removals, group property modifications, and permission adjustments. The event is generated by the Windows Security subsystem and logged to the Security event log when local group auditing is enabled through Group Policy.

This event plays a crucial role in security monitoring and compliance frameworks, particularly in environments where local group management requires strict oversight. The event provides detailed information about what changed, who made the change, and when it occurred. Security teams rely on this event to detect unauthorized group modifications, track administrative activities, and maintain audit trails for compliance requirements like SOX, HIPAA, or PCI-DSS.

The event fires on domain controllers, member servers, and workstations when local groups are modified through various methods including Computer Management, PowerShell commands, or programmatic changes. Understanding this event is essential for maintaining proper security posture and detecting potential privilege escalation attempts.

Frequently Asked Questions

What does Event ID 4735 mean and when does it occur?+
Event ID 4735 indicates that a security-enabled local group has been modified on a Windows system. This event fires whenever changes are made to local groups including membership additions or removals, property modifications, or permission changes. The event is generated by the Windows Security subsystem and logged to the Security event log when appropriate audit policies are enabled. Common scenarios include administrators adding users to local groups, automated provisioning systems modifying group memberships, or Group Policy processing that affects local group configurations.
How can I determine who made changes to local groups using Event ID 4735?+
Event ID 4735 contains detailed information about who initiated the group change in the Subject fields. The event data includes SubjectUserName (the account that made the change), SubjectDomainName (the domain or computer name), and SubjectLogonId (the logon session identifier). You can correlate this information with logon events (Event ID 4624) using the LogonId to determine when and how the user authenticated before making the change. Additionally, the event includes the source workstation information and process details that can help identify whether the change was made interactively, through a script, or by an automated system.
What should I do if I see unexpected Event ID 4735 entries in my security logs?+
Unexpected Event ID 4735 entries require immediate investigation as they may indicate unauthorized privilege escalation attempts. First, review the event details to identify the modified group, the account that made the change, and the timestamp. Cross-reference this information with change management records and authorized administrative activities. Check if the source account has legitimate reasons to modify local groups and verify the changes align with business requirements. Examine the current group memberships to ensure no unauthorized accounts were added to privileged groups. If the changes appear suspicious, consider disabling affected accounts, reverting unauthorized group modifications, and initiating incident response procedures while preserving audit evidence.
Can Event ID 4735 help detect privilege escalation attacks?+
Yes, Event ID 4735 is crucial for detecting privilege escalation attacks, particularly those targeting local group memberships. Attackers often attempt to add compromised accounts to privileged local groups like Administrators, Remote Desktop Users, or Backup Operators to gain elevated access. Monitor for Event ID 4735 entries that show unexpected additions to privileged groups, especially during off-hours or from unusual source systems. Look for patterns such as recently created accounts being immediately added to administrative groups, or service accounts being granted interactive logon rights through group membership changes. Correlate these events with other security indicators like unusual logon patterns, suspicious process execution, or network anomalies to build a comprehensive picture of potential compromise.
How do I configure proper auditing to ensure Event ID 4735 is logged consistently?+
To ensure consistent logging of Event ID 4735, configure the 'Audit Security Group Management' subcategory under Advanced Audit Policy Configuration. Navigate to Computer Configuration → Windows Settings → Security Settings → Advanced Audit Policy Configuration → Audit Policies → Account Management → Audit Security Group Management, and set it to 'Success and Failure'. You can also use the command 'auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable' to configure this setting. Additionally, ensure the Security event log has adequate size and retention settings to prevent audit data loss. In enterprise environments, consider implementing Windows Event Forwarding or SIEM integration to centralize and preserve audit logs. Regularly verify audit settings haven't been modified by unauthorized personnel, as disabling auditing is a common technique used by attackers to hide their activities.
Documentation

References (2)

Emanuel DE ALMEIDA
Written by

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Share your thoughts and insights

You must be logged in to comment.

Loading comments...