New-SCSMSubscription

New-SCSMSubscription

Creates a new subscription in Service Manager.

Syntax

Parameter Set: Default
New-SCSMSubscription -Class <ManagementPackClass> -DisplayName <String> -Recipient <EnterpriseManagementObject[]> -Template <EmailTemplate> [-ComputerName <String[]> ] [-Condition <Condition> ] [-Credential <PSCredential> ] [-Criteria <String> ] [-Description <String> ] [-Enable <Boolean> ] [-GroupQueue <String[]> ] [-ManagementPack <ManagementPack> ] [-PassThru] [-SCSession <Connection[]> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The New-SCSMSubscription cmdlet creates a new subscription in Service Manager.

Parameters

-Class<ManagementPackClass>

Specifies the name of the class that the subscription targets. The specified name must reference the same class that is referenced by the specified email template.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ComputerName<String[]>

Specifies the name of the computer on which the System Center Data Access service is running. The user account that is defined in the Credential parameter must have access rights to the specified computer.

Aliases

none

Required?

false

Position?

named

Default Value

localhost

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

-Condition<Condition>

Specifies the condition under which the subscription will execute. Allowed values are Created, Updated, or Deleted.

Aliases

none

Required?

false

Position?

named

Default Value

Updated

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Credential<PSCredential>

Specifies the credentials to use when you connect to the server on which the System Center Data Access service is running. The provided user account must have access to that server.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

-Criteria<String>

Specifies the XML criteria which the subscription will use. If both Filter and Criteria are specified, only the Criteria will be used.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Description<String>

Describes the subscription.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-DisplayName<String>

Specifies the display name of the subscription.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Enable<Boolean>

Enables the connector.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-GroupQueue<String[]>

Specifies a group or a queue to set a limit on the number of objects that the subscription tracks.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ManagementPack<ManagementPack>

Specifies the name of the management pack in which the new subscription will be stored.

Aliases

none

Required?

false

Position?

named

Default Value

The default management pack

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-PassThru

Specifies the output object that represents the new subscription. This output object can be passed to other cmdlets.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Recipient<EnterpriseManagementObject[]>

Specifies the list of users to whom email will be sent.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SCSession<Connection[]>

Represents the session to a Service Manager management server.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

-Template<EmailTemplate>

Specifies the name of an Email template.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Confirm

Prompts you for confirmation before running the cmdlet.

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-WhatIf

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

Required?

false

Position?

named

Default Value

false

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.

  • None.

    You cannot pipe input to this cmdlet.

Outputs

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

  • None.

    This cmdlet does not generate any output.

Examples

-------------------------- EXAMPLE 1 --------------------------

This command creates a new email template for printer changes. It then uses that template to create a subscription, which sends an email to the administrator anytime a printer is updated.

PS C:\> $printerClass = get-scsmclass -Name Microsoft.AD.Printer
PS C:\>$message = 'Printer $Context/Property[''Type=Windows!Microsoft.AD.Printer'']/PrinterName$ has been updated'
PS C:\>$mp = Get-SCSMManagementPack -name ServiceManager.ConfigurationManagement.Configuration
PS C:\>$language = [System.Globalization.CultureInfo]"EN"
PS C:\>$encoding = [System.Text.Encoding]::ASCII
PS C:\>$emailTemplateArgs = @{
>>  Class = $printerClass
>>  Subject = $message
>>  Body = $message
>>  ManagementPack = $mp
>>  Language = $language
>>  Encoding = $encoding
>>  DisplayName = "Printer Email Template"
>>  Description = "A template for printer notifications"
>>  }
PS C:\>New-SCSMEmailTemplate @emailTemplateArgs
PS C:\>$printertemplate = Get-SCSMEmailTemplate -DisplayName "Printer Email Template"
PS C:\>$userClass = get-scsmclass -name Microsoft.AD.user
PS C:\>$recipient = Get-SCSMClassInstance -class $userClass -filter 'UserName -like "%Administrator"'
PS C:\>$subscriptionArgs = @{
>>  Class = $printerClass
>>  Condition = "Updated"
>>  Recipient = $recipient
>>  Template = $printerTemplate
>>  DisplayName = "Printer update subscription"
>>  }
PS C:\>New-SCSMSubscription @subscriptionArgs
PS C:\> 

-------------------------- EXAMPLE 2 --------------------------

This command creates a new Email notification subscription that is configured to send Email to the domain administrators. The new subscription is based on changes in the Printer class, where the location has changed.

PS C:\> $Criteria = @'
>>  <Criteria>
>>  <Expression>
>>  <SimpleExpression>
>>  <ValueExpression>
>>  <Property State="Pre">$Context/Property[Type='Windows!Microsoft.AD.Printer']/Location$</Property>
>>     </ValueExpression>
>>    <Operator>NotEqual</Operator>
>>    <ValueExpression>
>>      <Property State="Post">$Context/Property[Type='Windows!Microsoft.AD.Printer']/Location$</Property>
>>     </ValueExpression>
>>    </SimpleExpression>
>>   </Expression>
>>  </Criteria>
>>  @'
PS C:\>$Recipient = get-scsmclassinstance –displayname System.User -filter "Name -like 'domain admins'"
PS C:\>$SubscriptionArguments = @{
>>  DisplayName = "A printer subscription"
>>  Description = "Changes in the printer location will cause email to be sent"
>>  Class = Get-SCSMClass -Displayname Microsoft.AD.Printer
>>  Condition = "Updated"
>>  Criteria = $Criteria
>>  Template = Get-SCSMEmailTemplate -Displayname StandardEmailTemplate
>>  Recipient = $Recipient
>>  }
PS C:\>New-SCSMSubscription @SubscriptionArguments

Get-SCSMSetting

Remove-SCSMSubscription

Update-SCSMSubscription

Get-SCSMEmailTemplate