Sysmon

June 28, 2026 ยท View on GitHub

This Visual Studio Code extension helps with writing Microsoft Sysinternals Sysmon XML configuration files.

Features

This extension offers snippets for building Microsoft Sysinternals Sysmon XML configurations. The extension is based on the 4.30 version of the Sysinternals Sysmon schema. It also provides automatic closing of element tags for filter fields.

Usage

Files with the .smc extension open in Sysmon language mode automatically. For existing .xml Sysmon configuration files, use VS Code's language selector to change the language mode to Sysmon.

Set Language to Sysmon

It is easy to create a initial configuration with the snippets.

Configuration Template

A RuleGroups and Rules snippets have options ready for name and setting logic.

Configuration Template

Individual filters in a Rule or outside of one are easier to write.

Filter

Snippets

General snippets for the building of the initial structure of the configuration file.

NameDescription
commentSysmon Comment
sysmon_configTemplate Sysmon Config
rulegroupSysmon RuleGroup
ruleSysmon Rule
conditionFilter condition operator used

Snippets for each of the individual filters available in the schema with the exception of the run time unique ones that one would not filter on like ProcessID, UTC Time, Sysmon system unique GUIDs and others.

NameDescription
!ProcessCreateSysmon EventType ProcessCreate
!FileCreateTimeSysmon EventType FileCreateTime
!NetworkConnectSysmon EventType NetworkConnect
!ProcessTerminateSysmon EventType ProcessTerminate
!DriverLoadSysmon EventType DriverLoad
!ImageLoadSysmon EventType ImageLoad
!CreateRemoteThreadSysmon EventType CreateRemoteThread
!RawAccessReadSysmon EventType RawAccessRead
!ProcessAccessSysmon EventType ProcessAccess
!FileCreateSysmon EventType FileCreate
!RegistryEventSysmon EventType RegistryEvent
!FileCreateStreamHashSysmon EventType FileCreateStreamHash
!PipeEventSysmon EventType PipeEvent
!WmiEventSysmon EventType WmiEvent
!DnsQuerySysmon EventType DnsQuery
!CallTraceSysmon event field CallTrace filter
!CommandLineSysmon event field CommandLine filter
!CompanySysmon event field Company filter
!ConfigurationSysmon event field Configuration filter
!ConfigurationFileHashSysmon event field ConfigurationFileHash filter
!ConsumerSysmon event field Consumer filter
!CurrentDirectorySysmon event field CurrentDirectory filter
!DescriptionSysmon event field Description filter
!DestinationSysmon event field Destination filter
!DestinationHostnameSysmon event field DestinationHostname filter
!DestinationIpSysmon event field DestinationIp filter
!DestinationIsIpv6Sysmon event field DestinationIsIpv6 filter
!DestinationPortSysmon event field DestinationPort filter
!DestinationPortNameSysmon event field DestinationPortName filter
!DetailsSysmon event field Details filter
!DeviceSysmon event field Device filter
!EventNamespaceSysmon event field EventNamespace filter
!EventTypeSysmon event field EventType filter
!FileVersionSysmon event field FileVersion filter
!FilterSysmon event field Filter filter
!GrantedAccessSysmon event field GrantedAccess filter
!HashSysmon event field Hash filter
!HashesSysmon event field Hashes filter
!IDSysmon event field ID filter
!ImageSysmon event field Image filter
!ImageLoadedSysmon event field ImageLoaded filter
!InitiatedSysmon event field Initiated filter
!IntegrityLevelSysmon event field IntegrityLevel filter
!NameSysmon event field Name filter
!NewNameSysmon event field NewName filter
!OperationSysmon event field Operation filter
!OriginalFileNameSysmon event field OriginalFileName filter
!ParentCommandLineSysmon event field ParentCommandLine filter
!ParentImageSysmon event field ParentImage filter
!PipeNameSysmon event field PipeName filter
!PreviousCreationUtcTimeSysmon event field PreviousCreationUtcTime filter
!ProductSysmon event field Product filter
!ProtocolSysmon event field Protocol filter
!QuerySysmon event field Query filter
!QueryNameSysmon event field QueryName filter
!QueryResultsSysmon event field QueryResults filter
!QueryStatusSysmon event field QueryStatus filter
!SchemaVersionSysmon event field SchemaVersion filter
!SignatureSysmon event field Signature filter
!SignatureStatusSysmon event field SignatureStatus filter
!SignedSysmon event field Signed filter
!SourceHostnameSysmon event field SourceHostname filter
!SourceImageSysmon event field SourceImage filter
!SourceIpSysmon event field SourceIp filter
!SourceIsIpv6Sysmon event field SourceIsIpv6 filter
!SourcePortSysmon event field SourcePort filter
!SourcePortNameSysmon event field SourcePortName filter
!SourceThreadIdSysmon event field SourceThreadId filter
!StartAddressSysmon event field StartAddress filter
!StartFunctionSysmon event field StartFunction filter
!StartModuleSysmon event field StartModule filter
!StateSysmon event field State filter
!TargetFilenameSysmon event field TargetFilename filter
!TargetImageSysmon event field TargetImage filter
!TargetObjectSysmon event field TargetObject filter
!TypeSysmon event field Type filter
!UserSysmon event field User filter
!VersionSysmon event field Version filter

When working with Rule elements in the config where he order of the field play an important role these snippets will put all fileds one would filter on in the order as they appear in the schema. Each with positions set for the name and the condition with a option set to make it easier to select.

NameDescription
!sysmon_create_process_filter_setSysmon EventType SYSMON_CREATE_PROCESS filter set.
!sysmon_file_time_filter_setSysmon EventType SYSMON_FILE_TIME filter set.
!sysmon_network_connect_filter_setSysmon EventType SYSMON_NETWORK_CONNECT filter set.
!sysmon_process_terminate_filter_setSysmon EventType SYSMON_PROCESS_TERMINATE filter set.
!sysmon_driver_load_filter_setSysmon EventType SYSMON_DRIVER_LOAD filter set.
!sysmon_image_load_filter_setSysmon EventType SYSMON_IMAGE_LOAD filter set.
!sysmon_create_remote_thread_filter_setSysmon EventType SYSMON_CREATE_REMOTE_THREAD filter set.
!sysmon_rawaccess_read_filter_setSysmon EventType SYSMON_RAWACCESS_READ filter set.
!sysmon_access_process_filter_setSysmon EventType SYSMON_ACCESS_PROCESS filter set.
!sysmon_file_create_filter_setSysmon EventType SYSMON_FILE_CREATE filter set.
!sysmon_reg_key_filter_setSysmon EventType SYSMON_REG_KEY filter set.
!sysmon_reg_setvalue_filter_setSysmon EventType SYSMON_REG_SETVALUE filter set.
!sysmon_reg_name_filter_setSysmon EventType SYSMON_REG_NAME filter set.
!sysmon_file_create_stream_hash_filter_setSysmon EventType SYSMON_FILE_CREATE_STREAM_HASH filter set.
!sysmon_create_namedpipe_filter_setSysmon EventType SYSMON_CREATE_NAMEDPIPE filter set.
!sysmon_connect_namedpipe_filter_setSysmon EventType SYSMON_CONNECT_NAMEDPIPE filter set.
!sysmon_wmi_filter_filter_setSysmon EventType SYSMON_WMI_FILTER filter set.
!sysmon_wmi_consumer_filter_setSysmon EventType SYSMON_WMI_CONSUMER filter set.
!sysmon_wmi_binding_filter_setSysmon EventType SYSMON_WMI_BINDING filter set.
!sysmon_dns_query_filter_setSysmon EventType SYSMON_DNS_QUERY filter set.
!sysmon_filedelete_setSysmon EventType SYSMON_FILE_DELETE filter set.
!sysmon_clipboardchange_setSysmon EventType SYSMON_CLIPBOARD filter set.
!sysmon_processtampering_setSysmon EventType SYSMON_PROCESS_IMAGE_TAMPERING filter set.

Release Notes

1.3.0

  • Added support for Sysmon Process Tampering EventId 25.
  • Fixed multiple typos.

1.2.0

  • Added support for Sysmon Clipboard Change EventId 24.

1.0.0

Initial release.

Questions, issues, feature requests, and contributions

  • If you come across a problem with the extension, please file an issue
  • Contributions are always welcome!
  • Any and all feedback is appreciated and welcome!
    • If someone has already filed an issue that encompasses your feedback, please leave a ๐Ÿ‘/๐Ÿ‘Ž reaction on the issue
    • Otherwise please file a new issue