Utiliser l'installateur personnalisé dans les configurations sans assistance
Générer un package de programme d'installation personnalisé
Installer le package du programme d'installation personnalisé
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()
}
}Voir aussi
PrécédentUtiliser la palette de commandes dans les sessions SSHSuivantMigration du chiffrement des paramètres spécifiques à l'utilisateur
Mis à jour
Ce contenu vous a-t-il été utile ?