Files
DeployCenter/Modules/Configuration.psm1
T
benoit 8d5014b4aa Ajout de la partie application des changements sur le disque
Ajout de l'installation de Windows
Correction du chargement des images iso.
Correction de la définition de la taille de WinRE.
2026-10-17 03:56:53 +02:00

43 lines
1.7 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
}
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 -lt 990) {
throw "Le paramètre [Partitioning] WinRESizeMB doit être un entier supérieur ou égal à 990. Valeur reçue : '$value'."
}
$config.WinRESizeMB = $sizeMB
}
}
return $config
}
Export-ModuleMember -Function Read-DeployCenterConfig