New-SCSMSubscription

在 Service Manager 中创建新订阅。

语法

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

说明

New-SCSMSubscription cmdlet 在 Service Manager 中创建订阅。

示例

示例 1:创建订阅

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:\> $ManagementPack = Get-SCSMManagementPack -Name "ServiceManager.ConfigurationManagement.Configuration"
PS C:\> $Language = [System.Globalization.CultureInfo]"EN"
PS C:\> $Encoding = [System.Text.Encoding]::ASCII
PS C:\> New-SCSMEmailTemplate -Class $PrinterClass -DisplayName "Printer Email Template" -Body $Message -Description "A template for printer notifications" -Encoding $Encoding -Language $Language -ManagementPack $ManagementPack -Subject $Message
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:\> New-SCSMSubscription -Class $PrinterClass -DisplayName "Printer update subscription" -Recipient $Recipient -Template $PrinterTemplate -Condition Updated

第一个命令使用 Get-SCSMClass cmdlet 获取名为 Microsoft.AD.Printer 的类,然后将其存储在 $PrinterClass 变量中。

第二个命令为电子邮件创建一封邮件,并将其存储在 $Message 变量中。 此示例使用与电子邮件的主题和正文相同的字符串。

第三个命令获取使用 Get-SCSMManagementPack cmdlet 保存此模板的管理包,然后将其存储在 $ManagementPack 变量中。

第四个和第五个命令将语言和编码的值存储在$Language和$Encoding变量中。

第六个命令创建在打印机发生更改时应用的电子邮件模板。 该命令使用在前五个命令中创建的值。

第七个命令使用 Get-SCSMEmailTemplate cmdlet 获取名为 Printer Email Template 的电子邮件模板,然后将其存储在 $PrinterTemplate 变量中。

第八个命令使用 Get-SCSMClass 获取名为 Microsoft.AD.User 的类,然后将其存储在 $UserClass 变量中。

第九个命令使用 Get-SCSMClassInstance cmdlet 获取 $UserClass 中具有与指定筛选器匹配的名称的 类的实例。 命令将实例存储在 $Recipient 变量中。

最后一个命令创建一个订阅,该订阅使用前面示例中创建的电子邮件模板,该模板会在更新打印机时向管理员发送电子邮件。

示例 2:创建电子邮件通知订阅

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:\> $Class = Get-SCSMClass -Displayname "Microsoft.AD.Printer"
PS C:\> $Template = Get-SCSMEmailTemplate -Displayname "StandardEmailTemplate"
PS C:\> New-SCSMSubscription -Class <ManagementPackClass> -DisplayName "A printer subscription" -Recipient $Recipient -Template $Template -Condition Updated -Criteria $Criteria -Description "Changes in the printer location will cause email to be sent"

第一个命令为订阅创建条件,并将其存储在 $Criteria 变量中。

第二个命令使用 Get-SCSMClassInstance cmdlet 获取名为 System.User 的类的类实例,该类的名称与指定筛选器匹配。 命令将实例存储在 $Recipient 变量中。

第三个命令使用 Get-SCSMClass 获取名为 Microsoft.AD.Printer 的类,然后将其存储在 $Class 变量中。

第四个命令使用 Get-SCSMEmailTemplate 获取名为 StandardEmailTemplate 的电子邮件模板,然后将其存储在 $Template 变量中。

最后一个命令创建配置为向域管理员发送电子邮件的电子邮件通知订阅。 订阅基于 Printer 类中的更改,其中的位置已更改。

参数

-Class

指定订阅针对的类的名称。 指定的名称必须引用指定的电子邮件模板引用的同一类。

Type:Microsoft.EnterpriseManagement.Configuration.ManagementPackClass
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

指定运行 System Center Data Access 服务的计算机的名称。 Credential 参数中指定的用户帐户必须具有对指定计算机的访问权限。

Type:System.String[]
Position:Named
Default value:Localhost
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Condition

指定运行订阅的条件。 有效值为:

  • 创建
  • 已更新
  • Deleted
Type:Microsoft.EnterpriseManagement.ServiceManager.Sdk.Notifications.Condition
Accepted values:Created, Updated
Position:Named
Default value:Updated
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:System.Management.Automation.SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定此 cmdlet 用于连接到运行 System Center Data Access 服务的服务器的凭据。 指定用户帐户必须具有对该服务器的访问权限。

Type:System.Management.Automation.PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Criteria

指定订阅使用的 XML 条件。 如果同时指定了 Filter 参数和 Criteria 参数,则此 cmdlet 仅使用 Criteria

Type:System.String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

描述订阅。

Type:System.String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

指定订阅的显示名称。

Type:System.String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Enable

指示此 cmdlet 是否启用订阅。

Type:System.Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupQueue

指定一个组或队列,以对订阅跟踪的对象数设置限制。

Type:System.String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagementPack

指定此 cmdlet 在其中存储订阅的管理包的名称。

Type:Microsoft.EnterpriseManagement.Configuration.ManagementPack
Position:Named
Default value:The default management pack
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

指示此 cmdlet 返回它创建的订阅。 可以将此对象传递给其他 cmdlet。

Type:System.Management.Automation.SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Recipient

指定此订阅向其发送电子邮件的用户列表。

Type:Microsoft.EnterpriseManagement.Common.EnterpriseManagementObject[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SCSession

指定表示与 Service Manager 管理服务器的会话的对象。

Type:Microsoft.SystemCenter.Core.Connection.Connection[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Template

指定电子邮件模板的名称。

Type:Microsoft.EnterpriseManagement.ServiceManager.Sdk.Notifications.EmailTemplate
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:System.Management.Automation.SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None.

不能通过管道将输入传递给此 cmdlet。

输出

None.

此 cmdlet 将不生成任何输出。