Invoke-BpaModel

Invoke-BpaModel

Starts a Best Practices Analyzer (BPA) scan for a specific model that is installed on a computer.

Syntax

Parameter Set: ModelParameterSet
Invoke-BpaModel [-ModelId] <String> [-Mode <ScanMode> ] [-RepositoryPath <String> ] [ <CommonParameters>]

Parameter Set: SubModelParameterSet
Invoke-BpaModel [-ModelId] <String> [-Authentication <AuthenticationMechanism> ] [-CertificateThumbprint <String> ] [-ComputerName <String[]> ] [-ConfigurationName <String> ] [-Context <String> ] [-Credential <PSCredential> ] [-Mode <ScanMode> ] [-Port <Int32> ] [-RepositoryPath <String> ] [-SubModelId <String> ] [-ThrottleLimit <Int32> ] [-UseSsl] [ <CommonParameters>]

Detailed Description

The Invoke-BpaModel cmdlet starts a Best Practices Analyzer (BPA) scan for a specific model that is installed on a Windows-based computer. The model is specified either by using the ModelId parameter, or by piping the results of the Get-BpaModel cmdlet into this cmdlet. If a model is specified in the cmdlet after the BPA scan has been performed, then the results of the scan are available as an XML file.

This cmdlet cannot be canceled after it has been started.

Single-node XML is not supported by the BPA model schema. For more information about what is supported by the BPA model schema, see the Microsoft Baseline Configuration Analyzer Model Authoring Guide on the Microsoft Download Center.

Parameters

-Authentication<AuthenticationMechanism>

Specifies the authentication mode to use when creating a remote connection for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-CertificateThumbprint<String>

Specifies the certificate thumbprint to use when creating a remote connection via SSL for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ComputerName<String[]>

Specifies the target computer against which to run the BPA scan.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ConfigurationName<String>

Specifies the session configuration, such as the name of the endpoint, to use when creating a session for a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Context<String>

Scans a submodel in the context of a specific model (one that is different from the parent model of the submodel). Example: an administrator wants to run a scan on the Backend submodel of the SQL model, but only those in the context of a third model, a technology that relies upon SQL Server.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Credential<PSCredential>

Specifies the credentials to use when creating a remote connection for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Mode<ScanMode>

Specifies the mode to use when running the BPA scan. The acceptable values for this parameter are: All, Analysis, or Discovery.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ModelId<String>

Identities the model to be used for the BPA scan.

Aliases

none

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

true (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-Port<Int32>

Specifies the port to use when creating a remote connection for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-RepositoryPath<String>

Specifies that the default location for reports specified by the ReportsRoot registry key should be overridden. This parameter specifies the path where the results should be stored.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SubModelId<String>

Identifies the submodel to run for the model specified by the ModelId parameter.
Example: The Update Services model (Microsoft/Windows/UpdateServices) has two submodels (UpdateServices-DB, UpdateServices-Services).

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ThrottleLimit<Int32>

Specifies the throttle limit to use when creating a remote connection for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-UseSsl

Specifies whether or not to use SSL when creating a remote connection for running a remote BPA scan.
For more information, run the following cmdlet.
- Get-Help Invoke-Command

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

  • System.String

    The input string specified by the ModelId parameter.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • System.Collections.Generic.List<Microsoft.BestPractices.CoreInterface.InvokeBpaModelOutput>

    The output object encapsulates the results of the cmdlet that is entered. The output object contains information such as the BPA model ID, the success or failure of the cmdlet, and other details.

Examples

EXAMPLE 1

This example starts a BPA scan on the model that is represented by ModelId1.

The same task can be completed by running any of the following cmdlets.
Invoke-BPAModel -ModelId ModelId1
- OR -
Invoke-BPAModel -Id ModelId1
- OR -
Invoke-BPAModel ModelId1

PS C:\> Invoke-BPAModel -ModelId ModelId1

EXAMPLE 2

This example starts a BPA scan on the specified model ID. The ArgumentTable parameter helps the administrator start a BPA scan with additional model-specific instructions. In this example, the values of additional and required model parameters are specified by using the ArgumentTable parameter. The scan is focused only on those parts of the model that occur in the contoso.com domain.

PS C:\> Invoke-BPAModel –ModelId ModelId1 -ArgumentTable @{context=domain; name=contoso.com;}

EXAMPLE 3

This example gets all BPA models that are installed on the computer, and then pipes the results of the Get-BPAModel cmdlet to this cmdlet to start a BPA scan on all models.

PS C:\> Get-BPAModel | Invoke-BPAModel

EXAMPLE 4

This example starts a BPA scan on the model specified by ModelId1, and saves the results of the cmdlet as a variable, BPAObj.

PS C:\> $BPAObj =  Invoke-BPAModel ModelId1

This cmdlet displays the results of any specific object in the previous cmdlet by calling the variable into which the results of the previous cmdlet were saved, and then specifying the object in the results that the administrator wants. The object is identified by its numerical order in the collection of results (the 0, or first, object). The cmdlet then identifies which field of the results in that object (for this example, the Detail field) the administrator wants to view. The cmdlet shown returns the properties of the Detail field from the first object in the results of the preceding line.

PS C:\> $BPAObj[0].Detail

Get-BpaModel

Get-BpaResult

Set-BpaResult