diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb8047f..e611604 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -51,7 +51,7 @@ powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 `
-ConfirmDiskErase -RestartWhenComplete -CopyLocally Sources,Drivers
```
-Pour laisser Windows gérer OOBE, remplacer les paramètres de profil et de nom d’hôte par `-UnattendProfileId OOBE`. La commande retourne le code de processus `0` en cas de succès et `1` si la préparation ou le déploiement échoue. Après une tentative d’installation, le journal complet est copié à la racine de `C:\`, en cas de succès comme d’échec ; l’original reste dans `Logs`.
+Pour laisser Windows gérer OOBE, remplacer les paramètres de profil et de nom d’hôte par `-UnattendProfileId OOBE`. La commande retourne le code de processus `0` en cas de succès et `1` si la préparation ou le déploiement échoue. Après une tentative d’installation, le journal complet est copié à la racine de `C:\`, en cas de succès comme d’échec ; l’original reste dans `%TEMP%\DeployCenter` jusqu’au redémarrage de WinPE.
Conserver à côté du script les ressources habituelles du projet (`Assets`, `uvnc`, `HardwareInfo.ps1`, etc.). Les dossiers `Modules` et `Themes` doivent rester à côté de `DeployCenter.ps1`.
@@ -93,6 +93,8 @@ Pour produire `AdminPasswordBase64`, lancer `powershell.exe -ExecutionPolicy Byp
## Historique récent
+- Les journaux de session sont maintenant créés sous `%TEMP%\DeployCenter` par `Logging.psm1`, afin que le dossier du dépôt puisse être en lecture seule. La copie finale du journal à la racine de `C:\` est conservée ; les deux manuels et le changelog le précisent.
+- Le template Unattend `OEMInstallation.xml` définit `PreventDeviceEncryption=true` pour empêcher l’activation automatique du chiffrement de l’appareil par BitLocker. Il désactive aussi l’hibernation et la veille automatique sur secteur. Les deux manuels documentent ces réglages ; le parcours « Avec OOBE » reste sans fichier Unattend.
- Correction des chemins d’images dans les deux README : le dépôt suit le dossier `Images/` avec une majuscule, nécessaire au rendu Gitea sensible à la casse ; l’espace du nom de fichier est encodé en `%20`.
- Intégration des six captures de `Images/` dans `README.md` et `README-en.md`, aux étapes de sélection des sources, de progression et de fin du déploiement.
- Traduction anglaise du manuel utilisateur dans `README-en.md`, avec conservation des commandes et identifiants de profils.
diff --git a/DeployCenter.ps1 b/DeployCenter.ps1
index 2a2b308..8900b09 100644
--- a/DeployCenter.ps1
+++ b/DeployCenter.ps1
@@ -140,7 +140,6 @@ try {
$script:AssetsRoot = Join-Path $script:DeployRoot "Assets"
$script:LogoPath = Join-Path $script:AssetsRoot "logo.png"
$script:LogoDarkPath = Join-Path $script:AssetsRoot "logo-dark.png"
-$script:LogRoot = Join-Path $script:DeployRoot "Logs"
# Network detection is centralized in Modules\\Network.psm1.
$networkModulePath = Join-Path $PSScriptRoot "Modules\\Network.psm1"
@@ -156,7 +155,7 @@ if (-not (Test-Path -LiteralPath $loggingModulePath -PathType Leaf)) {
throw "Logging module not found: $loggingModulePath"
}
. ([scriptblock]::Create([System.IO.File]::ReadAllText($loggingModulePath)))
-Initialize-DeployCenterLogging -LogRoot $script:LogRoot -IPv4 $script:DeployIPv4
+Initialize-DeployCenterLogging -IPv4 $script:DeployIPv4
# Keep the main script scope so Write-Log remains available to WinForms callbacks.
$script:SourceLogAction = {
param($Message, $Level, [bool]$SystemOutput = $false)
diff --git a/Logs/.gitignore b/Logs/.gitignore
deleted file mode 100644
index db56141..0000000
--- a/Logs/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# Ignorer tous les fichiers de ce répertoire
-*
-
-# Sauf celui-ci
-!.gitignore
\ No newline at end of file
diff --git a/Modules/Logging.psm1 b/Modules/Logging.psm1
index 9a8f4c1..c51726a 100644
--- a/Modules/Logging.psm1
+++ b/Modules/Logging.psm1
@@ -4,14 +4,15 @@
function Initialize-DeployCenterLogging {
[CmdletBinding()]
param(
- [Parameter(Mandatory = $true)]
- [string]$LogRoot,
-
[AllowNull()]
[string]$IPv4 = $null
)
- $script:LogRoot = $LogRoot
+ $tempRoot = [Environment]::GetEnvironmentVariable('TEMP')
+ if ([string]::IsNullOrWhiteSpace($tempRoot)) {
+ throw 'The TEMP environment variable is not defined.'
+ }
+ $script:LogRoot = Join-Path $tempRoot 'DeployCenter'
if (-not (Test-Path -LiteralPath $script:LogRoot -PathType Container)) {
New-Item -Path $script:LogRoot -ItemType Directory -Force -ErrorAction Stop | Out-Null
}
diff --git a/README-en.md b/README-en.md
index a390ccf..618c7ac 100644
--- a/README-en.md
+++ b/README-en.md
@@ -159,6 +159,8 @@ Enter the password at the hidden prompt, then put the resulting value in `[Unatt
The `SupportProvider`, `SupportURL`, and `SupportAppURL` keys are optional. `SupportURL` is a support website; `SupportAppURL` is the protocol for a support application. `WallpaperPath` accepts an absolute or DeployCenter-relative `.png`, `.jpg`, or `.bmp` path. When empty, the Windows wallpaper is left unchanged. These customizations apply when an Unattend profile is selected, not with **Use OOBE**.
+The `OEMInstallation` Unattend profile asks Windows not to enable automatic BitLocker device encryption (`PreventDeviceEncryption=true`). It also disables hibernation and automatic sleep while on AC power; battery behavior is unchanged. Disabling hibernation also disables Fast Startup. These settings do not apply to **Use OOBE**, which keeps the default Windows behavior. A policy or manual action can still enable BitLocker later.
+
## Unattended deployment
`-NonInteractive` starts deployment without asking for the choices on the first page. All required parameters must be provided, and `-ConfirmDiskErase` is mandatory. The progress window is still displayed.
@@ -195,7 +197,7 @@ Conditional and optional parameters:
## Logs and troubleshooting
-The **Log** button opens the session log. Log files are created in `Logs` with the detected IPv4 address and a timestamp. After a deployment attempt, a copy is placed at the root of `C:\` so it remains accessible if the network share is no longer available.
+The **Log** button opens the session log. The file is created in `%TEMP%\DeployCenter` with the detected IPv4 address and a timestamp, so the DeployCenter repository can remain read-only. After a deployment attempt, a copy is placed at the root of `C:\` so it remains accessible if the network share is no longer available. WinPE clears `%TEMP%` on restart.
If deployment fails:
diff --git a/README.md b/README.md
index 4897b09..877c666 100644
--- a/README.md
+++ b/README.md
@@ -159,6 +159,8 @@ Saisissez le mot de passe à l’invite masquée, puis placez la valeur produite
Les clés `SupportProvider`, `SupportURL` et `SupportAppURL` sont facultatives. `SupportURL` correspond à un site Web d’assistance ; `SupportAppURL` correspond au protocole d’une application d’assistance. `WallpaperPath` accepte un chemin `.png`, `.jpg` ou `.bmp`, absolu ou relatif au dossier DeployCenter ; vide, il laisse le fond Windows inchangé. Ces personnalisations sont appliquées avec un profil Unattend, pas avec **Use OOBE**.
+Le profil Unattend `OEMInstallation` demande à Windows de ne pas activer le chiffrement automatique de l’appareil via BitLocker (`PreventDeviceEncryption=true`). Il désactive aussi l’hibernation et la veille automatique lorsque le PC est sur secteur ; le comportement sur batterie reste inchangé. La désactivation de l’hibernation désactive également le démarrage rapide. Ces options ne s’appliquent pas au choix **Avec OOBE**, qui conserve le comportement Windows par défaut. Une stratégie ou une action manuelle peut toujours activer ultérieurement le chiffrement BitLocker.
+
## Déploiement automatisé
`-NonInteractive` lance le déploiement sans demander les choix de la première page. Tous les paramètres requis doivent être fournis et `-ConfirmDiskErase` est obligatoire. L’application affiche toujours la fenêtre de progression.
@@ -195,7 +197,7 @@ Paramètres conditionnels et facultatifs :
## Journaux et dépannage
-Le bouton **Journal** ouvre le journal de session. Les fichiers sont créés dans `Logs` avec l’adresse IPv4 détectée et l’horodatage. Après une tentative de déploiement, une copie du journal est placée à la racine de `C:\` pour rester accessible même si le partage réseau n’est plus disponible.
+Le bouton **Journal** ouvre le journal de session. Le fichier est créé dans `%TEMP%\DeployCenter` avec l’adresse IPv4 détectée et l’horodatage ; le dépôt DeployCenter peut donc rester en lecture seule. Après une tentative de déploiement, une copie du journal est placée à la racine de `C:\` pour rester accessible même si le partage réseau n’est plus disponible. Le contenu de `%TEMP%` est supprimé au redémarrage de WinPE.
En cas d’échec :
diff --git a/Unattend/Templates/OEMInstallation.xml b/Unattend/Templates/OEMInstallation.xml
index 1734928..3670ce5 100644
--- a/Unattend/Templates/OEMInstallation.xml
+++ b/Unattend/Templates/OEMInstallation.xml
@@ -5,6 +5,9 @@
+
+ true
+
@@ -17,6 +20,16 @@
Enable NumLock for new users
cmd.exe /c reg load HKU\DeployCenterDefaultUser "%SystemDrive%\Users\Default\NTUSER.DAT" && reg add "HKU\DeployCenterDefaultUser\Control Panel\Keyboard" /v InitialKeyboardIndicators /t REG_SZ /d 2 /f && reg unload HKU\DeployCenterDefaultUser
+
+ 3
+ Disable hibernation
+ cmd.exe /c powercfg.exe /hibernate off
+
+
+ 4
+ Disable automatic sleep on AC power
+ cmd.exe /c powercfg.exe /change standby-timeout-ac 0
+