Wecutil.exe 是一个 Windows 事件收集器实用工具,管理员可以创建和管理从支持 WS-Management 协议的远程事件源转发的事件的订阅。 此实用工具的命令、选项和选项值不区分大小写。
如果在尝试运行 wecutil 时收到一条消息,指出“RPC 服务器不可用”或“接口未知”,则需要启动 Windows 事件收集器服务(wecsvc)。 若要启动 wecsvc,请在提升的命令提示符下键入 net start wecsvc。
列出现有订阅
以下语法用于列出现有的远程事件订阅。
wecutil { es | enum-subscription }
如果使用脚本从输出中获取订阅的名称,则需要绕过输出第一行中的 UTF-8 BOM 字符。 以下脚本演示了如何跳过 BOM 字符的示例。
setlocal enabledelayedexpansion
set bomskipped=
for /f %%i in ('wecutil es') do (
set sub=%%i
if not defined bomskipped (
set sub=!sub:~3!
set bomskipped=yes
)
echo !sub!
)
goto :eof
endlocal
获取订阅配置
以下语法用于显示远程事件订阅配置数据。
wecutil { gs | get-subscription } SUBSCRIPTION_ID [/f:VALUE
[/u:VALUE] ...]
获取配置参数
-
SUBSCRIPTION_ID
唯一标识订阅的字符串。 此标识符在用于创建订阅的 XML 配置文件的 SubscriptionId 元素中指定。
/f:VALUE
一个值,该值指定订阅配置数据的输出。 VALUE 可以是“XML”或“Terse”,默认值为“Terse”。 如果 VALUE 为“XML”,则输出以“XML”格式打印。 如果 VALUE 为“Terse”,则输出以名称值对打印。
/u: VALUE
一个值,该值指定输出是否采用 Unicode 格式。 VALUE 可以是“true”或“false”。 如果 VALUE 为“true”,则输出采用 Unicode 格式,如果 VALUE 为“false”,则输出不采用 Unicode 格式。
获取订阅运行时状态
以下语法用于显示订阅运行时状态。
wecutil { gr | get-subscriptionruntimestatus } SUBSCRIPTION_ID
[EVENT_SOURCE [EVENT_SOURCE] ...]
获取状态参数
-
SUBSCRIPTION_ID
唯一标识订阅的字符串。 此标识符在用于创建订阅的 XML 配置文件的 SubscriptionId 元素中指定。
EVENT_SOURCE
一个值,该值标识作为事件订阅的事件源的计算机。 此值可以是计算机、NetBIOS 名称或 IP 地址的完全限定域名。
设置订阅配置信息
以下语法用于通过从命令行或使用 XML 配置文件更改订阅参数来设置订阅配置数据。
wecutil { ss | set_subscription } SUBSCRIPTION_ID [/e:VALUE]
[/esa:EVENT_SOURCE [/ese:VALUE] [/aes] [/res] [/un:USERNAME] [/up:PASSWORD]]
[/d:DESCRIPTION] [/uri:URI] [/cm:CONFIGURATION_MODE] [/ex:DATE_TIME]
[/q:QUERY] [/dia:DIALECT] [/tn:TRANSPORTNAME] [/tp:TRANSPORTPORT] [/dm:MODE]
[/dmi:NUMBER] [/dmlt:MS] [/hi:MS] [/cf:FORMAT] [/l:LOCALE] [/ree:[VALUE]]
[/lf:FILENAME] [/pn:PUBLISHER] [/hn:NAME] [/ct:TYPE]
[/cun:USERNAME] [/cup:PASSWORD]
[/ica:THUMBPRINTS] [/as:ALLOWED] [/ds:DENIED] [/adc:SDDL]
wecutil {ss | set_subscription } /c:CONGIG_FILE [/cun:USERNAME]
[/cup:PASSWORD]
注解
如果在 wecutil ss 命令中指定了不正确的用户名或密码,则在使用 wecutil gr 命令查看订阅的运行时状态之前,不会报告任何错误。
设置配置参数
SUBSCRIPTION_ID
唯一标识订阅的字符串。 此标识符在用于创建订阅的 XML 配置文件的 SubscriptionId 元素中指定。
/c: CONFIG_FILE
一个值,该值指定包含订阅配置信息的 XML 文件的路径。 路径可以是绝对路径,也可以是相对于当前目录的。 此参数只能与可选的 /cus 和 /cup 参数一起使用,并且与其他所有参数互斥。
/e: VALUE
一个值,该值确定是否启用或禁用订阅。 VALUE 可以是 true 或 false。 默认值为 true,用于启用订阅。
注释
禁用收集器启动的订阅时,事件源变为非活动状态,而不是禁用。 在收集器发起的订阅中,可以禁用独立于订阅的事件源。
/d: DESCRIPTION
一个值,该值指定事件订阅的说明。
/ex: DATE_TIME
一个指定订阅过期时间的值。 DATE_TIME 是标准 XML 或ISO8601日期时间格式指定的值:“yyyy-MM-ddThh:mm:ss[.ss][Z]”,其中“T”是时间分隔符,“Z”表示 UTC 时间。 例如,如果 DATE_TIME 为“2007-01-12T01:20:00”,则订阅到期时间为 2007 年 1 月 12 日、01:20。
/uri: URI
一个值,该值指定订阅使用的事件的类型。 事件源计算机的地址以及统一资源标识符(URI)唯一标识事件的源。 URI 字符串用于订阅中的所有事件源地址。
/cm: CONFIGURATION_MODE
一个值,指定事件订阅的配置模式。 CONFIGURATION_MODE 可以是以下字符串之一:“Normal”、“Custom”、“MinLatency”或“MinBandwidth”。 EC_SUBSCRIPTION_CONFIGURATION_MODE枚举定义配置模式。 仅当配置模式设置为“自定义”时,才能指定 /dm、/dmi、/hi 和 /dmlt 参数。
/q: QUERY
一个值,指定订阅的查询字符串。 对于不同的 URI 值,此字符串的格式可能有所不同,并适用于订阅中的所有事件源。
/dia: DIALECT
一个值,该值指定查询字符串使用的方言。
/cf: FORMAT
一个值,该值指定返回的事件的格式。 FORMAT 可以是“Events”或“RenderedText”。 当值为“RenderedText”时,事件将随附加到事件的本地化字符串(如事件说明字符串)一起返回。 FORMAT 的默认值为“RenderedText”。
/l: LOCALE
一个值,该值指定用于以呈现的文本格式传递本地化字符串的区域设置。 LOCALE 是语言/国家/地区区域性标识符,例如“EN-us”。 仅当 /cf 参数设置为“RenderedText”时,此参数才有效。
/ree:[VALUE]
一个值,该值指定要为订阅传递哪些事件。 VALUE 可以是 true 或 false。 如果 VALUE 为 true,则会从订阅事件源读取所有现有事件。 如果 VALUE 为 false,则仅传递未来(到达)事件。 如果未指定 /ree 值,则默认值为 true,如果未指定 /ree,则默认值为 false。
/lf: FILENAME
一个值,该值指定用于存储从事件订阅接收的事件的本地事件日志。
/pn: PUBLISHER
一个指定事件发布者(提供程序)名称的值。 它必须是拥有或导入 /lf 参数指定的日志的发布服务器。
/dm: MODE
一个指定订阅传递模式的值。 MODE 可以是推送或拉取。 仅当 /cm 参数设置为“自定义”时,此选项才有效。
/dmi: NUMBER
一个值,该值指定事件订阅中批处理传递的最大项数。 仅当 /cm 参数设置为“自定义”时,此选项才有效。
/dmlt: MS
一个值,该值指定传送一批事件时允许的最大延迟。 MS 是允许的毫秒数。 仅当 /cm 参数设置为 Custom 时,此参数才有效。
/hi: MS
一个值,该值指定订阅的检测信号间隔。 MS 是时间间隔中使用的毫秒数。 仅当 /cm 参数设置为 Custom 时,此参数才有效。
/tn: TRANSPORTNAME
一个值,该值指定用于连接到远程事件源计算机的传输的名称。
/esa: EVENT_SOURCE
一个值,该值指定事件源计算机的地址。 EVENT_SOURCE 是一个字符串,它使用计算机、NetBIOS 名称或 IP 地址的完全限定域名标识事件源计算机。 此参数可与 /ese、/aes、/res 或 /un 和 /up 参数一起使用。
/ese: VALUE
一个值,该值确定是否启用或禁用事件源。 VALUE 可以是 true 或 false。 默认值为 true,用于启用事件源。 仅当使用 /esa 参数时,才使用此参数。
/aes
一个值,该值在事件源尚未成为事件订阅的一部分时添加 /esa 参数指定的事件源。 如果 /esa 参数指定的计算机已是订阅的一部分,则会显示错误。 仅当使用 /esa 参数时,才允许此参数。
/res
一个值,如果事件源已是事件订阅的一部分,则删除 /esa 参数指定的事件源。 如果 /esa 参数指定的计算机不是订阅的一部分,则会显示错误。 仅当使用 /esa 参数时,才允许此参数。
/un: USERNAME
一个值,该值指定凭据中使用的用户名,以连接到 /esa 参数中指定的事件源。 仅当使用 /esa 参数时,才允许此参数。
/up: PASSWORD
一个值,该值指定 /un 参数中指定的用户名的密码。 用户名和密码凭据用于连接到 /esa 参数中指定的事件源。 仅当使用 /un 参数时,才允许此参数。
/tp: TRANSPORTPORT
一个值,该值指定连接到远程事件源计算机时传输使用的端口号。
/hn: NAME
一个值,该值指定本地计算机的 DNS 名称。 远程事件源使用此名称来回推事件,并且只能用于推送订阅。
/ct: TYPE
一个值,指定用于访问远程事件源的凭据类型。 TYPE 可以是“default”、“negotiate”、“digest”、“basic”或“localmachine”。 默认值为“default”。 这些值在 EC_SUBSCRIPTION_CREDENTIALS_TYPE 枚举中定义。
/cun: USERNAME
一个值,该值设置用于没有自己的用户凭据的事件源的共享用户凭据。
注释
如果此参数与 /c 选项一起使用,则忽略配置文件中各个事件源的用户名和密码设置。 如果要对特定事件源使用不同的凭据,可以通过在另一个 set-subscription 命令的命令行上指定特定事件源的 /un 和 /up 参数来替代此值。
/cup: PASSWORD
一个值,该值设置共享用户凭据的用户密码。 当 PASSWORD 设置为 * (星号),则密码将从控制台读取。 仅当指定 /cun 参数时,此选项才有效。
/ica: 指纹
一个值,该值在逗号分隔的列表中设置颁发者证书指纹列表。
注释
此选项仅适用于源启动的订阅。
/as: ALLOWED
一个值,该值设置一个以逗号分隔的字符串列表,用于指定允许启动订阅的非域计算机的 DNS 名称。 可以使用通配符(如“*.mydomain.com”)指定名称。 默认情况下,此列表为空。
注释
此选项仅适用于源启动的订阅。
/ds: DENIED
一个值,该值设置一个以逗号分隔的字符串列表,用于指定不允许启动订阅的非域计算机的 DNS 名称。 可以使用通配符(如“*.mydomain.com”)指定名称。 默认情况下,此列表为空。
注释
此选项仅适用于源启动的订阅。
/adc: SDDL
一个以 SDDL 格式设置字符串的值,该值指定允许或不允许启动订阅的域计算机。 默认值是允许所有域计算机启动订阅。
注释
此选项仅适用于源启动的订阅。
创建新订阅
以下语法用于为远程计算机上的事件创建事件订阅。
wecutil {cs | create-subscription } CONFIGURATION_FILE [/cun:USERNAME]
[/cup:PASSWORD]
注解
如果在 wecutil cs 命令中指定了不正确的用户名或密码,则在使用 wecutil gr 命令查看订阅的运行时状态之前,不会报告任何错误。
创建参数
-
CONFIGURATION_FILE
一个值,该值指定包含订阅配置信息的 XML 文件的路径。 路径可以是绝对路径,也可以是相对于当前目录的。
以下 XML 是订阅配置文件的示例,该文件创建收集器发起的订阅,以便将远程计算机的应用程序事件日志中的事件转发到 ForwardedEvents 日志。
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription"> <SubscriptionId>SampleCISubscription</SubscriptionId> <SubscriptionType>CollectorInitiated</SubscriptionType> <Description>Collector Initiated Subscription Sample</Description> <Enabled>true</Enabled> <Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri> <!-- Use Normal (default), Custom, MinLatency, MinBandwidth --> <ConfigurationMode>Custom</ConfigurationMode> <Delivery Mode="Push"> <Batching> <MaxItems>20</MaxItems> <MaxLatencyTime>60000</MaxLatencyTime> </Batching> <PushSettings> <HostName>thisMachine.myDomain.com</HostName> <Heartbeat Interval="60000"/> </PushSettings> </Delivery> <Expires>2010-01-01T00:00:00.000Z</Expires> <Query> <![CDATA[ <QueryList> <Query Path="Application"> <Select>*</Select> </Query> </QueryList> ]]> </Query> <ReadExistingEvents>false</ReadExistingEvents> <TransportName>http</TransportName> <ContentFormat>RenderedText</ContentFormat> <Locale Language="en-US"/> <LogFile>ForwardedEvents</LogFile> <CredentialsType>Default</CredentialsType> <EventSources> <EventSource Enabled="true"> <Address>mySource.myDomain.com</Address> <UserName>myUserName</UserName> </EventSource> </EventSources> </Subscription>以下 XML 是订阅配置文件的一个示例,该文件创建源发起的订阅,用于将远程计算机的应用程序事件日志中的事件转发到 ForwardedEvents 日志。
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription"> <SubscriptionId>SampleSISubscription</SubscriptionId> <SubscriptionType>SourceInitiated</SubscriptionType> <Description>Source Initiated Subscription Sample</Description> <Enabled>true</Enabled> <Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri> <!-- Use Normal (default), Custom, MinLatency, MinBandwidth --> <ConfigurationMode>Custom</ConfigurationMode> <Delivery Mode="Push"> <Batching> <MaxItems>1</MaxItems> <MaxLatencyTime>1000</MaxLatencyTime> </Batching> <PushSettings> <Heartbeat Interval="60000"/> </PushSettings> </Delivery> <Expires>2018-01-01T00:00:00.000Z</Expires> <Query> <![CDATA[ <QueryList> <Query Path="Application"> <Select>Event[System/EventID='999']</Select> </Query> </QueryList> ]]> </Query> <ReadExistingEvents>true</ReadExistingEvents> <TransportName>http</TransportName> <ContentFormat>RenderedText</ContentFormat> <Locale Language="en-US"/> <LogFile>ForwardedEvents</LogFile> <AllowedSourceNonDomainComputers></AllowedSourceNonDomainComputers> <AllowedSourceDomainComputers>O:NSG:NSD:(A;;GA;;;DC)(A;;GA;;;NS)</AllowedSourceDomainComputers> </Subscription>注释
创建源发起的订阅时,如果 AllowedSourceDomainComputers、AllowedSourceNonDomainComputers/IssuerCAList、AllowedSubjectList 和 DeniedSubjectList 均为空,则将为 AllowedSourceDomainComputers - “O:NSG:NSD:(A;;加语;;;DC)(A;;加语;;;NS)”。 此 SDDL 默认授予域计算机域组的成员以及本地网络服务组(对于本地转发器),可以引发此订阅的事件。
/cun: USERNAME
一个值,该值设置用于没有自己的用户凭据的事件源的共享用户凭据。 此值仅适用于收集器发起的订阅。
注释
如果指定此参数,则忽略配置文件中各个事件源的用户名和密码设置。 如果要对特定事件源使用不同的凭据,可以通过在另一个 set-subscription 命令的命令行上指定特定事件源的 /un 和 /up 参数来替代此值。
/cup: PASSWORD
一个值,该值设置共享用户凭据的用户密码。 当 PASSWORD 设置为“*”(星号),则密码将从控制台读取。 仅当指定 /cun 参数时,此选项才有效。
删除订阅
以下语法用于删除事件订阅。
wecutil { ds | delete-subscription } SUBSCRIPTION_ID
删除参数
-
SUBSCRIPTION_ID
唯一标识订阅的字符串。 此标识符在用于创建订阅的 XML 配置文件的 SubscriptionId 元素中指定。 将删除此参数中标识的订阅。
重试订阅
以下语法用于通过尝试重新激活所有或指定的事件源来重试非活动订阅,方法是建立与每个事件源的连接,并向事件源发送远程订阅请求。 不会重试禁用的事件源。
wecutil { rs | retry-subscription } SUBSCRIPTION_ID
[EVENT_SOURCE [EVENT_SOURCE] ...]
重试参数
-
SUBSCRIPTION_ID
唯一标识订阅的字符串。 此标识符在用于创建订阅的 XML 配置文件的 SubscriptionId 元素中指定。 将重试此参数中标识的订阅。
EVENT_SOURCE
一个值,该值标识作为事件订阅的事件源的计算机。 此值可以是计算机、NetBIOS 名称或 IP 地址的完全限定域名。
配置 Windows 事件收集器服务
以下语法用于配置 Windows 事件收集器服务,以确保可以通过计算机重启创建和维持事件订阅。 这包括以下过程:
配置 Windows 事件收集器服务
- 如果禁用 ForwardedEvents 通道,请启用通道。
- 延迟 Windows 事件收集器服务的启动。
- 如果 Windows 事件收集器服务未运行,请启动它。
wecutil { qc | quick-config } /q:VALUE
配置事件收集器参数
-
/q: VALUE
一个值,该值确定是否提示快速配置命令进行确认。 VALUE 可以是 true 或 false。 如果 VALUE 为 true,则命令将提示进行确认。 默认值为 false。
要求
| Requirement | 价值 |
|---|---|
| 最低受支持的客户端 |
Windows Vista |
| 最低受支持的服务器 |
Windows Server 2008 |