New-CMWindowsServicingPlan

Creates a Windows 10 servicing plan.

Syntax

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

Description

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

Examples

Example 1: Create a servicing plan by collection ID

PS C:\> $Lang = ("Japanese", "English", "French")
PS C:\> $Required = (">=1", "<=100")
PS C:\> $Title = ("Title1", "Title2", "Title3")
PS C:\> 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 C:\> $LangSelect = ("Japanese", "English", "French", "German")
PS C:\> 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.

Required Parameters

-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
Required:True
Position:Named
Default value:None
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
Required:True
Position:Named
Default value:None
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
Required:True
Position:Named
Default value:None
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
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Optional 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
Required:False
Position:Named
Default value:None
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
Parameter Sets:Hours, Days, Weeks, Months
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AvailableTime

Specify when software updates are available.

Type:Int32
Required:False
Position:Named
Default value:None
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
Parameter Sets:Hours, Days, Weeks, Months
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Required:False
Position:Named
Default value: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
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-DeadlineTime

Specifies the number of time units for the deadline.

Type:Int32
Required:False
Position:Named
Default value:None
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
Parameter Sets:Hours, Days, Weeks, Months
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Parameter Sets:CB, Release, BusinessMainstream, Cbb, Ltsb
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Description

Specifies a description for the servicing plan.

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

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

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

Indicates whether to download software updates from the Internet.

Type:Boolean
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Enable

Indicates whether the servicing plan is enabled.

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

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

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

Indicates whether to generate an alert for successful deployment.

Type:Boolean
Required:False
Position:Named
Default value:None
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[]
Required:False
Position:Named
Default value:None
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[]
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Location

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

Type:String
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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[]
Required:False
Position:Named
Default value:None
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
Parameter Sets:DoNotRunThisRuleAutomatically, RunTheRuleAfterAnySoftwareUpdatePointSynchronization, RunTheRuleOnSchedule
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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[]
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Required:False
Position:Named
Default value:None
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
Parameter Sets:DisplayAll, DisplaySoftwareCenterOnly, HideAll
Required:False
Position:Named
Default value:None
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
Parameter Sets:OnlyErrorMessages, OnlySuccessAndErrorMessages, AllMessages
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

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

Type:SwitchParameter
Aliases:wi
Required:False
Position:Named
Default value: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
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False