Usare il programma di installazione personalizzato nelle installazioni automatiche
La funzionalità del programma di installazione personalizzato supporta la modalità di installazione automatica, che consente l'installazione e la configurazione automatiche. Ecco come utilizzare questa funzionalità:
Generazione di un pacchetto di installazione personalizzato
Si connetta al suo Devolutions Account in File – Devolutions Account.
Clicchi su gestore del programma di installazione personalizzato, selezioni la versione corrente di Remote Desktop Manager e selezioni la casella Cifra la configurazione con una password nel pacchetto di installazione.
Clicchi su Crea.
Installazione del pacchetto di installazione personalizzato
Il seguente script PowerShell installa automaticamente il pacchetto generato in precedenza e inserisce la password. Si noti che l'inserimento della password avviene solo se ha selezionato la casella Cifra la configurazione con una password nel pacchetto di installazione nel passaggio 2.
Ecco lo script completo da salvare in formato .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()
}
}Durante l'installazione del pacchetto, è importante fornire la password in modo sicuro. Per ottenere questo risultato, utilizzi una named pipe per evitare che la password venga scritta sul disco o registrata nei log.
Per eseguire lo script:
Per inviare la password tramite pipe da una variabile d'ambiente:
Vedere anche
Ultimo aggiornamento
È stato utile?