New-CMWindowsServicingPlan

Creates a Windows 10 servicing plan.

Syntax

New-CMWindowsServicingPlan
   -Name <String>
   [-Description <String>]
   -CollectionName <String>
   [-Enable <Boolean>]
   [-SendWakeupPacket <Boolean>]
   [-VerboseLevel <VerboseLevelType>]
   [-Language <String[]>]
   [-Required <String[]>]
   [-Title <String[]>]
   [-RunType <RunType>]
   [-Schedule <IResultObject>]
   [-UseUtc <Boolean>]
   [-AvailableTime <Int32>]
   [-AvailableImmediately <Boolean>]
   [-AvailableTimeUnit <TimeUnitType>]
   [-DeadlineImmediately <Boolean>]
   [-DeadlineTime <Int32>]
   [-DeadlineTimeUnit <TimeUnitType>]
   [-UserNotification <UserNotificationType>]
   [-AllowSoftwareInstallationOutsideMaintenanceWindow <Boolean>]
   [-AllowRestart <Boolean>]
   [-SuppressRestartServer <Boolean>]
   [-SuppressRestartWorkstation <Boolean>]
   [-WriteFilterHandling <Boolean>]
   [-GenerateSuccessAlert <Boolean>]
   [-SuccessPercentage <Int32>]
   [-AlertTime <Int32>]
   [-AlertTimeUnit <TimeUnitType>]
   [-DisableOperationManager <Boolean>]
   [-GenerateOperationManagerAlert <Boolean>]
   [-NoInstallOnRemote <Boolean>]
   [-NoInstallOnUnprotected <Boolean>]
   [-UseBranchCache <Boolean>]
   [-DownloadFromMicrosoftUpdate <Boolean>]
   [-AllowUseMeteredNetwork <Boolean>]
   [-DeploymentPackage <IResultObject>]
   [-DownloadFromInternet <Boolean>]
   [-Location <String>]
   [-DeploymentRing <DeploymentRing>]
   [-UpdateDeploymentWaitDay <Int32>]
   [-LanguageSelection <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMWindowsServicingPlan
   -Name <String>
   [-Description <String>]
   -Collection <IResultObject>
   [-Enable <Boolean>]
   [-SendWakeupPacket <Boolean>]
   [-VerboseLevel <VerboseLevelType>]
   [-Language <String[]>]
   [-Required <String[]>]
   [-Title <String[]>]
   [-RunType <RunType>]
   [-Schedule <IResultObject>]
   [-UseUtc <Boolean>]
   [-AvailableTime <Int32>]
   [-AvailableImmediately <Boolean>]
   [-AvailableTimeUnit <TimeUnitType>]
   [-DeadlineImmediately <Boolean>]
   [-DeadlineTime <Int32>]
   [-DeadlineTimeUnit <TimeUnitType>]
   [-UserNotification <UserNotificationType>]
   [-AllowSoftwareInstallationOutsideMaintenanceWindow <Boolean>]
   [-AllowRestart <Boolean>]
   [-SuppressRestartServer <Boolean>]
   [-SuppressRestartWorkstation <Boolean>]
   [-WriteFilterHandling <Boolean>]
   [-GenerateSuccessAlert <Boolean>]
   [-SuccessPercentage <Int32>]
   [-AlertTime <Int32>]
   [-AlertTimeUnit <TimeUnitType>]
   [-DisableOperationManager <Boolean>]
   [-GenerateOperationManagerAlert <Boolean>]
   [-NoInstallOnRemote <Boolean>]
   [-NoInstallOnUnprotected <Boolean>]
   [-UseBranchCache <Boolean>]
   [-DownloadFromMicrosoftUpdate <Boolean>]
   [-AllowUseMeteredNetwork <Boolean>]
   [-DeploymentPackage <IResultObject>]
   [-DownloadFromInternet <Boolean>]
   [-Location <String>]
   [-DeploymentRing <DeploymentRing>]
   [-UpdateDeploymentWaitDay <Int32>]
   [-LanguageSelection <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMWindowsServicingPlan
   -Name <String>
   [-Description <String>]
   -CollectionId <String>
   [-Enable <Boolean>]
   [-SendWakeupPacket <Boolean>]
   [-VerboseLevel <VerboseLevelType>]
   [-Language <String[]>]
   [-Required <String[]>]
   [-Title <String[]>]
   [-RunType <RunType>]
   [-Schedule <IResultObject>]
   [-UseUtc <Boolean>]
   [-AvailableTime <Int32>]
   [-AvailableImmediately <Boolean>]
   [-AvailableTimeUnit <TimeUnitType>]
   [-DeadlineImmediately <Boolean>]
   [-DeadlineTime <Int32>]
   [-DeadlineTimeUnit <TimeUnitType>]
   [-UserNotification <UserNotificationType>]
   [-AllowSoftwareInstallationOutsideMaintenanceWindow <Boolean>]
   [-AllowRestart <Boolean>]
   [-SuppressRestartServer <Boolean>]
   [-SuppressRestartWorkstation <Boolean>]
   [-WriteFilterHandling <Boolean>]
   [-GenerateSuccessAlert <Boolean>]
   [-SuccessPercentage <Int32>]
   [-AlertTime <Int32>]
   [-AlertTimeUnit <TimeUnitType>]
   [-DisableOperationManager <Boolean>]
   [-GenerateOperationManagerAlert <Boolean>]
   [-NoInstallOnRemote <Boolean>]
   [-NoInstallOnUnprotected <Boolean>]
   [-UseBranchCache <Boolean>]
   [-DownloadFromMicrosoftUpdate <Boolean>]
   [-AllowUseMeteredNetwork <Boolean>]
   [-DeploymentPackage <IResultObject>]
   [-DownloadFromInternet <Boolean>]
   [-Location <String>]
   [-DeploymentRing <DeploymentRing>]
   [-UpdateDeploymentWaitDay <Int32>]
   [-LanguageSelection <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The New-CMWindowsServicingPlan cmdlet creates a Windows 10 servicing plan.

Note

Run Configuration Manager cmdlets from the Configuration Manager site drive, for example PS XYZ:\>. For more information, see getting started.

Examples

Example 1: Create a servicing plan by collection ID

PS XYZ:\> $Lang = ("Japanese", "English", "French")
PS XYZ:\> $Required = (">=1", "<=100")
PS XYZ:\> $Title = ("Title1", "Title2", "Title3")
PS XYZ:\> New-CMWindowsServicingPlan -Name "Test01" -CollectionId MP40001A -Description "Servicing Plan description01" -SendWakeupPacket $False -VerboseLevel AllMessages -Language $Lang -Required $Required -Title $Title -RunType DoNotRunThisRuleAutomatically -UseUtc $True -AvailableImmediately $True -DeadlineImmediately $False -UserNotification DisplayAll -AllowSoftwareInstallationOutsideMaintenanceWindow $True -AllowRestart $True -SuppressRestartServer $True -SuppressRestartWorkstation $True -DeploymentPackage (Get-CMSoftwareUpdateDeploymentPackage -Name "SUDP01")

The first command creates a list of languages and stores the list in the $Lang variable.

The second command creates a list of search strings and stores the list in the $Required variable. This search string will find software updates required on at least one computer and maximum of 100 computers.

The third command creates a list of software update titles and stores the list in the $Title variable.

The last command gets the software update deployment package named SUDP01 and then creates a Windows servicing plan named Test for the target collection with the ID MP40001A. The command adds the upgrade filter languages stored in $Lang, the required filter stored in $Required, and the software update title filter stored in $Title.

Example 2: Create a servicing plan by collection name

PS XYZ:\> $LangSelect = ("Japanese", "English", "French", "German")
PS XYZ:\> New-CMWindowsServicingPlan -Name "Test02" -CollectionName "ColName02" -DeploymentPackage (Get-CMSoftwareUpdateDeploymentPackage -Name "SUP02") -WriteFilterHandling $True -GenerateSuccessAlert $True -SuccessPercentage $True -AlertTime 10 -AlertTimeUnit Days -DisableOperationManager $True -GenerateOperationManagerAlert $True -NoInstallOnRemote $True -NoInstallOnUnprotected $True -UseBranchCache $True -DownloadFromMicrosoftUpdate $True -AllowUseMeteredNetwork $True -DownloadFromInternet $True -Location "\\TestSevr\WSUSTemp" -DeploymentRing Cbb -UpdateDeploymentWaitDay 20 -LanguageSelection $LangSelect

The first command creates a list of language selection languages and stores the list in the $LangSelect variable.

The second command gets the software update deployment package named SUP02 and then creates a Windows servicing plan named Test02 for the target collection named ColName02. The command adds the language select languages stored in $LangSelect.

Parameters

-AlertTime

Specifies an integer offset from an update deployment deadline. The rule uses this value to specify when the rule generates alerts. Specify a time unit by using the AlertTimeUnit parameter.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AlertTimeUnit

Specifies a unit of time for the AlertTime parameter. Valid values are:

  • Hours
  • Days
  • Weeks
  • Months
Type:TimeUnitType
Accepted values:Hours, Days, Weeks, Months
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllowRestart

Indicates whether a system restart is allowed to be performed outside of any defined maintenance windows when the installation deadline is reached.

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

-AllowSoftwareInstallationOutsideMaintenanceWindow

Indicates whether software installation is allowed to be performed outside of any defined maintenance windows when the installation deadline is reached.

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

-AllowUseMeteredNetwork

Indicates whether to allow clients to download content over a metered Internet connection after the deadline, which may incur additional expense.

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

-AvailableImmediately

Indicates whether software updates are available to install as soon as possible after the rule is run.

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

-AvailableTime

Specify when software updates are available.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailableTimeUnit

Specifies the time unit type for the software available time. Valid values are:

  • Hours
  • Days
  • Weeks
  • Months
Type:TimeUnitType
Accepted values:Hours, Days, Weeks, Months
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Collection

Specifies the target device collection object to be used for the servicing plan. To obtain a device collection object, use the Get-CMCollection or Get-CMDeviceCollection cmdlets.

Type:IResultObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CollectionId

Specifies the ID of the target device collection to be used for the servicing plan.

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

-CollectionName

Specifies the name of the target device collection to be used for the servicing plan.

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

-Confirm

Prompts you for confirmation before running the cmdlet.

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

-DeadlineImmediately

Indicates whether required software updates are installed as soon as possible when the deadline is reached.

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

-DeadlineTime

Specifies the number of time units for the deadline.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeadlineTimeUnit

Specifies the time unit type for the deadline. Valid values are:

  • Hours
  • Days
  • Weeks
  • Months
Type:TimeUnitType
Accepted values:Hours, Days, Weeks, Months
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeploymentPackage

Specifies a software update deployment package. To obtain a software update deployment package, use the Get-CMSoftwareUpdateDeploymentPackage cmdlet.

Type:IResultObject
Aliases:InputObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeploymentRing

Specifies the Windows readiness state to which the servicing plan should apply. Valid values are:

  • CB
  • Release
  • BusinessMainstream
  • Cbb
  • Ltsb
Type:DeploymentRing
Accepted values:CB, Release, BusinessMainstream, Cbb, Ltsb
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Specifies a description for the servicing plan.

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

-DisableOperationManager

Indicates whether to disable System Center Operations Manager alerts during software updates.

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

-DownloadFromInternet

Indicates whether to download software updates from the Internet.

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

-DownloadFromMicrosoftUpdate

Indicates whether computers download content from Microsoft Update if the software updates are unavailable on a preferred distribution point or remote distribution point.

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

-Enable

Indicates whether the servicing plan is enabled.

Type:Boolean
Aliases:Enabled, EnableDeployment
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GenerateOperationManagerAlert

Indicates whether to generate Operations Manager alerts during a software update.

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

-GenerateSuccessAlert

Indicates whether to generate an alert for successful deployment.

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

-Language

Specifies an array of languages used to filter software upgrades that will be added to the service plan.

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

-LanguageSelection

Specifies an array of languages, as strings. Computers download software updates available in the specified languages, in addition to non-language-specific updates.

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

-Location

Specifies a network location to where the downloaded updates are located.

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

-Name

Specifies a name for the servicing plan. The name must be unique, help to describe the objective of the rule, and identify it from others in the Configuration Manager site.

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

-NoInstallOnRemote

Indicates whether to allow installation of updates on remote systems. If you specify a value of $True, if the client is within a slow or unreliable network boundary, or when the client uses a fallback source location for content, then Configuration Manager does not install software updates. If you specify a value of $False, installation proceeds.

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

-NoInstallOnUnprotected

Indicates whether to allow installation of updates on unprotected systems. If you specify a value of $True, if software updates are not available on any preferred distribution points, Configuration Manager does not download and install software updates. If you specify a value of $False, installation proceeds.

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

-Required

Specifies an array of search strings used to filter software upgrades that will be added to the service plan.

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

-RunType

Specifies the mode in which an update runs. Valid values are:

  • DoNotRunThisRuleAutomatically
  • RunTheRuleAfterAnySoftwareUpdatePointSynchronization
  • RunTheRuleOnSchedule
Type:RunType
Accepted values:DoNotRunThisRuleAutomatically, RunTheRuleAfterAnySoftwareUpdatePointSynchronization, RunTheRuleOnSchedule
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Schedule

Specifies the deadline time (from deployment available time). To create a schedule, use the New-CMSchedule cmdlet.

Type:IResultObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SendWakeupPacket

Indicates whether to send a wake-up packet to computers before the deployment begins. If this value is $True, Configuration Manager wakes a computer from sleep. If this value is $False, it does not wake computers from sleep. For computers to wake, you must first configure Wake On LAN.

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

-SuccessPercentage

Specifies a percentage for client compliance as an integer from 0 to 99. If compliance falls below this percentage, Configuration Manager produces optional alerts.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SuppressRestartServer

Indicates whether a system restart is suppressed on servers when a software update requires a system restart to complete the installation process.

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

-SuppressRestartWorkstation

Indicates whether a system restart is suppressed on workstations when a software update requires a system restart to complete the installation process.

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

-Title

Specifies an array of search strings used to filter software update titles that will be added to the service plan.

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

-UpdateDeploymentWaitDay

Specifies the number of days to wait after Microsoft has published a new upgrade before deploying in your environment.

Type:Int32
Aliases:UpdateDeploymentWaitDays
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseBranchCache

Indicates whether to use a branch cache. If you specify a value of $True, clients share content on the same subnet.

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

-UserNotification

Specifies the notification behavior of the user visual experience. Valid values are:

  • DisplayAll
  • DisplaySoftwareCenterOnly
  • HideAll
Type:UserNotificationType
Accepted values:DisplayAll, DisplaySoftwareCenterOnly, HideAll
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseUtc

Indicates whether the schedule for this deployment is evaluated based upon Universal Coordinated Time (UTC).

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

-VerboseLevel

Specifies the level of detail you want clients to report for deployments that this rule creates. Valid values are:

  • AllMessages
  • OnlyErrorMessages
  • OnlySuccessAndErrorMessages
Type:VerboseLevelType
Accepted values:OnlyErrorMessages, OnlySuccessAndErrorMessages, AllMessages
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet doesn't run.

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

-WriteFilterHandling

Indicates whether changes are committed at deadline or during a maintenance window (requires restarts). If set to $False, content is applied on the overlay and committed later.

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

Inputs

None

Outputs

System.Object