Microsoft 365 - Click-to-Run - Set Update Channel
Summary
This task will make changes in the registry to set the update channel for Microsoft 365 products to the value set in the Client or Computer level Custom Fields Update Channel.
Sample Run


Dependencies
Microsoft 365 - Click-to-Run - Set Update Channel
Task Creation
Create a new Script Editor style script in the system to implement this task.

Name: Microsoft 365 - Click-to-Run - Set Update Channel
Description: This script will change the registry to set the update channel for Microsoft 365 products to the value set in the Client or Computer level EDF Update Channel.
Category: Custom

Task
Navigate to the Script Editor Section and start by adding a row. You can do this by clicking the Add Row button at the bottom of the script page.
A blank function will appear.
Row 1 Function: Set User Variable
Select Set User Variable from the dropdown menu.
Set UpdateChannel as the variable name and None as the value.
Row 2 Logic: If/Then
Add a new If/Then logic from the Add Logic dropdown menu.
Row 2a Condition: Custom Field
Select Custom Field in place of Output from the dropdown menu.
Select Update Channel (ENUM - ENDPOINT) in the search, Does Not Contain as Comparator, and set None in the Value.
Row 2b Function: Set Pre-Defined Variable
- Add another row and select Set Pre-Defined Variablefrom the dropdown menu.
- Set UpdateChannelin the Variable Name, chooseCustom Field, and selectUpdate Channel (ENUM - ENDPOINT)from the dropdown menu.
Row 3 Logic: If/Then
Add a new If/Then logic from the Add Logic dropdown menu.
Row 3a Condition: Custom Field
Select Custom Field in place of Output from the dropdown menu.
Select Update Channel (ENUM - Client) in the search, Does Not Contain as Comparator, and set None in the Value.
Row 3b Function: Set Pre-Defined Variable
- Add another row and select Set Pre-Defined Variablefrom the dropdown menu.
- Set UpdateChannelin the Variable Name, chooseCustom Field, and selectUpdate Channel (ENUM - Client)from the dropdown menu.
Row 4 Logic: If/Then
Add a new If/Then logic from the Add Logic dropdown menu.
Row 4a Condition: Value
Select Value in place of Output from the dropdown menu.
Select @UpdateChannel@ in the Enter Value, Equals as Comparator, and set None in the Value.
Row 4b Function: Script Exit
Add another row by selecting the ADD ROW button.
- Search and select the Script Exitfunction.
- Input the following:
Please set the update channel either at the client level or computer level in the Custom Field `Update Channel` before running the script.
Row 5 Function: PowerShell Script
Search and select the PowerShell Script function.
The following function will pop up on the screen:
Paste in the following PowerShell script and set the expected time of script execution to 900 seconds. Click the Save button.
Function Set-M365UpdateChannel {[CmdletBinding()]
param (
    [Parameter(Mandatory)]
    [ValidateSet('Current Channel',
        'Monthly Enterprise Channel',
        'Semi-Annual Enterprise Channel',
        'Current Channel (Preview)',
        'Semi-Annual Enterprise Channel (Preview)',
        'Beta Channel',
        'LTSC Channel (upto Office 2019)',
        'LTSC Channel (Preview)',
        'LTSC 2021 Channel (Office 2021+)' )]
    [String]$updateChannel
)
# Variables
$guid = switch ($updateChannel) {
    'Current Channel' {
        '492350f6-3a01-4f97-b9c0-c7c6ddf67d60'
    }
    'Monthly Enterprise Channel' {
        '55336b82-a18d-4dd6-b5f6-9e5095c314a6'
    }
    'Semi-Annual Enterprise Channel' {
        '7ffbc6bf-bc32-4f92-8982-f9dd17fd3114'
    }
    'Semi-Annual Enterprise Channel (Preview)'{
        'b8f9b850-328d-4355-9145-c59439a0c4cf'
    }
    'Current Channel (Preview)' {
        '64256afe-f5d9-4f86-8936-8840a6a4f5be'
    }
    'Beta Channel' {
        '5440fd1f-7ecb-4221-8110-145efaa6372f'
    }
    'LTSC Channel (upto Office 2019)' {
        'f2e724c1-748f-4b47-8fb8-8e0d210e9208'
    }
    'LTSC Channel (Preview)' {
        '2e148de9-61c8-4051-b103-4af54baffbb4'
    }
    'LTSC 2021 Channel (Office 2021+)' {
        '5030841d-c919-4594-8d2d-84ae4f96e58e'
    }
    default {
        '492350f6-3a01-4f97-b9c0-c7c6ddf67d60'
    }
}
$path = 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration'
$Strings = @('CDNBaseUrl', 'UpdateChannel', 'UnmanagedUpdateUrl')
$url = "http://officecdn.microsoft.com/pr/$guid"
# Process
Write-Information "Setting Update Channel to $updateChannel" -InformationAction Continue
foreach ( $string in $strings ) {
    if (( Get-ItemProperty -Path $path -Name $string -ErrorAction SilentlyContinue)."$String" -eq $url ) {
        Write-Information "$string is already set to $updateChannel" -InformationAction Continue
    } else {
        try {
            if ( !( Test-Path -Path $path ) ) {
                New-Item -Path $Path -Force -ErrorAction Stop | Out-Null
            }
            Set-ItemProperty -Path $path -Name $string -Value $url -ErrorAction Stop
            Write-Information "$string has been successfully set to $updateChannel" -InformationAction Continue
        } catch {
            Write-Information "Error: Failed to set $string to $updateChannel. Reason: $($Error[0].Exception.Message)" -InformationAction Continue
        }
    }
}
}
Set-M365UpdateChannel -updateChannel '@UpdateChannel@'
Row 6: Function: Script Log
In the script log message, simply type %output% so that the script will send the results of the PowerShell script above to the output on the Automation tab for the target device.
Completed Task

Output
- Script Log