Skip to content

Copy-AppVentiXPublishingTask

Copies AppVentiX publishing tasks to a new machine group with optional Azure Virtual Desktop seamless publishing.

Syntax

Copy-AppVentiXPublishingTask
    -Id <String>
    -NewMachineGroupFriendlyname <String>
    [-NewGroup <String>]
    [-DontPublishSeamless]
    [<CommonParameters>]

Copy-AppVentiXPublishingTask
    -MachineGroupFriendlyname <String>
    -NewMachineGroupFriendlyname <String>
    [-DontPublishSeamless]
    [<CommonParameters>]

Copy-AppVentiXPublishingTask
    -Id <String>
    -NewMachineGroupFriendlyname <String>
    -SubscriptionId <String>
    -ResourceGroupName <String>
    -ApplicationGroupName <String>
    -HostPoolName <String>
    -AssignmentName <String>
    [<CommonParameters>]

Copy-AppVentiXPublishingTask
    -MachineGroupFriendlyname <String>
    -NewMachineGroupFriendlyname <String>
    -SubscriptionId <String>
    -ResourceGroupName <String>
    -ApplicationGroupName <String>
    -HostPoolName <String>
    -AssignmentName <String>
    [<CommonParameters>]

Description

The Copy-AppVentiXPublishingTask function copies one or more AppVentiX publishing tasks from an existing machine group to a new machine group. It supports both standard copying and Azure Virtual Desktop (AVD) seamless publishing scenarios.

The function performs the following operations: - Validates that AppVentiX is properly licensed - Retrieves existing publishing tasks and machine groups from the configuration - Copies task configuration including package paths, groups, and seamless applications - Automatically adjusts content share paths for the new machine group - Optionally configures Azure Virtual Desktop seamless publishing - Updates Active Directory group assignments with SID resolution - Preserves or disables seamless publishing based on parameters

Parameters

-Id

Specifies the GUID of a specific publishing task to copy. Accepts pipeline input by property name.

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

-MachineGroupFriendlyname

Specifies the friendly name of the source machine group containing the publishing tasks to copy. All publishing tasks from this machine group will be copied to the new machine group. Accepts pipeline input by property name.

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

-NewMachineGroupFriendlyname

Specifies the friendly name of the destination machine group where tasks will be copied. The machine group must already exist in the AppVentiX configuration.

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

-NewGroup

Specifies the new Active Directory group to assign to the copied publishing tasks. Can be specified as "GroupName" or "DOMAIN\GroupName". If only the group name is provided, the domain from the original task will be reused.

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

-DontPublishSeamless

Disables seamless publishing for the copied tasks, even if the original tasks had seamless publishing enabled.

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

-SubscriptionId

Specifies the Azure subscription ID for Azure Virtual Desktop seamless publishing.

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

-ResourceGroupName

Specifies the Azure resource group name containing the AVD resources.

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

-ApplicationGroupName

Specifies the Azure Virtual Desktop application group name for seamless publishing. Has alias: ApplicationGroup.

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

-HostPoolName

Specifies the Azure Virtual Desktop host pool name associated with the application group. Has alias: HostPool.

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

-AssignmentName

Specifies the name for the Azure Virtual Desktop user assignment.

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

Examples

Example 1: Copy a single publishing task by ID

Copy-AppVentiXPublishingTask -Id "a1b2c3d4-e5f6-7890-abcd-ef1234567890" -NewMachineGroupFriendlyname "Production"

Copies a single publishing task to the Production machine group, preserving all settings including group assignments and seamless publishing.

Example 2: Copy all tasks from one machine group to another

Copy-AppVentiXPublishingTask -MachineGroupFriendlyname "Development" -NewMachineGroupFriendlyname "Testing"

Copies all publishing tasks from the Development machine group to the Testing machine group.

Example 3: Copy tasks and assign to a new AD group

Copy-AppVentiXPublishingTask -MachineGroupFriendlyname "Development" -NewMachineGroupFriendlyname "Production" -NewGroup "DOMAIN.local\Prod-Users"

Copies all publishing tasks from Development to Production and assigns them to the DOMAIN.local\Prod-Users AD group.

Example 4: Copy a task and disable seamless publishing

Copy-AppVentiXPublishingTask -Id "a1b2c3d4-e5f6-7890-abcd-ef1234567890" -NewMachineGroupFriendlyname "Testing" -DontPublishSeamless

Copies a publishing task to Testing but disables seamless publishing even if the source task had it enabled.

Example 5: Use pipeline input to copy tasks

Get-AppVentiXPublishingTask -MachineGroupFriendlyName "Development" | Copy-AppVentiXPublishingTask -NewMachineGroupFriendlyname "Staging"

Uses pipeline input to copy all publishing tasks from Development to Staging.

Example 6: Copy a task with Azure Virtual Desktop configuration

$Params = @{
    Id                          = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    NewMachineGroupFriendlyname = "AVD-Production"
    SubscriptionId              = "12345678-1234-1234-1234-123456789012"
    ResourceGroupName           = "RG-AVD-Prod"
    ApplicationGroupName        = "AppGroup-Office"
    HostPoolName                = "HostPool-Prod"
    AssignmentName              = "Office-Users-Assignment"
}
Copy-AppVentiXPublishingTask @Params

Copies a publishing task with Azure Virtual Desktop seamless publishing configuration.

Notes

  • Requires a valid AppVentiX license
  • Tasks assigned to "All Machine Groups" cannot be copied and will be skipped
  • The package file must exist in the new machine group's content share for the copy to succeed
  • Azure parameter sets require the Az.Accounts, Az.DesktopVirtualization, and Az.Resources PowerShell modules