Microsoft.Windows.TimedPowerShell.DiscoveryProvider

Microsoft.Windows.TimedPowerShell.DiscoveryProvider
System Center

Updated: August 10, 2011

Applies To: Operations Manager 2007 R2

The Microsoft.Windows.TimedPowerShell.DiscoveryProvider runs a Windows PowerShell script at a timed interval and returns System.Discovery.Data data.

Usage

Use the Microsoft.Windows.TimedPowerShell.DiscoveryProvider module in discoveries to run a script return System.Discovery.Data.

Type Definition

<DataSourceModuleType ID="Microsoft.Windows.TimedPowerShell.DiscoveryProvider" Accessibility="Public">
  <Configuration>
    <IncludeSchemaTypes>
      <SchemaType>Microsoft.Windows.PowerShellSchema</SchemaType>
    </IncludeSchemaTypes>
    <xsd:element name="IntervalSeconds" type="xsd:int" />
    <xsd:element name="SyncTime" type="xsd:string" />
    <xsd:element name="ScriptName" type="NonNullString" />
    <xsd:element name="ScriptBody" type="NonNullString" />
    <xsd:element name="SnapIns" type ="SnapInsType" minOccurs="0" maxOccurs="1"/>
    <xsd:element name="Parameters" type="NamedParametersType" minOccurs="0" maxOccurs="1"/>
    <xsd:element name="TimeoutSeconds" type="xsd:integer" />
    <xsd:element name="StrictErrorHandling" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
  </Configuration>
  <OverrideableParameters>
    <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
    <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
    <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
  </OverrideableParameters>
  <ModuleImplementation>
    <Composite>
      <MemberModules>
        <DataSource TypeID="System!System.Discovery.Scheduler" ID="DS1">
          <Scheduler>
            <SimpleReccuringSchedule>
              <Interval>$Config/IntervalSeconds$</Interval>
              <SyncTime>$Config/SyncTime$</SyncTime>
            </SimpleReccuringSchedule>
            <ExcludeDates />
          </Scheduler>
        </DataSource>
        <ProbeAction TypeID="Microsoft.Windows.PowerShellDiscoveryProbe" ID="PSScript">
          <ScriptName>$Config/ScriptName$</ScriptName>
          <ScriptBody>$Config/ScriptBody$</ScriptBody>
          <SnapIns>$Config/SnapIns$</SnapIns>
          <Parameters>$Config/Parameters$</Parameters>
          <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
          <StrictErrorHandling>$Config/StrictErrorHandling$</StrictErrorHandling>
        </ProbeAction>
      </MemberModules>
      <Composition>
        <Node ID="PSScript">
          <Node ID="DS1" />
        </Node>
      </Composition>
    </Composite>
  </ModuleImplementation>
  <OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>

Parameters

The Microsoft.Windows.TimedPowerShell.DiscoveryProvider module supports the following configuration parameters:

 

Parameter Type Description

IntervalSeconds

String

Specifies, in seconds, how often the Windows PowerShell script runs. Overridable.

SyncTime

String

Specifies the time at which the Windows PowerShell script is forced to run. Overridable.

ScriptName

String

Specifies the logical name of the Windows PowerShell script to be run. This value will be used in event logs and debug traces to identify the script.

ScriptBody

String

Contains the Windows PowerShell script to be run.

SnapIns

SnapInsType

Optional. Contains a list of one or more Windows PowerShell snap-ins.

Parameters

String

Specifies a set of name/value pairs to be used by the Windows PowerShell script as parameters. This value can be a literal string, a $Target reference, a$MPElement reference, or a $Data reference.

TimeOutSeconds

Integer

Specifies the maximum number of seconds to allow the script to execute before the script is terminated.

StrictErrorHandling

Boolean

Optional. Specifies whether to treat script errors as fatal errors instead of warnings. To allow the script error to be raised via the task status, this should always be set to false in the case of discoveries and true-for-task workflows. The default value is false.

For more information on the configuration parameters for the Microsoft.Windows.TimedPowerShell.DiscoveryProvider module, see Windows PowerShell.

Composition

The Microsoft.Windows.TimedPowerShell.DiscoveryProvider module is a composite module that contains the following member modules:

 

Workflow Run Order Module Type Usage

1

System.Discovery.Scheduler

Outputs System.Discovery.Data data on a scheduled, repeating interval and triggers the subsequent probe action module.

2

Microsoft.Windows.PowerShellDiscoveryProbe

Runs a Windows PowerShell script and returns System.Discovery.Data data

Related Modules

None.

External Module References

None.

Sample

The following example demonstrates how to create a discovery that uses the Microsoft.Windows.TimedPowerShell.DiscoveryProvider as a data source. In this example, to create the discovery data item, the script uses the newObject cmdlet with the -ComObject parameter to instantiate the Operations Manager 2007 R2 Scripting Objects.

The script then uses the CreateDiscoveryDataCreateClassInstanceAddProperty, and AddInstance methods from the scripting application programming interfaces (APIs) to construct the discovery data item.At the end of the script, the discovery data is returned simply by calling the variable that contains the discovery data on the last line of the script.

<Discovery ID="Microsoft.Demo.WidgetDiscoveryWithTimedPowerShell" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
  <DiscoveryClass TypeID="Microsoft.Demo.Widget" />
</DiscoveryTypes>
<DataSource ID="TimePowerShell" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
  <IntervalSeconds>43200</IntervalSeconds>
  <SyncTime />
  <ScriptName>Widget Discovery With TimedPowerShell</ScriptName>
  <ScriptBody>
    <![CDATA[
                 
                  # Declare a function that will be used to create a Widget in the specified discovery packet
                  function CreateWidget
                  {
                    Param($Discovery, $ComputerIdentity, $WidgetName)

                    # Write a statement that could be output by tracing if needed
                    Write-Verbose "Creating Widget $WidgetName on Computer $ComputerIdentity"

                    $Instance = $Discovery.CreateClassInstance("$MPElement[Name='Microsoft.Demo.Widget']$")
                    $Instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerIdentity)
                    $Instance.AddProperty("$MPElement[Name='Microsoft.Demo.Widget']/Key$", $WidgetName)
                    $Discovery.AddInstance($Instance)
                  }

                  # Create a new discovery data packet -- this assumes that the client SDK is available, which it is on all OpsMgr agents
                  $oAPI = new-object -comObject "MOM.ScriptAPI"
                  $Discovery = $oAPI.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
                  $ComputerIdentity = "$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$"


                  # Create a widget for each subkey under "HKLM\Software\Widgets" 
                  (Get-Item "HKLM:\Software\Widgets").getsubkeynames() | ForEach-Object{ CreateWidget -discovery $Discovery -computerIdentity $ComputerIdentity -widgetName $_ }

                  # Return the discovery data by calling the variable
                  $Discovery
                ]]>
  </ScriptBody>
  <TimeoutSeconds>300</TimeoutSeconds>
  <StrictErrorHandling />
</DataSource>
</Discovery>

Information

 

   

Module Type

DataSourceModuleType

Output Type

System.Discovery.Data

Implementation

Composite

Library

Microsoft.Windows.Library

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值