À partir de Remote Desktop Manager v.2024.3, la fonctionnalité d'installateur personnalisé prend en charge le mode installation sans assistance, ce qui permet une installation et une configuration automatiques. Voici comment utiliser cette fonctionnalité :
-
Se connecter à votre Compte Devolutions dans Fichier – Compte Devolutions.
-
Cliquer sur Gestionnaire d'installateur personnalisé, sélectionner la version actuelle de Remote Desktop Manager, et cocher la case Chiffrer la configuration avec mot de passe dans le paquet d'installation.
-
Cliquer sur Créer.
Le script PowerShell suivant installe automatiquement le paquet généré précédemment et injecte le mot de passe. Notez que l'injection du mot de passe se produit uniquement si vous avez coché la case Chiffrer la configuration avec mot de passe dans le paquet d'installation à l'étape 2.
Le script doit être exécuté en tant qu'administrateur, sinon l'invite UAC ne peut pas apparaître.
Voici le script complet à enregistrer au format .ps1 :
param (
[Parameter(Mandatory = $true, Position = 0, HelpMessage = "Path to MSI for Remote Desktop Manager")]
[ValidateNotNullOrEmpty()]
[string]
$MsiPath,
[switch]
$AskPassword,
[parameter(ValueFromPipeline)][string]$password
)
function Read-Password {
param (
[string]$Prompt = "Enter Password"
)
if ($password) {
$securePassword = ConvertTo-SecureString -AsPlainText -Force $password
}
else {
$securePassword = Read-Host -AsSecureString -Prompt $Prompt
}
$password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto(
[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword)
)
return $password
}
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (!$currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Warning "Not running as administrator. You may run into issues"
}
& 'msiexec.exe' /i "${MsiPath}" /qn
if ($AskPassword) {
$password = Read-Password
$pipeHandle = [System.IO.Pipes.NamedPipeClientStream]::new('.', 'DevolutionsUpdater', [System.IO.Pipes.PipeDirection]::Out)
try {
$pipeHandle.Connect(15000)
$passwordBytes = [System.Text.Encoding]::UTF8.GetBytes($password)
$pipeHandle.Write($passwordBytes, 0, $passwordBytes.Length)
$pipeHandle.Flush()
}
catch {
Write-Error "Failed to connect to installer instance. Is the installer running with administrator or is RDM already installed?"
}
finally {
$pipeHandle.Close()
}
}
Lors de l'installation du paquet, il est important de fournir le mot de passe de manière sécurisée. Pour ce faire, utiliser un tube nommé pour empêcher que le mot de passe soit écrit sur le disque ou consigné.
Exécuter le script :
PS C:\WINDOWS\system32> . '<Path to above shown .ps1 script>' '<Path to RDM msi>' -AskPassword
Acheminer le mot de passe à partir d'une variable d'environnement :
PS C:\WINDOWS\system32> echo $env:MY_PASSWORD | & 'C:\Temp\RdmInstall.ps1' 'C:\Temp\Setup.RemoteDesktopManager.2024.3.0.0.msi' -AskPassword