Professional automation tools for streamlining AWS Deadline Cloud deployment across DCC applications
This repository contains a collection of PowerShell automation scripts designed to simplify and standardize the deployment of AWS Deadline Cloud across various Digital Content Creation (DCC) applications. These scripts eliminate manual configuration steps, reduce setup time, and ensure consistent installations across workstations and render nodes.
AWS Deadline Cloud integrations require specific Python packages and proper system configuration. Manual installation across multiple DCC applications and Python environments is time-consuming and error-prone. These scripts automate the entire process, making it easier for studios to onboard artists and deploy render infrastructure at scale.
- Automated Python Discovery: Intelligently locates all Python installations across multiple system locations
- Dependency Management: Installs all required Deadline Cloud packages automatically
- Windows App Execution Alias Handling: Guides users through disabling problematic Microsoft Store Python redirects
- Multi-Installation Support: Deploys packages to every Python installation simultaneously
- Comprehensive Logging: Generates detailed logs for troubleshooting and auditing
- Error Handling: Provides clear feedback on installation status with actionable error messages
- Interactive Guidance: Offers user-friendly prompts and instructions throughout the process
| Application | Script | Status | Packages Installed |
|---|---|---|---|
| After Effects | deadline-for-ae.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-after-effects |
| Maya | deadline-for-maya.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-maya |
| Houdini | Setup-DeadlineCloud-Houdini.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-houdini |
| Cinema 4D | Setup-DeadlineCloud-Cinema4D.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-cinema-4d |
| Nuke | Setup-DeadlineCloud-Nuke.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-nuke |
| Blender | Setup-DeadlineCloud-Blender.ps1 |
✅ Available | deadline, deadline-cloud, deadline[gui], deadline-cloud-for-blender |
- Operating System: Windows 10/11 or Windows Server 2019+
- PowerShell: Version 5.1 or higher
- Python: One or more Python installations (3.9+ recommended)
- Internet Access: Required for downloading packages from PyPI
- Scripts can run without administrator privileges, but some Python installations may not be accessible
- Administrator rights recommended for system-wide Python installations
- Ensure Python is installed on your system
- Verify network connectivity to PyPI (https://pypi.org)
- Have your AWS Deadline Cloud configuration details ready (if required by your DCC application)
deadline-cloud-setup-scripts/
├── README.md
├── After Effects/
│ ├── Setup-DeadlineCloud-AfterEffects.ps1
│ ├── Install-DeadlineCloud-AfterEffects.bat
│ └── README.md
├── Maya/
│ ├── Setup-DeadlineCloud-Maya.ps1
│ ├── Install-DeadlineCloud-Maya.bat
│ └── README.md
├── Cinema4D/
│ ├── Setup-DeadlineCloud-Cinema4D.ps1
│ ├── Install-DeadlineCloud-Cinema4D.bat
│ └── README.md
├── Houdini/
│ ├── Setup-DeadlineCloud-Houdini.ps1
│ ├── Install-DeadlineCloud-Houdini.bat
│ └── README.md
├── Blender/
│ ├── Setup-DeadlineCloud-Blender.ps1
│ ├── Install-DeadlineCloud-Blender.bat
│ └── README.md
└── Nuke/
├── Setup-DeadlineCloud-Nuke.ps1
├── Install-DeadlineCloud-Nuke.bat
└── README.md
Each application has its own directory containing:
- PowerShell script (.ps1): The main installation script
- Batch launcher (.bat): Easy double-click launcher with automatic elevation
- README.md: Application-specific documentation
This is the easiest method for most users!
-
Download both files for your DCC application:
Setup-DeadlineCloud-<Application>.ps1Install-DeadlineCloud-<Application>.bat
-
Place both files in the same folder
-
Double-click the
.batfile (e.g.,Install-DeadlineCloud-Maya.bat) -
Click "Yes" when Windows asks for administrator permission (UAC prompt)
-
Follow the on-screen prompts in the window that appears
-
Review the results - The window will pause at the end so you can see what happened
That's it! The batch file automatically handles:
- ✅ Requesting administrator privileges
- ✅ Bypassing PowerShell execution policy
- ✅ Checking that the script exists
- ✅ Running the PowerShell script
- ✅ Displaying success/failure status
- ✅ Pausing so you can review the results
If you prefer to run PowerShell directly or need more control:
- Download the PowerShell script for your DCC application
- Open PowerShell (Right-click Start → Windows PowerShell)
- Navigate to the script location:
cd C:\path\to\scripts
- Run the script:
.\Setup-DeadlineCloud-AfterEffects.ps1
If you encounter an execution policy error, you may need to temporarily allow script execution:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope ProcessThen run the script as normal. This change only affects the current PowerShell session.
Note: The batch file method handles this automatically, so you won't encounter this issue when using the .bat launcher.
Each script supports the following parameters:
# Standard execution with all checks (interactive)
.\Setup-DeadlineCloud-<Application>.ps1
# Skip Windows App Execution Alias check (if already disabled)
.\Setup-DeadlineCloud-<Application>.ps1 -SkipAliasCheck
# Auto-select all application versions (for Maya, Cinema4D, Houdini, Blender, Nuke)
.\Setup-DeadlineCloud-Maya.ps1 -AllMayaVersions
# Combine flags for fully automated deployment
.\Setup-DeadlineCloud-Maya.ps1 -AllMayaVersions -SkipAliasCheck
# Enable verbose output for detailed logging
.\Setup-DeadlineCloud-<Application>.ps1 -VerboseTo pass arguments via the batch file, edit the .bat file in a text editor:
:: Find this line near the top of the .bat file:
set "SCRIPT_ARGS="
:: Change it to include your desired arguments:
set "SCRIPT_ARGS=-AllMayaVersions -SkipAliasCheck"This is useful for automated deployments where you want to skip interactive prompts.
The .bat files provide a user-friendly wrapper around the PowerShell scripts:
- Automatic Elevation: Requests administrator privileges via UAC if not already elevated
- Execution Policy Handling: Automatically bypasses PowerShell restrictions
- Error Checking: Verifies the PowerShell script exists before attempting to run it
- Clear Feedback: Shows formatted messages about what's happening
- Status Display: Reports success or failure with exit codes
- User-Friendly: Pauses at the end so you can review results before closing
Use the Batch File (.bat) when:
- ✅ You want the simplest "double-click and go" experience
- ✅ You're deploying to end users (artists, staff)
- ✅ You want automatic elevation without manual UAC handling
- ✅ You don't want to deal with PowerShell execution policies
Use the PowerShell Script (.ps1) directly when:
- ✅ You're integrating with other PowerShell automation
- ✅ You need fine-grained control over execution
- ✅ You're running from remote PowerShell sessions
- ✅ You're already working in a PowerShell environment
The batch launchers request administrator privileges because:
- System-wide Python installations often require admin rights
- Some Python installations are in protected directories (Program Files)
- Registry scanning works more reliably with elevation
Running without admin:
- The scripts will still attempt to run without elevation
- You'll be prompted during installation if admin rights are needed
- Some Python installations may fail without administrator privileges
The script searches for Python installations using multiple detection methods:
- Windows Registry scanning (HKLM and HKCU hives)
- PATH environment variable parsing
- Common installation directories (AppData, Program Files, etc.)
- Python Launcher (
py.exe) integration for version enumeration
All discovered installations are validated and version information is extracted.
For applications with bundled Python environments, the script also:
- Searches standard installation locations
- Checks Windows Registry for install paths
- Detects application-specific Python interpreters
- Allows interactive selection of which versions to configure
Windows 10/11 includes App Execution Aliases that redirect python.exe and python3.exe commands to the Microsoft Store. These aliases interfere with Deadline Cloud and must be disabled.
The script:
- Detects if aliases are enabled
- Provides three options:
- Automated: Opens Windows Settings to the correct page
- Manual: Displays step-by-step instructions
- Skip: Continues without disabling (not recommended)
- Verifies aliases are disabled before proceeding
For each Python installation found, the script:
- Verifies
pipis available (installs if missing) - Upgrades
pipto the latest version - Installs all required Deadline Cloud packages
- Tracks success/failure status for each package
- Generates a comprehensive installation summary
All actions are logged to both:
- Console: Color-coded output for real-time feedback
- Log File: Detailed timestamp-based log saved to
%TEMP%
The final summary includes:
- Total Python installations discovered
- Package installation success/failure counts
- Detailed error messages for troubleshooting
- Log file location for reference
Solution: Ensure both the .bat and .ps1 files are in the same directory. The batch file looks for the PowerShell script in the same folder.
Solution: Install Python from python.org and ensure it's added to PATH during installation.
Solution: The script automatically attempts to install pip. If this fails, manually run:
python -m ensurepip --default-pipPossible Causes:
- Network connectivity issues
- Proxy/firewall blocking PyPI
- Python installation is corrupted
- Insufficient disk space
Solution: Check the log file for specific error messages and verify network access to PyPI.
Solution:
- Open Windows Settings (Win + I)
- Navigate to Apps → Apps & features → App execution aliases
- Toggle OFF both
python.exeandpython3.exe - Restart PowerShell and re-run the script
Solution: Run the batch file (which requests elevation automatically) or run PowerShell as Administrator manually.
Solution: The PowerShell script may have encountered an error. Run the PowerShell script directly to see detailed error messages, or check the log file in %TEMP%.
Deploy to artist workstations using the batch files:
:: Place batch files on network share
\\server\deadline-setup\Install-DeadlineCloud-Maya.bat
:: Create desktop shortcuts pointing to network share
:: Users double-click to installStandardize Deadline Cloud setup across all artist workstations:
# Deploy via Group Policy or remote execution
Invoke-Command -ComputerName $workstations -FilePath .\Setup-DeadlineCloud-AfterEffects.ps1Automate Deadline Cloud setup on render farm nodes during provisioning:
# Include in EC2 user data or AMI build scripts
.\Setup-DeadlineCloud-Maya.ps1 -AllMayaVersions -SkipAliasCheckProvide new team members with a single-click setup solution:
Option 1: Network Share (Recommended)
1. Map network drive: \\server\it-tools
2. Create desktop shortcut to: \\server\it-tools\Install-DeadlineCloud-Maya.bat
3. Artists double-click the shortcut
Option 2: Email Distribution
1. Email the .bat and .ps1 files as a zip
2. Artists extract to a folder
3. Artists double-click the .bat file
Option 3: Self-Service Portal
1. Place scripts on internal download portal
2. Include simple instructions: "Download and double-click the .bat file"
Run multiple scripts sequentially for studios using various applications:
.\Setup-DeadlineCloud-Maya.ps1 -AllMayaVersions -SkipAliasCheck
.\Setup-DeadlineCloud-Houdini.ps1 -AllHoudiniVersions -SkipAliasCheck
.\Setup-DeadlineCloud-Nuke.ps1 -AllNukeVersions -SkipAliasCheckEdit the batch files to pre-configure arguments for specific deployment scenarios:
:: Edit Maya batch file for automated deployment
set "SCRIPT_ARGS=-AllMayaVersions -SkipAliasCheck"
:: Edit Blender batch file for interactive selection
set "SCRIPT_ARGS="
:: Edit Nuke batch file to skip alias check only
set "SCRIPT_ARGS=-SkipAliasCheck"- Test scripts in a development environment before production deployment
- Use batch files for end-user deployments to simplify the experience
- Customize batch files with appropriate arguments for your environment
- Place on network share for easy access across the organization
- Review log files after deployment to verify successful installation
- Document any customizations or environment-specific configurations
- Version control your deployment scripts alongside infrastructure code
- Automate script execution during workstation imaging or provisioning
- Use the batch file (
.bat) - it's the easiest method - Keep both files together - the batch file needs the PowerShell script
- Run scripts after installing or updating Python or DCC applications
- Keep logs for reference when reporting issues to IT
- Restart your DCC application after running the script
- Verify Deadline Cloud submitter appears in your application after installation
- Contact IT if you encounter any errors - provide the log file location
- Integrate these scripts into your pipeline deployment workflows
- Use batch files for artist-facing tools, PowerShell for automation
- Customize package lists if your pipeline requires additional dependencies
- Create shortcuts on artist desktops for easy access
- Monitor installation success rates across the studio
- Maintain a central repository of approved script versions
- Test with each new DCC application version before studio-wide deployment
Setup:
# Create network share
New-SmbShare -Name "DeadlineSetup" -Path "\\server\deadline-setup" -ReadAccess "Domain Users"
# Copy scripts to share
Copy-Item .\*.ps1, .\*.bat -Destination "\\server\deadline-setup\"
# Create desktop shortcuts via Group Policy
# Target: \\server\deadline-setup\Install-DeadlineCloud-Maya.batUser Experience:
- Double-click shortcut on desktop
- Click "Yes" to elevation prompt
- Follow on-screen instructions
Setup:
1. Place scripts on network share
2. Create GPO: Computer Configuration → Policies → Windows Settings → Scripts → Startup
3. Add batch file as startup script
4. Apply GPO to target computer groups
Result: Scripts run automatically on computer startup with system privileges.
Package:
1. Create application package with .bat and .ps1 files
2. Set command line: Install-DeadlineCloud-Maya.bat
3. Set detection method: Check for Deadline Cloud package in Python
4. Deploy to device collections
Log files are automatically saved to:
%TEMP%\DeadlineCloud_<Application>_Setup_YYYYMMDD_HHMMSS.log
Typical path: C:\Users\<Username>\AppData\Local\Temp\
From Windows Explorer:
- Press
Win + R - Type
%TEMP% - Press Enter
- Sort by Date Modified (newest first)
- Look for
DeadlineCloud_*.logfiles
From PowerShell:
# List recent Deadline Cloud logs
Get-ChildItem $env:TEMP\DeadlineCloud_*.log | Sort-Object LastWriteTime -Descending | Select-Object -First 5[2025-01-15 14:32:10] [Info] Searching for Python installations...
[2025-01-15 14:32:11] [Success] Found 2 Python installation(s)
[2025-01-15 14:32:15] [Success] ✓ Successfully installed deadline
[2025-01-15 14:32:18] [Error] ✗ Failed to install deadline-cloud: Network timeout
Logs are retained indefinitely in the TEMP directory. Consider implementing a cleanup policy for production environments.
Cleanup script:
# Delete logs older than 30 days
Get-ChildItem $env:TEMP\DeadlineCloud_*.log | Where-Object LastWriteTime -LT (Get-Date).AddDays(-30) | Remove-ItemWe welcome contributions from the GPL Technologies team and the broader community!
- Follow existing code structure and naming conventions
- Create matching batch files for any new PowerShell scripts
- Test thoroughly across multiple Python versions and Windows configurations
- Document changes in commit messages and inline comments
- Update README when adding new scripts or features
- Maintain consistency with existing scripts for user experience
To create a setup script for a new application:
- Copy an existing script as a template
- Update the
$RequiredPackagesarray with the correct package names - Modify the script header and comments
- Create a matching batch file launcher
- Test with the target DCC application's Python environment
- Create application-specific README
- Submit a pull request with test results
- Script executes without syntax errors
- Batch file correctly launches PowerShell script
- Batch file requests elevation properly
- Python discovery finds all installations
- App Execution Alias handling works correctly
- All packages install successfully
- Log file is created with proper formatting
- Summary displays accurate results
- Error handling behaves as expected
- Works on both Windows 10 and Windows 11
- Primary Contact: Michael Wright (DevOps/Systems Engineer)
- Team: GPL Technologies Engineering Team
- Documentation: Internal Wiki (link to be provided)
When reporting issues, please include:
- Script name and version
- Complete log file contents (from %TEMP%)
- Python version(s) installed
- DCC application version (if applicable)
- Windows version and build number
- Error messages and screenshots
- Steps to reproduce the issue
- Whether using batch file or PowerShell directly
- ✨ Initial release
- ✅ After Effects setup script complete
- ✅ Maya setup script complete
- ✅ Cinema 4D setup script complete
- ✅ Houdini setup script complete
- ✅ Blender setup script complete
- ✅ Nuke setup script complete
- ✅ Batch file launchers for all scripts
- ✅ Automatic elevation handling
- ✅ Execution policy bypass
- 📝 Comprehensive documentation
- 🔧 Python discovery across multiple sources
- 🛡️ App Execution Alias handling
- 📊 Detailed logging and reporting
- 🔄 Master "Install All" batch script
- 🔄 Silent installation mode configuration tool
- 🔄 Log aggregation and reporting dashboard
- 🔄 Automatic update checker
- 🔄 Rollback functionality
Empowering creative studios with scalable cloud rendering solutions
Created by Michael Wright - GPL Technologies DevOps/Systems Engineer