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 获取名为“打印机电子邮件模板”的电子邮件模板,然后将其存储在$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变量中。

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

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

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

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

参数

-Class

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

类型:Microsoft.EnterpriseManagement.Configuration.ManagementPackClass
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ComputerName

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

类型:System.String[]
Position:Named
默认值:Localhost
必需:False
接受管道输入:False
接受通配符:False

-Condition

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

  • 创建
  • 更新
  • 删除
类型:Microsoft.EnterpriseManagement.ServiceManager.Sdk.Notifications.Condition
接受的值:Created, Updated
Position:Named
默认值:Updated
必需:False
接受管道输入:False
接受通配符:False

-Confirm

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

类型:System.Management.Automation.SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Credential

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

类型:System.Management.Automation.PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Criteria

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

类型:System.String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Description

描述订阅。

类型:System.String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisplayName

指定订阅的显示名称。

类型:System.String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Enable

指示此 cmdlet 是否启用订阅。

类型:System.Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-GroupQueue

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

类型:System.String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ManagementPack

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

类型:Microsoft.EnterpriseManagement.Configuration.ManagementPack
Position:Named
默认值:The default management pack
必需:False
接受管道输入:False
接受通配符:False

-PassThru

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

类型:System.Management.Automation.SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Recipient

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

类型:Microsoft.EnterpriseManagement.Common.EnterpriseManagementObject[]
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-SCSession

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

类型:Microsoft.SystemCenter.Core.Connection.Connection[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Template

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

类型:Microsoft.EnterpriseManagement.ServiceManager.Sdk.Notifications.EmailTemplate
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

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

类型:System.Management.Automation.SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

None.

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

输出

None.

此 cmdlet 不生成任何输出。