Install php8.1 ubuntu 20.04

Update system

sudo apt update
sudo apt upgrade

Add repository

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Install php8.1

sudo apt install php8.1

Install features

sudo apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl -y

Enable php8.1 disable php7.4

sudo a2enmod php8.1
sudo a2dismod php7.4

Restart apache

sudo service apache2 restart

running multiple versions: How To Install Multiple PHP Versions with Apache on Ubuntu 22.04/20.04/18.04 (tecadmin.net)

Export powershell scripts from intune

Source: Intune/Get-DeviceManagementScripts.ps1 at master · okieselbach/Intune · GitHub
Source: Get back your Intune PowerShell Scripts – Modern IT – Cloud – Workplace (oliverkieselbach.com)

Import-Module Microsoft.Graph.Intune
Connect-MSGraph

####################################################

#region Initialization code

$m = Get-Module -Name Microsoft.Graph.Intune -ListAvailable
if (-not $m)
{
    Install-Module NuGet -Force
    Install-Module Microsoft.Graph.Intune
}
Import-Module Microsoft.Graph.Intune -Global

#endregion

####################################################

Function Get-DeviceManagementScripts(){
<#
.SYNOPSIS
Get all or individual Intune PowerShell scripts and save them in specified folder.
 
.DESCRIPTION
The Get-DeviceManagementScripts cmdlet downloads all or individual PowerShell scripts from Intune to a specified folder.
Initial Author: Oliver Kieselbach (oliverkieselbach.com)
The script is provided "AS IS" with no warranties.
 
.PARAMETER FolderPath
The folder where the script(s) are saved.
.PARAMETER FileName
An optional parameter to specify an explicit PowerShell script to download.
.EXAMPLE
Download all Intune PowerShell scripts to the specified folder
Get-DeviceManagementScripts -FolderPath C:\temp 
.EXAMPLE
Download an individual PowerShell script to the specified folder
Get-DeviceManagementScripts -FolderPath C:\temp -FileName myScript.ps1
#>

    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true)][String] $FolderPath,
        [Parameter(Mandatory=$false)][String] $FileName
    )

    $graphApiVersion = "Beta"
    $graphUrl = "https://graph.microsoft.com/$graphApiVersion"

    $result = Invoke-MSGraphRequest -Url "$graphUrl/deviceManagement/deviceManagementScripts" -HttpMethod GET

    if ($FileName){
        $scriptIds = $result.value | Select-Object id,fileName | Where-Object -Property fileName -eq $FileName
        $script = Invoke-MSGraphRequest -Url "$graphUrl/deviceManagement/deviceManagementScripts/$($scriptId.id)" -HttpMethod GET
        [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($($script.scriptContent))) | Out-File -Encoding ASCII -FilePath $(Join-Path $FolderPath $($script.fileName))
    }
    else{
        $scriptIds = $result.value | Select-Object id,fileName
        foreach($scriptId in $scriptIds){
            $script = Invoke-MSGraphRequest -Url "$graphUrl/deviceManagement/deviceManagementScripts/$($scriptId.id)" -HttpMethod GET
            [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($($script.scriptContent))) | Out-File -Encoding ASCII -FilePath $(Join-Path $FolderPath $($script.fileName))
        }
    }
}

Connect-MSGraph | Out-Null

Get-DeviceManagementScripts -FolderPath C:\temp
Secured By miniOrange