Skip to content

nutanixdev/euc-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EUC Samples

A collection of End User Computing (EUC) code samples and automation solutions, specifically designed for Citrix Virtual Apps and Desktops (CVAD/DaaS) environments running on Nutanix infrastructure.

Table of Contents

Overview

This repository provides enterprise-grade PowerShell automation samples for:

  • Category Management: Automated synchronization between Nutanix Prism Central categories and Citrix tags
  • MCS Base Image Replication: Solutions for replicating Citrix MCS base images using Nutanix protection mechanisms
  • Multi-Cluster Migration: Tools for updating hosting details during cross-cluster migrations
  • Recovery Point Distribution: Automated distribution of Prism Central Recovery Points across availability zones

All solutions are designed to integrate seamlessly with Nutanix infrastructure and leverage native Nutanix data protection and categorization capabilities.

Repository Structure

euc-samples/
β”œβ”€β”€ citrix/
β”‚   β”œβ”€β”€ categories/
β”‚   β”‚   β”œβ”€β”€ manage_pc_vm_categories/
β”‚   β”‚   β”‚   β”œβ”€β”€ UpdatePCVMCategories.ps1
β”‚   β”‚   β”‚   └── ReadMe.md
β”‚   β”‚   └── sync_pc_categories_to_citrix_tags/
β”‚   β”‚       β”œβ”€β”€ MapPCVMCategoriestoCitrixTags.ps1
β”‚   β”‚       β”œβ”€β”€ ReadMe.md
β”‚   β”‚       └── playbook_edition/
β”‚   β”‚           β”œβ”€β”€ MapPCVMCategoriestoCitrixTagsPlaybookStyle.ps1
β”‚   β”‚           β”œβ”€β”€ ReadMe.md
β”‚   β”‚           └── execution scripts/
β”‚   β”‚               β”œβ”€β”€ ExecuteCitrixDaaStoPCSync.ps1
β”‚   β”‚               β”œβ”€β”€ ExecuteCitrixVADtoPCSync.ps1
β”‚   β”‚               β”œβ”€β”€ ExecutePCtoCitrixDaaSSync.ps1
β”‚   β”‚               β”œβ”€β”€ ExecutePCtoCitrixVADSync.ps1
β”‚   β”‚               └── ExecutePCtoCitrixVADSyncCleanOrphans.ps1
β”‚   β”œβ”€β”€ mcs/
β”‚   β”‚   β”œβ”€β”€ replicate_citrix_base_image_pc/
β”‚   β”‚   β”‚   └── recovery_point_replication/
β”‚   β”‚   β”‚       β”œβ”€β”€ ReplicateCitrixBaseImageRP.ps1
β”‚   β”‚   β”‚       └── READMe.md
β”‚   β”‚   β”œβ”€β”€ replicate_citrix_base_image_pd/
β”‚   β”‚   β”‚   β”œβ”€β”€ ReplicateCitrixBaseImageVM.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ ctx_catalogs.json
β”‚   β”‚   β”‚   └── READMe.md
β”‚   β”‚   └── replicate_citrix_base_image_pd_api/
β”‚   β”‚       β”œβ”€β”€ ReplicateCitrixBaseImageVMAPI.ps1
β”‚   β”‚       β”œβ”€β”€ ctx_catalogs.json
β”‚   β”‚       └── README.md
β”‚   └── multi_cluster_migration/
β”‚       β”œβ”€β”€ citrix_cvad_reset_hostedmachineid/
β”‚       β”‚   β”œβ”€β”€ UpdateCVADHostedMachineId.ps1
β”‚       β”‚   └── README.md
β”‚       └── citrix_daas_reset_hostedmachineid/
β”‚           β”œβ”€β”€ UpdateDaaSHostedMachineId.ps1
β”‚           └── README.md
└── DistributePCRecoveryPoints/
    β”œβ”€β”€ DistributePCRecoveryPoints.ps1
    β”œβ”€β”€ MasterConfig.json
    └── READMe.md

Solutions

Citrix Solutions

Category Management

1. Manage Prism Central VM Categories

Location: citrix/categories/manage_pc_vm_categories/

Purpose: Automates the management and assignment of Nutanix Prism Central VM categories for Citrix workloads.

Key Features:

  • Automated category assignment to VMs
  • Bulk category management operations
  • Integration with Prism Central API
  • Support for custom category schemas

Supported Platforms:

  • Nutanix Prism Central
  • PowerShell 5.1+

Documentation: View detailed README


2. Sync Prism Central Categories to Citrix Tags

Location: citrix/categories/sync_pc_categories_to_citrix_tags/

Purpose: Provides bi-directional synchronization between Nutanix Prism Central VM categories and Citrix machine tags, enabling consistent tagging across both platforms.

Key Features:

  • Bi-directional sync (PC to Citrix and Citrix to PC)
  • Support for both CVAD and DaaS deployments
  • Playbook-style execution with pre-configured scenarios
  • Orphan cleanup capabilities
  • Multiple execution scripts for different sync directions
  • Scheduled synchronization support

Supported Platforms:

  • Citrix CVAD (on-premises)
  • Citrix DaaS (Cloud)
  • Nutanix Prism Central
  • PowerShell 5.1+

Documentation:


MCS Base Image Replication

3. Replicate Citrix Base Image (Prism Central Recovery Points)

Location: citrix/mcs/replicate_citrix_base_image_pc/recovery_point_replication/

Purpose: Automates replication of Citrix MCS base images using Nutanix Prism Central Recovery Points for disaster recovery scenarios.

Key Features:

  • Recovery Point-based replication
  • Integration with Prism Central protection policies
  • Automated failover/failback support
  • Cross-site base image availability

Supported Platforms:

  • Citrix CVAD/DaaS with MCS
  • Nutanix Prism Central
  • PowerShell 5.1+

Documentation: View detailed README


4. Replicate Citrix Base Image (Protection Domains)

Location: citrix/mcs/replicate_citrix_base_image_pd/

Purpose: Replicates Citrix MCS base images using Nutanix Protection Domains (Prism Element) for async disaster recovery.

Key Features:

  • Protection Domain-based replication
  • VM-level replication control
  • JSON configuration support for multiple catalogs
  • Scheduled replication workflows

Supported Platforms:

  • Citrix CVAD/DaaS with MCS
  • Nutanix Protection Domains (Prism Element)
  • PowerShell 5.1+

Documentation: View detailed README


5. Replicate Citrix Base Image (Protection Domains API)

Location: citrix/mcs/replicate_citrix_base_image_pd_api/

Purpose: API-driven approach to replicating Citrix MCS base images using Nutanix Protection Domains.

Key Features:

  • Direct Nutanix API integration
  • Enhanced control and customization
  • JSON-based catalog configuration
  • Programmatic replication workflows

Supported Platforms:

  • Citrix CVAD/DaaS with MCS
  • Nutanix Protection Domains (Prism Element)
  • PowerShell 5.1+

Documentation: View detailed README


Multi-Cluster Migration

6. Update CVAD Hosted Machine ID

Location: citrix/multi_cluster_migration/citrix_cvad_reset_hostedmachineid/

Purpose: Updates Citrix CVAD (on-premises) machine hosting details after cross-cluster migrations or failover events.

Key Features:

  • Automated HostedMachineId updates
  • Cross-cluster migration support
  • Batch processing capabilities
  • Validation and error handling

Supported Platforms:

  • Citrix CVAD (on-premises)
  • Nutanix AHV (Prism Element and Prism Central)
  • PowerShell 5.1+

Documentation: View detailed README


7. Update DaaS Hosted Machine ID

Location: citrix/multi_cluster_migration/citrix_daas_reset_hostedmachineid/

Purpose: Updates Citrix DaaS (Cloud) machine hosting details after cross-cluster migrations or failover events.

Key Features:

  • Cloud API integration
  • Automated HostedMachineId updates
  • Cross-cluster migration support
  • Resource location management

Supported Platforms:

  • Citrix DaaS (Cloud)
  • Nutanix AHV (Prism Element and Prism Central)
  • PowerShell 7.x+

Documentation: View detailed README


Infrastructure Solutions

8. Distribute Prism Central Recovery Points

Location: DistributePCRecoveryPoints/

Purpose: Automates the distribution and management of Nutanix Prism Central Recovery Points across multiple availability zones for comprehensive disaster recovery coverage.

Key Features:

  • Multi-zone recovery point distribution
  • JSON-based master configuration
  • Automated scheduling support
  • Cross-site recovery point management
  • Integration with Prism Central protection policies

Supported Platforms:

  • Nutanix Prism Central
  • PowerShell 5.1+

Documentation: View detailed README


Prerequisites

Platform-Specific Requirements

Refer to individual solution README files for detailed prerequisites.

General Requirements

  • PowerShell 5.1 or higher (PowerShell 7.x+ recommended for DaaS solutions)
  • Network connectivity to Nutanix Prism Central/Element
  • Network connectivity to Citrix Cloud or Delivery Controllers
  • Appropriate administrative credentials for both platforms

Getting Started

1. Clone the Repository

git clone <repository-url>
cd euc-samples

2. Choose Your Solution

Navigate to the appropriate solution directory based on your use case:

  • Category/Tag Synchronization: citrix/categories/sync_pc_categories_to_citrix_tags/
  • MCS Base Image Replication (Recovery Points): citrix/mcs/replicate_citrix_base_image_pc/recovery_point_replication/
  • MCS Base Image Replication (Protection Domains): citrix/mcs/replicate_citrix_base_image_pd/
  • CVAD Cross-Cluster Migration: citrix/multi_cluster_migration/citrix_cvad_reset_hostedmachineid/
  • DaaS Cross-Cluster Migration: citrix/multi_cluster_migration/citrix_daas_reset_hostedmachineid/
  • Recovery Point Distribution: DistributePCRecoveryPoints/

3. Review Documentation

Each solution has a detailed README with:

  • Prerequisites
  • Parameter descriptions
  • Usage examples
  • Configuration file formats
  • Best practices

4. Configure Solution Parameters

Most solutions support configuration files (JSON) or command-line parameters. Review the solution-specific documentation for configuration details.

5. Test Before Production

Test thoroughly in non-production environments before production use. Many solutions include validation modes or dry-run capabilities.

6. Execute in Production

Once validated, execute the solution with appropriate parameters:

.\ScriptName.ps1 <parameters>

Best Practices

  1. Test Thoroughly: Always test in non-production environments first
  2. Review Logs: Monitor script output and logs for warnings and errors
  3. Backup Configurations: Maintain backups of configuration files and current states
  4. Document Parameters: Keep records of parameter values and configurations used
  5. Schedule Appropriately: For replication and sync solutions, establish appropriate schedules
  6. Validate Connectivity: Ensure network connectivity to all required endpoints
  7. Use Secure Credentials: Leverage PowerShell secure strings and credential management
  8. Monitor Performance: Track execution times and optimize batch sizes as needed

Support

These scripts are provided as-is without warranty. Please see the .disclaimer file accompanying this repository.

  • Testing: Test thoroughly in non-production environments before production use
  • Documentation: Refer to individual solution README files for detailed information
  • Issues: Review logs for detailed error messages and troubleshooting information
  • Nutanix Support: For Nutanix-specific issues, consult Nutanix Portal
  • Citrix Support: For Citrix-specific issues, consult Citrix Documentation

Legal

Please refer to the LICENSE and NOTICE files in this repository for additional legal information.


Version Information

Individual solutions maintain their own version history. Refer to each solution's README for version details.


Contributing

This repository contains code samples for enterprise EUC automation solutions. For contributions or feature requests, please contact the repository maintainers.


Last Updated: February 2026

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •