= WS-Management Detector
:description: Learn how the WSManDetector in OpenNMS {page-component-title} attempts to connect to the agent defined in `wsman-config.xml` and issues an identify command.

The WSManDetector attempts to connect to the agent defined in `wsman-config.xml` and issues an identify command.
If the identify command is successful, the service is marked as detected, and the product details returned by the command are optionally stored in the asset fields (see details below).

== Detector facts

[options="autowidth"]
|===
| Implementation | `org.opennms.netmgt.provision.detector.wsman.WsManDetector`
|===

== Configuration and use

.Optional parameters for the WSManDetector
[options="header, autowidth"]
[cols="1,4,1"]
|===
| Parameter
| Description
| Default value

| updateAssets
| Stores the product vendor and product version in the `vendor` and `modelNumber` asset fields.
| true
|===

== Examples

If a valid response to the identify command is received, the product vendor and product version are stored in the `vendor` and `modelNumber` fields of the associated node's assets table.

For example, a Windows Server 2008 machine returns:

[options="autowidth"]
[cols="1h,2"]
|===
| Product Vendor  | Microsoft Corporation
| Product Version | OS: 6.1.7601 SP: 1.0 Stack: 2.0
|===

If these asset fields are being used for another purpose, disable this behavior by setting the `updateAssets` parameters to `false` in the detector configuration of the appropriate foreign source.

NOTE: Some agents may respond to the identify command with generic identities, such as Openwsman 2.0.0.
Specify the `product-vendor` and `product-version` attributes in `wsman-config.xml` to overwrite these values.

Example detector configuration:

[source, xml]
----
<detector name="WS-Man" class="org.opennms.netmgt.provision.detector.wsman.WsManDetector">
    <parameter key="updateAssets" value="true"/>
</detector>
----

The response is logged as DEBUG information in `provisiond.log`:

[source, xml]
----
ID: 3
Response-Code: 200
309Encoding: UTF-8
Content-Type: application/soap+xml;charset=UTF-8
Headers: {Content-Length=[787], content-type=[application/soap+xml;charset=UTF-8], Date=[Mon, 08 Feb 2016 14:21:20 GMT], Server=[Microsoft-HTTPAPI/2.0]}
Payload:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xml:lang="en-US">
  <s:Header/>
  <s:Body>
    <wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">
    <wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion>
    <wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><1>
    <wsmid:ProductVersion>OS: 6.2.9200 SP: 0.0 Stack: 3.0</wsmid:ProductVersion><2>
    <wsmid:SecurityProfiles>
      <wsmid:SecurityProfileName>http://schemas.dmtf.org/wbem/wsman/1/wsman/secprofile/http/basic</wsmid:SecurityProfileName>
      <wsmid:SecurityProfileName>http://schemas.dmtf.org/wbem/wsman/1/wsman/secprofile/http/spnego-kerberos</wsmid:SecurityProfileName>
    </wsmid:SecurityProfiles>
    </wsmid:IdentifyResponse>
  </s:Body>
</s:Envelope>
----

<1> `ProductVendor`: Stored in the `vendor` asset field.
<2> `ProductVersion`: Stored in the `modelNumber` asset field.

NOTE: The System Definition Rule uses the asset field information to decide which performance metrics to gather from Collectd.