Démarrer la version portable de Remote Desktop Manager

Parfois, les utilisateurs n'ont pas le privilège d'installer Remote Desktop Manager sur leur machine. Cet obstacle peut être contourné en installant une version portable de Remote Desktop Manager et en s'appuyant sur une variable d'environnement pour définir le chemin vers le runtime .NET requis.

Notez que cette méthode n'est pas pleinement testée et peut être instable par conséquent.

Voici les étapes :

  1. Télécharger les runtimes .NET et .NET Windows Desktop compressés. Ceux-ci ne sont pas disponibles sur la page de téléchargement de Microsoft, ils doivent plutôt être téléchargés via les versions officielles du projet.

  2. Extraire les archives runtime dans le même répertoire.

  3. Définir la variable d'environnement DOTNET_ROOT pour pointer vers le répertoire runtime .NET extrait.

  4. Lancer RemoteDesktopManager.exe avec la variable d'environnement correctement définie (depuis le même terminal/invite).

Voici un script simple pour le configurer automatiquement, seuls le runtime .NET, le runtime .NET Windows Desktop et le dossier de destination doivent être fournis :

function BootstrapPortableRDM {
    <#
    .SYNOPSIS
        Bootstrap a portable installation of RDM 2024.x
    .DESCRIPTION
        You must provide the zipped .NET Runtime and .NET Windows Desktop Runtime. The
        zip releases are not available on the Microsoft download page but can be found
        in the project releases at https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/8.0/releases.json.
        Additionally you must provide the zipped Remote Desktop Manager and a location to
        create the portable package root.
        A launch script will be generated in the packaged `RDM` directory.
    .EXAMPLE
        $PackageRoot=Join-Path $Env:USERPROFILE "portable"
        ./setup-environment.ps1 -DotNetRuntimeArchiveFilePath "dotnet-runtime-8.0.4-win-x64.zip" -DotNetDesktopRuntimeArchiveFilePath "windowsdesktop-runtime-8.0.4-win-x64.zip" -RemoteDesktopManagerArchiveFilePath "Devolutions.RemoteDesktopManager.Bin.2024.1.25.0.zip" -PackageRootDirectory $PackageRoot
        & $(Join-Path $PackageRoot "RDM/launch-rdm.ps1")
    #>
    param(
        [Parameter(Mandatory, HelpMessage="The .NET Runtime .zip archive")]
        [string] $DotNetRuntimeArchiveFilePath,

        [Parameter(Mandatory, HelpMessage="The .NET Windows Desktop Runtime .zip archive")]
        [string] $DotNetDesktopRuntimeArchiveFilePath,

        [Parameter(Mandatory, HelpMessage="The Remote Desktop Manager .zip archive")]
        [string] $RemoteDesktopManagerArchiveFilePath,

        [Parameter(Mandatory, HelpMessage="The root packaging folder")]
        [string] $PackageRootDirectory
    )

    $ErrorActionPreference = "stop"

    $DotNetRuntimeArchiveFilePath = Resolve-Path $DotNetRuntimeArchiveFilePath
    $DotNetDesktopRuntimeArchiveFilePath= Resolve-Path $DotNetDesktopRuntimeArchiveFilePath
    $RemoteDesktopManagerArchiveFilePath= Resolve-Path $RemoteDesktopManagerArchiveFilePath

    New-Item -Path $PackageRootDirectory -Type Directory -Force
    Push-Location $PackageRootDirectory

    Expand-Archive $RemoteDesktopManagerArchiveFilePath -DestinationPath "RDM"
    Expand-Archive $DotNetRuntimeArchiveFilePath -DestinationPath "dotnet"
    Expand-Archive $DotNetDesktopRuntimeArchiveFilePath -DestinationPath "dotnet"

    $LaunchScript = @'
$DotNetRoot = Join-Path $(Get-Item $PSScriptRoot).Parent.FullName "dotnet"
$Env:DOTNET_ROOT=$DotNetRoot
$RdmDir = Join-Path $(Get-Item $PSScriptRoot).Parent.FullName "RDM"
$Rdm = Join-Path $RdmDir "RemoteDesktopManager.exe"
& "$Rdm"
'@
    $LaunchScript | Out-File $(Join-Path RDM "launch-rdm.ps1")

    Pop-Location
}

BootstrapPortableRDM @args
Devolutions Forum logo Donnez-nous vos commentaires