Files
DeployCenter/Modules/Configuration.psm1
T
benoit e067721763 Ajout du support de unattend
Ajout du script cmd à utiliser pour lancer DeployCenter
2026-10-17 20:41:41 +02:00

55 lines
2.4 KiB
PowerShell

# DeployCenter - Lecture des préférences utilisateur
# Lecture seule : ce module ne modifie jamais DeployCenter.ini.
function Read-DeployCenterConfig {
[CmdletBinding()]
param([Parameter(Mandatory=$true)][string]$ConfigPath)
$config = @{
Theme = 'Light'
SourcePaths = '%DEPLOY_VOLUME%'
VncPassword = ''
WinRESizeMB = 1024
UnattendAdminName = 'admin'
UnattendAdminDisplayName = 'Administrateur local'
UnattendAdminGroup = 'Administrators'
UnattendAdminPasswordBase64 = ''
}
if (-not (Test-Path -LiteralPath $ConfigPath -PathType Leaf)) { return $config }
$section = ''
foreach ($line in (Get-Content -LiteralPath $ConfigPath -ErrorAction SilentlyContinue)) {
$trimmed = $line.Trim()
if (-not $trimmed -or $trimmed.StartsWith(';') -or $trimmed.StartsWith('#')) { continue }
if ($trimmed -match '^\[(.+)\]$') { $section = $matches[1].Trim(); continue }
if ($trimmed -notmatch '^([^=]+)=(.*)$') { continue }
$key = $matches[1].Trim()
$value = $matches[2].Trim()
if ($section -ieq 'General' -and $key -ieq 'Theme' -and $value -match '^[A-Za-z0-9_-]+$') {
$config.Theme = $value
} elseif ($section -ieq 'Sources' -and $key -ieq 'Paths') {
$config.SourcePaths = $value
} elseif ($section -ieq 'UltraVNC' -and $key -ieq 'Password') {
$config.VncPassword = $value
} elseif ($section -ieq 'Partitioning' -and $key -ieq 'WinRESizeMB') {
$sizeMB = 0
if (-not [int]::TryParse($value, [ref]$sizeMB) -or $sizeMB -le 0) {
throw "Le paramètre [Partitioning] WinRESizeMB doit être un entier strictement positif. Valeur reçue : '$value'."
}
$config.WinRESizeMB = $sizeMB
} elseif ($section -ieq 'Unattend' -and $key -ieq 'AdminName') {
$config.UnattendAdminName = $value
} elseif ($section -ieq 'Unattend' -and $key -ieq 'AdminDisplayName') {
$config.UnattendAdminDisplayName = $value
} elseif ($section -ieq 'Unattend' -and $key -ieq 'AdminGroup') {
$config.UnattendAdminGroup = $value
} elseif ($section -ieq 'Unattend' -and $key -ieq 'AdminPasswordBase64') {
$config.UnattendAdminPasswordBase64 = $value
}
}
return $config
}
Export-ModuleMember -Function Read-DeployCenterConfig