Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tools made for simplying certain tasks on Host and Client Machines, inclduing software dependency installation.

Notifications You must be signed in to change notification settings

GPLgithub/AWS-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 

Repository files navigation

AWS Deadline Cloud Setup Scripts

Professional automation tools for streamlining AWS Deadline Cloud deployment across DCC applications

PowerShell License GPL Technologies


Overview

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.

Purpose

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.

Key Features

  • 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

Supported Applications

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

Prerequisites

System Requirements

  • 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

Permissions

  • Scripts can run without administrator privileges, but some Python installations may not be accessible
  • Administrator rights recommended for system-wide Python installations

Before You Begin

  1. Ensure Python is installed on your system
  2. Verify network connectivity to PyPI (https://pypi.org)
  3. Have your AWS Deadline Cloud configuration details ready (if required by your DCC application)

Repository Structure

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

Installation & Usage

Recommended: One-Click Installation (Batch File Method)

This is the easiest method for most users!

  1. Download both files for your DCC application:

    • Setup-DeadlineCloud-<Application>.ps1
    • Install-DeadlineCloud-<Application>.bat
  2. Place both files in the same folder

  3. Double-click the .bat file (e.g., Install-DeadlineCloud-Maya.bat)

  4. Click "Yes" when Windows asks for administrator permission (UAC prompt)

  5. Follow the on-screen prompts in the window that appears

  6. 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

Alternative: Manual PowerShell Execution

If you prefer to run PowerShell directly or need more control:

  1. Download the PowerShell script for your DCC application
  2. Open PowerShell (Right-click Start → Windows PowerShell)
  3. Navigate to the script location:
    cd C:\path\to\scripts
  4. Run the script:
    .\Setup-DeadlineCloud-AfterEffects.ps1

Execution Policy

If you encounter an execution policy error, you may need to temporarily allow script execution:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

Then 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.

Command-Line Options

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 -Verbose

Customizing the Batch Launcher

To 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.


Batch File Features

What the Batch Launcher Does

The .bat files provide a user-friendly wrapper around the PowerShell scripts:

  1. Automatic Elevation: Requests administrator privileges via UAC if not already elevated
  2. Execution Policy Handling: Automatically bypasses PowerShell restrictions
  3. Error Checking: Verifies the PowerShell script exists before attempting to run it
  4. Clear Feedback: Shows formatted messages about what's happening
  5. Status Display: Reports success or failure with exit codes
  6. User-Friendly: Pauses at the end so you can review results before closing

When to Use Each Method

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

Batch File Security

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

How It Works

Step 1: Python Discovery

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.

Step 2: DCC Application Detection (Maya, Cinema4D, Houdini, Blender, Nuke)

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

Step 3: App Execution Alias Management

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

Step 4: Package Installation

For each Python installation found, the script:

  1. Verifies pip is available (installs if missing)
  2. Upgrades pip to the latest version
  3. Installs all required Deadline Cloud packages
  4. Tracks success/failure status for each package
  5. Generates a comprehensive installation summary

Step 5: Logging & Reporting

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

Troubleshooting

Common Issues

"Script not found" error (Batch file)

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.

"No Python installations found"

Solution: Install Python from python.org and ensure it's added to PATH during installation.

"pip is not available"

Solution: The script automatically attempts to install pip. If this fails, manually run:

python -m ensurepip --default-pip

"Failed to install package"

Possible 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.

"App Execution Aliases still enabled"

Solution:

  1. Open Windows Settings (Win + I)
  2. Navigate to Apps → Apps & features → App execution aliases
  3. Toggle OFF both python.exe and python3.exe
  4. Restart PowerShell and re-run the script

Permission Denied Errors

Solution: Run the batch file (which requests elevation automatically) or run PowerShell as Administrator manually.

Batch file opens and closes immediately

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%.


Use Cases

Studio Deployment (Interactive)

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 install

Studio Deployment (Automated)

Standardize Deadline Cloud setup across all artist workstations:

# Deploy via Group Policy or remote execution
Invoke-Command -ComputerName $workstations -FilePath .\Setup-DeadlineCloud-AfterEffects.ps1

Render Node Configuration

Automate Deadline Cloud setup on render farm nodes during provisioning:

# Include in EC2 user data or AMI build scripts
.\Setup-DeadlineCloud-Maya.ps1 -AllMayaVersions -SkipAliasCheck

Artist Onboarding (Easiest Method)

Provide 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"

Multi-DCC Environments

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 -SkipAliasCheck

Custom Deployment with Modified Batch Files

Edit 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"

Best Practices

For IT/DevOps Teams

  • 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

For Artists

  • 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

For Pipeline Teams

  • 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

Network Deployment

Method 1: Network Share with Desktop Shortcuts

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.bat

User Experience:

  1. Double-click shortcut on desktop
  2. Click "Yes" to elevation prompt
  3. Follow on-screen instructions

Method 2: Group Policy Deployment

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.

Method 3: SCCM/Intune Deployment

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

Location

Log files are automatically saved to:

%TEMP%\DeadlineCloud_<Application>_Setup_YYYYMMDD_HHMMSS.log

Typical path: C:\Users\<Username>\AppData\Local\Temp\

Finding Log Files

From Windows Explorer:

  1. Press Win + R
  2. Type %TEMP%
  3. Press Enter
  4. Sort by Date Modified (newest first)
  5. Look for DeadlineCloud_*.log files

From PowerShell:

# List recent Deadline Cloud logs
Get-ChildItem $env:TEMP\DeadlineCloud_*.log | Sort-Object LastWriteTime -Descending | Select-Object -First 5

Log Format

[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

Log Retention

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-Item

Contributing

We welcome contributions from the GPL Technologies team and the broader community!

Development Guidelines

  1. Follow existing code structure and naming conventions
  2. Create matching batch files for any new PowerShell scripts
  3. Test thoroughly across multiple Python versions and Windows configurations
  4. Document changes in commit messages and inline comments
  5. Update README when adding new scripts or features
  6. Maintain consistency with existing scripts for user experience

Adding New DCC Applications

To create a setup script for a new application:

  1. Copy an existing script as a template
  2. Update the $RequiredPackages array with the correct package names
  3. Modify the script header and comments
  4. Create a matching batch file launcher
  5. Test with the target DCC application's Python environment
  6. Create application-specific README
  7. Submit a pull request with test results

Testing Checklist

  • 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

Support & Resources

Internal Support

  • Primary Contact: Michael Wright (DevOps/Systems Engineer)
  • Team: GPL Technologies Engineering Team
  • Documentation: Internal Wiki (link to be provided)

External Resources

Reporting Issues

When reporting issues, please include:

  1. Script name and version
  2. Complete log file contents (from %TEMP%)
  3. Python version(s) installed
  4. DCC application version (if applicable)
  5. Windows version and build number
  6. Error messages and screenshots
  7. Steps to reproduce the issue
  8. Whether using batch file or PowerShell directly

Changelog

Version 1.0.0 (2025-01-20)

  • ✨ 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

Upcoming Features

  • 🔄 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

About

Tools made for simplying certain tasks on Host and Client Machines, inclduing software dependency installation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published