New-AzImageBuilderTemplateCustomizerObject

Create an in-memory object for ImageTemplateCustomizer.

Syntax

New-AzImageBuilderTemplateCustomizerObject
   [-FileCustomizer]
   [-Destination <String>]
   [-Sha256Checksum <String>]
   [-SourceUri <String>]
   [-Name <String>]
   [<CommonParameters>]
New-AzImageBuilderTemplateCustomizerObject
   [-Sha256Checksum <String>]
   [-Name <String>]
   [-Inline <String[]>]
   [-ScriptUri <String>]
   [-ShellCustomizer]
   [<CommonParameters>]
New-AzImageBuilderTemplateCustomizerObject
   [-Sha256Checksum <String>]
   [-Name <String>]
   [-PowerShellCustomizer]
   [-Inline <String[]>]
   [-RunAsSystem <Boolean>]
   [-RunElevated <Boolean>]
   [-ScriptUri <String>]
   [-ValidExitCode <Int32[]>]
   [<CommonParameters>]
New-AzImageBuilderTemplateCustomizerObject
   [-Name <String>]
   [-RestartCustomizer]
   [-RestartCheckCommand <String>]
   [-RestartCommand <String>]
   [-RestartTimeout <String>]
   [<CommonParameters>]
New-AzImageBuilderTemplateCustomizerObject
   [-Name <String>]
   [-WindowsUpdateCustomizer]
   [-Filter <String[]>]
   [-SearchCriterion <String>]
   [-UpdateLimit <Int32>]
   [<CommonParameters>]

Description

Create an in-memory object for ImageTemplateCustomizer.

Examples

Example 1: Create a windows update customizer.

New-AzImageBuilderTemplateCustomizerObject -WindowsUpdateCustomizer -Name 'WindUpdate' -Filter ("BrowseOnly", "IsInstalled") -SearchCriterion "BrowseOnly=0 and IsInstalled=0" -UpdateLimit 100

Name       Filter                    SearchCriterion                UpdateLimit
----       ------                    ---------------                -----------
WindUpdate {BrowseOnly, IsInstalled} BrowseOnly=0 and IsInstalled=0 100

This command creates a windows update customizer.

Example 2: Create a file customizer.

New-AzImageBuilderTemplateCustomizerObject -FileCustomizer -Name 'filecus' -Destination 'c:\\buildArtifacts\\index.html' -SourceUri 'https://github.com/danielsollondon/azvmimagebuilder/blob/master/quickquickstarts/exampleArtifacts/buildArtifacts/index.html'

Name    Destination                    Sha256Checksum SourceUri
----    -----------                    -------------- ---------
filecus c:\\buildArtifacts\\index.html                https://github.com/danielsollondon/azvmimagebuilder/blob/master/quickquickstarts/exampleArtifacts/buildArtifacts/index.html

This command creates a file customizer.

Example 3: Create a powershell customizer.

New-AzImageBuilderTemplateCustomizerObject -PowerShellCustomizer -Name settingUpMgmtAgtPath -RunElevated $false -Inline "mkdir c:\\buildActions", "echo Azure-Image-Builder-Was-Here  > c:\\buildActions\\buildActionsOutput.txt"

Name                 Inline                                                                                                  RunAsSystem RunElevated ScriptUri Sha256Checksum ValidExitCode
----                 ------                                                                                                  ----------- ----------- --------- -------------- -------------
settingUpMgmtAgtPath {mkdir c:\\buildActions, echo Azure-Image-Builder-Was-Here  > c:\\buildActions\\buildActionsOutput.txt}             False

This command creates a powershell customizer.

Example 4: Create a restart customizer.

New-AzImageBuilderTemplateCustomizerObject -RestartCustomizer -Name 'restcus' -RestartCommand 'shutdown /f /r /t 0 /c \"packer restart\"' -RestartCheckCommand 'powershell -command "& {Write-Output "restarted."}"' -RestartTimeout '10m'

Name    RestartCheckCommand                                 RestartCommand                            RestartTimeout
----    -------------------                                 --------------                            --------------
restcus powershell -command "& {Write-Output "restarted."}" shutdown /f /r /t 0 /c \"packer restart\" 10m

This command creates a restart customizer.

Example 5: Create a shell customizer.

New-AzImageBuilderTemplateCustomizerObject -ShellCustomizer -Name downloadBuildArtifacts -ScriptUri "https://raw.githubusercontent.com/danielsollondon/azvmimagebuilder/master/quickquickstarts/customizeScript2.sh"

Name                   Inline ScriptUri                                                                                                      Sha256Checksum
----                   ------ ---------                                                                                                      --------------
downloadBuildArtifacts        https://raw.githubusercontent.com/danielsollondon/azvmimagebuilder/master/quickquickstarts/customizeScript2.sh

This command creates a shell customizer.

Parameters

-Destination

The absolute path to a file (with nested directory structures already created) where the file (from sourceUri) will be uploaded to in the VM.

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

-FileCustomizer

Uploads files to VMs (Linux, Windows). Corresponds to Packer file provisioner.

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

-Filter

Array of filters to select updates to apply. Omit or specify empty array to use the default (no filter). Refer to above link for examples and detailed description of this field.

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

-Inline

Array of PowerShell commands to execute.

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

-Name

Friendly Name to provide context on what this customization step does.

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

-PowerShellCustomizer

Runs the specified PowerShell on the VM (Windows). Corresponds to Packer powershell provisioner. Exactly one of 'scriptUri' or 'inline' can be specified.

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

-RestartCheckCommand

Command to check if restart succeeded [Default: ''].

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

-RestartCommand

Command to execute the restart [Default: 'shutdown /r /f /t 0 /c "packer restart"'].

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

-RestartCustomizer

Reboots a VM and waits for it to come back online (Windows). Corresponds to Packer windows-restart provisioner

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

-RestartTimeout

Restart timeout specified as a string of magnitude and unit, e.g. '5m' (5 minutes) or '2h' (2 hours) [Default: '5m'].

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

-RunAsSystem

If specified, the PowerShell script will be run with elevated privileges using the Local System user. Can only be true when the runElevated field above is set to true.

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

-RunElevated

If specified, the PowerShell script will be run with elevated privileges.

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

-ScriptUri

URI of the PowerShell script to be run for customizing. It can be a github link, SAS URI for Azure Storage, etc.

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

-SearchCriterion

Criteria to search updates. Omit or specify empty string to use the default (search all). Refer to above link for examples and detailed description of this field.

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

-Sha256Checksum

SHA256 checksum of the file provided in the sourceUri field above.

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

-ShellCustomizer

Runs a shell script during the customization phase (Linux). Corresponds to Packer shell provisioner. Exactly one of 'scriptUri' or 'inline' can be specified.

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

-SourceUri

The URI of the file to be uploaded for customizing the VM. It can be a github link, SAS URI for Azure Storage, etc.

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

-UpdateLimit

Maximum number of updates to apply at a time. Omit or specify 0 to use the default (1000).

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

-ValidExitCode

Valid exit codes for the PowerShell script. [Default: 0].

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

-WindowsUpdateCustomizer

Installs Windows Updates. Corresponds to Packer Windows Update Provisioner (https://github.com/rgl/packer-provisioner-windows-update)

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

Outputs

ImageTemplateFileCustomizer

ImageTemplatePowerShellCustomizer

ImageTemplateRestartCustomizer

ImageTemplateShellCustomizer

ImageTemplateWindowsUpdateCustomizer