macOS Extended Attributes (ACLs) prevent script execution after package installation.
The v2.4.0 postinstall script automatically clears ACLs:
# Automatically applied during v2.4.0 installation:
xattr -c /usr/local/bin/jamf_connect_monitor.sh
xattr -c /usr/local/etc/jamf_ea_admin_violations.sh# Clear ACLs manually if issues persist:
sudo xattr -c /usr/local/bin/jamf_connect_monitor.sh
sudo xattr -c /usr/local/etc/jamf_ea_admin_violations.sh
# Verify no ACLs remain:
ls -la@ /usr/local/bin/jamf_connect_monitor.sh
# Should show: -rwxr-xr-x (no @ symbol)Extension Attribute shows "Company: Your Company" instead of actual configured company name.
v2.4.0 had fallback issues when Configuration Profile wasn't fully processed.
Enhanced parsing logic automatically detects and displays actual company names:
# Test Configuration Profile integration:
sudo jamf_connect_monitor.sh test-config
# Expected output shows actual configured values:
# Company Name: [Your Actual Company Name]
# Webhook: Configured
# Email: configured@yourcompany.comExtension Attribute shows "Version: Unknown" or empty version field.
Auto-detection now works reliably:
# Test Extension Attribute manually:
sudo /usr/local/etc/jamf_ea_admin_violations.sh
# Expected output shows:
# Version: 2.4.0, Periodic: Running, Real-time: Not RunningSymptoms: After auto-remediation, user still shows as admin in System Settings UI Root Cause: macOS UI cache not refreshing after directory service changes Impact: Cosmetic only - user has NO actual admin privileges
Verification:
# Authoritative check - if this says "not a member" then remediation worked
dsmemberutil checkmembership -U <username> -G adminSolutions:
- Force UI refresh:
sudo killall -9 "System Settings" 2>/dev/null || true
sudo killall -9 UserManagementAgent 2>/dev/null || true
sudo dscacheutil -flushcache
sudo killall -HUP opendirectoryd- Logout and login again
- Reboot (always fixes it)
Note: This is a known macOS bug, not a security issue. The user cannot perform admin actions regardless of UI display.
Symptoms: Empty or "Not configured" in Jamf Pro Solutions:
- Check script permissions:
ls -la /usr/local/etc/jamf_ea_admin_violations.sh - Test manually:
sudo /usr/local/etc/jamf_ea_admin_violations.sh - Force inventory update:
sudo jamf recon
Symptoms: No log entries, violations not detected Solutions:
- Check daemon status:
sudo launchctl list | grep jamfconnectmonitor - Load daemon:
sudo launchctl load /Library/LaunchDaemons/com.macjediwizard.jamfconnectmonitor.plist - Check logs:
tail -f /var/log/jamf_connect_monitor/monitor.log
Symptoms: Approved admins being flagged Solutions:
- Check approved list:
cat /usr/local/etc/approved_admins.txt - Add user:
sudo /usr/local/bin/jamf_connect_monitor.sh add-admin username - Verify admin group:
dscl . -read /Groups/admin GroupMembership
Symptoms: Settings not taking effect Solutions:
- Force profile renewal:
sudo profiles renew -type=config - Check profile status:
sudo profiles list | grep jamfconnectmonitor - Validate JSON schema:
python3 -m json.tool jamf_connect_monitor_schema.json
Symptoms: Empty Smart Groups despite installations Solutions:
- Update Extension Attribute script in Jamf Pro (CRITICAL for v2.4.0)
- Use flexible criteria: "Version: 2." instead of "Version: 2.0.0"
- Force inventory updates:
sudo jamf recon - Allow time for Smart Group processing
# 1. Verify installation
sudo jamf_connect_monitor.sh status
# 2. Test Configuration Profile
sudo jamf_connect_monitor.sh test-config
# 3. Check Extension Attribute
sudo /usr/local/etc/jamf_ea_admin_violations.sh
# 4. Verify file permissions (no ACL @ symbols)
ls -la@ /usr/local/bin/jamf_connect_monitor.sh
ls -la@ /usr/local/etc/jamf_ea_admin_violations.sh
# 5. Check daemon status
sudo launchctl list | grep jamfconnectmonitor# jamf_connect_monitor.sh status should show:
=== Jamf Connect Elevation Monitor Status (v2.4.0) ===
Configuration Profile: Active (or Not deployed)
Company: [Your Actual Company Name]
Monitoring Mode: periodic (or realtime/hybrid)
# Extension Attribute should show:
Version: 2.4.0, Periodic: Running, Real-time: Not Running
Configuration: Profile: Deployed, Webhook: Configured, Mode: periodic- Installation:
/var/log/jamf_connect_monitor_install.log - Activity:
/var/log/jamf_connect_monitor/monitor.log - Violations:
/var/log/jamf_connect_monitor/admin_violations.log - Daemon:
/var/log/jamf_connect_monitor/daemon.log
- Increase monitoring interval for large environments
- Implement log rotation for disk space management
- Consider network bandwidth for notifications
- Staged Rollout: Deploy to pilot group first
- Inventory Management: Force updates after deployment
- Smart Group Validation: Use flexible version criteria
- Performance Monitoring: Track resource usage
- JSON Schema Validation: Test schema before deployment
- Department-Specific Settings: Use multiple profiles if needed
- Update Procedures: Configuration changes without script updates
- Backup and Recovery: Document profile configurations
Created with ❤️ by MacJediWizard
