Add-NetEventWFPCaptureProvider

Creates a WFP capture provider.

Syntax

Add-NetEventWFPCaptureProvider
   [-SessionName] <String>
   [[-Level] <Byte>]
   [[-MatchAnyKeyword] <UInt64>]
   [[-MatchAllKeyword] <UInt64>]
   [[-CaptureLayerSet] <WFPCaptureSet>]
   [[-IPAddresses] <String[]>]
   [[-TCPPorts] <UInt16[]>]
   [[-UDPPorts] <UInt16[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Add-NetEventWFPCaptureProvider cmdlet creates a Windows Firewall Platform (WFP) capture provider for network events. The WFP captures events directly from the network stack. You can capture traffic in network tunnels and from the loopback adapter. Unlike a NetEventPacketCapture provider, the NetEventWFPCaptureProvider captures network traffic above the IP layer.

A computer typically supports only one packet capture provider. If there is an existing provider on the current computer, remove it before you run this cmdlet.

Examples

Example 1: Create a WFP capture provider

PS C:\>New-NetEventSession -Name "WFPCapture" -CaptureMode RealtimeLocal -LocalFilePath "C:\users\DavidChew\Documents\wfpdata.etl"
PS C:\> Add-NetEventWFPCaptureProvider -SessionName "WFPCapture"
PS C:\> Start-NetEventSession -Name "WFPCapture"

The first command creates a network event session by using the New-NetEventSession cmdlet. The command also assigns the name WFPCapture to the session.

The second command uses the current cmdlet to create a WFP capture provider for the session named WFPCapture.

The final command starts the event tracing session named WFPCapture.

Parameters

-AsJob

Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CaptureLayerSet

Specifies a WFP capture set, which designates the layers and directions to filter. The acceptable values for this parameter are:

  • IPv4Inbound
  • IPv4Outbound
  • IPv6Inbound
  • IPv6Outbound

You can locially OR the direction and IP layer pairs together. For instance, you could capture incoming loopback traffic from IPv6 to avoid seeing duplicate traffic received by the loopback interface.

Type:WFPCaptureSet
Accepted values:IPv4Inbound, IPv4Outbound, IPv6Inbound, IPv6Outbound
Position:4
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Type:CimSession[]
Aliases:Session
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPAddresses

Specifies an array of IP addresses. The provider filters for and logs network traffic that matches the IP addresses that this parameter specifies. The provider joins multiple addresses by using logical ORs.

Type:String[]
Position:5
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Level

Specifies the Event Tracing for Windows (ETW) event error levels that NetEventWFPCaptureProvider returns. Use a level of detail specifier as a filter the type of error events that are logged. The default value for this parameter is 0x4, for informational events. The acceptable values for this parameter are:

  • 0x5. Verbose
  • 0x4. Informational
  • 0x3. Warning
  • 0x2. Error
  • 0x1. Critical
  • 0x0. LogAlways

The provider must log the event if the value of the event is less than or equal to the value of this parameter. Lower level events up to and including the specified level are logged.

Type:Byte
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MatchAllKeyword

Specifies a keyword bitmask that restricts the events that the provider logs.

Type:UInt64
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MatchAnyKeyword

Specifies keywords as a set of hexadecimal values. Keywords are flags that you can combine to generate hexadecimal values that enable the provider to write one or more events for which it is instrumented, if a match is found. Use a set of hexadecimal values for keywords instead of the keyword names, and apply a filter to write ETW events for keyword matches. For more information, see EnableTraceEx2 function in the Microsoft Developer Network library.

Type:UInt64
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionName

Specifies the name of the session that is associated with the NetEventWFPCaptureProvider. This parameter has the same value as the Name parameter for the New-NetEventSession cmdlet.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TCPPorts

Specifies an array of TCP ports. The provider filters for and logs network traffic that matches the ports that this parameter specifies. The provider joins multiple port numbers with logical ORs.

Type:UInt16[]
Position:6
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UDPPorts

Specifies an array of UDP ports. The provider filters for and logs network traffic that matches the ports that this parameter specifies. The provider joins multiple port numbers with logical ORs.

Type:UInt16[]
Position:7
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False