# Mission 5 — Versionner, restaurer et recetter (Historique des fichiers)

> Mission 5 — Versionner, restaurer et recetter. Sur PC-TECH-xx, configurez l'Historique des fichiers vers le partage 50_Historique de PC-STOCKAGE-xx, enregistrez deux versions d'une procédure, simulez l'écrasement accidentel du planning d'interventions, puis restaurez son dernier contenu correct. Chaque étape est proposée en interface graphique et en PowerShell, avec contrôles de validation à chaqu

*Windows · Intermédiaire · 8 min · 07/08/2026*

---
> **Poste principal :** `PC-TECH-xx` (session `support.tech`) **Poste secondaire :** `PC-STOCKAGE-xx` (uniquement pour l'étape 1, avec élévation admin) **Destination réseau :** `\\PC-STOCKAGE-xx\SupportLab\50_Historique`

---

## Vue d'ensemble

```mermaid
flowchart LR
    J1[Jalon 1<br>Préparer la destination] --> J2[Jalon 2<br>Activer l'Historique<br>+ Version 1]
    J2 --> J3[Jalon 3<br>Version 2]
    J3 --> J4[Jalon 4<br>Erreur simulée<br>+ Restauration]
```

**Règle d'or :** ne passez pas au jalon suivant tant que le contrôle du jalon en cours n'est pas conforme.

---

## Pré-requis (avant de commencer)

-   Les deux VM sont démarrées.
-   La recette de sortie de la mission 4 est validée (volume miroir `S:`, partage `SupportLab`, permissions).
-   Depuis `PC-TECH-xx`, testez la connectivité SMB :

```powershell
Test-NetConnection PC-STOCKAGE-xx -Port 445
```

✅ `TcpTestSucceeded : True` — sinon, reprenez le contrôle réseau de la mission 3.

---

## Jalon 1 — Préparer la destination réseau

### Étape 1 : Donner le droit « Modification » à GRP-SUPPORT-TECH

📍 **Sur** `**PC-STOCKAGE-xx**`**, en administrateur.**

| Dossier | Groupe | Permission |
| --- | --- | --- |
| `S:\SupportLab\50_Historique` | `GRP-SUPPORT-TECH` | Modification |

⚠️ Ne touchez pas à `GRP-SUPPORT-ADMINS` (garde le contrôle total), n'ajoutez pas `GRP-SUPPORT`, n'utilisez aucun « Refuser », ne modifiez pas le partage SMB.

**🖱️ Interface graphique** 1. Explorateur → `S:\SupportLab`. 2. Clic droit sur `50_Historique` → **Propriétés** → **Sécurité**. 3. **Modifier** → **Ajouter** → groupe local `GRP-SUPPORT-TECH`. 4. Cochez **Modification** → OK. 5. **Sécurité** → **Avancé** : vérifiez que la permission s'applique à *Ce dossier, les sous-dossiers et les fichiers*.

**⌨️ PowerShell (admin)**

```powershell
hostname   # doit afficher PC-STOCKAGE-xx

$folder = "S:\SupportLab\50_Historique"
$group  = "$env:COMPUTERNAME\GRP-SUPPORT-TECH"

icacls $folder /grant "${group}:(OI)(CI)M"
icacls $folder   # contrôle
```

-   `(OI)` = hérite sur les fichiers · `(CI)` = hérite sur les sous-dossiers · `M` = Modification

✅ **Attendu :** `GRP-SUPPORT-TECH` apparaît avec `(OI)(CI)(M)` et `GRP-SUPPORT-ADMINS` garde `(F)`.

!!! info
    Si vous avez un message d'erreur, vérifier bien que votre console est en Admin

---

### Étape 2 : Ouvrir le partage avec la bonne identité

📍 **Sur** `**PC-TECH-xx**`**, session** `**support.tech**`**.**

**🖱️ Interface graphique** 1. Fermez les fenêtres Explorateur restées ouvertes vers `PC-STOCKAGE-xx`. 2. Explorateur → tapez : `\\PC-STOCKAGE-xx\SupportLab\50_Historique` 3. Si des identifiants sont demandés : `PC-STOCKAGE-xx\support.tech` 4. ❌ Ne mémorisez pas les identifiants, ne les mettez pas dans le livrable.

**⌨️ PowerShell**

```powershell
hostname   # PC-TECH-xx
whoami     # ...\support.tech
net use    # vérifier les connexions existantes
```

Si une connexion utilise un autre compte :

```powershell
net use \\PC-STOCKAGE-xx\SupportLab /delete
net use \\PC-STOCKAGE-xx\SupportLab /user:PC-STOCKAGE-xx\support.tech *
```

(l'astérisque `*` demande le mot de passe sans l'écrire dans la commande)

---

### Étape 3 : Tester l'écriture réelle

**🖱️ Interface graphique** 1. Dans `50_Historique`, créez `test-ecriture.txt` avec le texte `Test d'écriture`. 2. Rouvrez-le pour vérifier, puis supprimez-le.

**⌨️ PowerShell**

```powershell
$destination = "\\PC-STOCKAGE-xx\SupportLab\50_Historique"
$testFile    = Join-Path $destination "test-ecriture.txt"

Test-Path $destination                                    # True
"Test d'écriture" | Set-Content -Path $testFile -Encoding utf8
Get-Content $testFile                                     # contenu lisible
Remove-Item $testFile
Test-Path $testFile                                       # False
```

🛠️ **Si ça échoue :** - *Chemin introuvable* → `Test-NetConnection PC-STOCKAGE-xx -Port 445`, puis `Get-SmbShare -Name SupportLab` sur le poste stockage. - *Écriture refusée* → vérifiez dans l'ordre : `whoami`, `net use`, appartenance au groupe (`Get-LocalGroupMember -Group "GRP-SUPPORT-TECH"` sur PC-STOCKAGE-xx), permissions (`icacls "S:\SupportLab\50_Historique"`).

---

## Jalon 2 — Activer l'Historique et enregistrer la version 1

📍 **Tout le reste se fait sur** `**PC-TECH-xx**`**, session** `**support.tech**` **uniquement** (jamais `support.admin` : l'Historique protège le profil de l'utilisateur qui le configure).

### Étape 4 : Créer les documents de travail

Dans `Documents\SupportLab` (à créer), créez deux fichiers :

`**procedure-test.txt**` — contenu exact :

```
Version 1 - procédure initiale
```

`**planning-interventions.txt**` — contenu exact :

```
Planning des interventions

09h00 : contrôle du poste PC-TECH-xx
11h00 : vérification du partage SupportLab
14h00 : test de restauration
```

**⌨️ Équivalent PowerShell (optionnel)**

```powershell
$workFolder = "$env:USERPROFILE\Documents\SupportLab"
New-Item -ItemType Directory -Path $workFolder -Force

"Version 1 - procédure initiale" |
    Set-Content "$workFolder\procedure-test.txt" -Encoding utf8

@"
Planning des interventions

09h00 : contrôle du poste PC-TECH-xx
11h00 : vérification du partage SupportLab
14h00 : test de restauration
"@ | Set-Content "$workFolder\planning-interventions.txt" -Encoding utf8
```

### Étape 5 : Sélectionner la destination réseau

**🖱️ Interface graphique (obligatoire — pas de cmdlet supportée)** 1. `Panneau de configuration → Système et sécurité → Enregistrer les copies de sauvegarde de vos fichiers avec l'Historique des fichiers`. 2. **Sélectionner un lecteur** → **Ajouter un emplacement réseau**. 3. Saisissez : `\\PC-STOCKAGE-xx\SupportLab\50_Historique` 4. Sélectionnez l'emplacement, validez, puis cliquez sur **Activer**. 5. Identifiants si demandés : `PC-STOCKAGE-xx\support.tech`. 6. **Laissez la fenêtre ouverte** pour l'étape 6.

⚠️ Une fois activé, ne touchez jamais manuellement aux fichiers créés par l'Historique dans `50_Historique`.

**⌨️ PowerShell (ouvre seulement le panneau)**

```powershell
Start-Process control.exe -ArgumentList "/name Microsoft.FileHistory"
```

### Étape 6 : Lancer et contrôler la première copie

**🖱️ Interface graphique** 1. Cliquez sur **Exécuter maintenant** (si la copie n'a pas démarré seule) et attendez la fin. 2. 📝 **Relevez l'heure de cette 1ʳᵉ copie** (nécessaire pour le livrable). 3. Menu gauche → **Restaurer des fichiers personnels** → `Documents\SupportLab`. 4. Vérifiez la présence des **deux fichiers**. 5. Ouvrez `procedure-test.txt` → doit contenir `Version 1 - procédure initiale`. 6. Ouvrez `planning-interventions.txt` → planning complet. 7. Fermez **sans cliquer sur Restaurer**.

**⌨️ Contrôles PowerShell**

```powershell
Test-Path "\\PC-STOCKAGE-xx\SupportLab\50_Historique"
Get-Content "$env:USERPROFILE\Documents\SupportLab\procedure-test.txt"
Get-Content "$env:USERPROFILE\Documents\SupportLab\planning-interventions.txt"
```

(la vérification des *versions enregistrées* se fait uniquement dans « Restaurer des fichiers personnels »)

🛠️ **Si les fichiers n'apparaissent pas :** vérifiez dans l'ordre — emplacement des fichiers, Historique activé pour `support.tech`, destination = `50_Historique`, destination accessible, copie terminée. Relancez « Exécuter maintenant ».

---

## Jalon 3 — Enregistrer la version 2

### Étape 7 : Modifier la procédure (et uniquement elle)

**🖱️ GUI :** ouvrez `procedure-test.txt`, remplacez tout par :

```
Version 2 - procédure corrigée
```

**⌨️ PowerShell**

```powershell
$file = "$env:USERPROFILE\Documents\SupportLab\procedure-test.txt"
"Version 2 - procédure corrigée" | Set-Content -Path $file -Encoding utf8
Get-Content $file
Get-Item $file | Select-Object FullName, LastWriteTime
```

### Étape 8 : Lancer et contrôler la deuxième copie

**🖱️ Interface graphique** 1. Historique des fichiers → **Exécuter maintenant** → attendez la fin. 2. 📝 **Relevez l'heure de cette 2ᵉ copie.** 3. **Restaurer des fichiers personnels** → `Documents\SupportLab`. 4. Copie la plus récente : `procedure-test.txt` = `Version 2 - procédure corrigée`. 5. Naviguez vers la **copie précédente** (flèches de navigation) : `procedure-test.txt` = `Version 1 - procédure initiale`. 6. Fermez **sans restaurer**.

**⌨️ PowerShell**

```powershell
Start-Process control.exe -ArgumentList "/name Microsoft.FileHistory"
Get-Content "$env:USERPROFILE\Documents\SupportLab\procedure-test.txt"   # version locale = V2
```

🛠️ **Si une seule version est visible :** la 2ᵉ copie doit avoir été lancée *après* la modification et être terminée. Relancez « Exécuter maintenant » puis re-contrôlez.

---

## Jalon 4 — Restaurer un fichier modifié par erreur

### Étape 9 : Simuler la modification accidentelle

Scénario : le technicien voulait annuler l'intervention de 14h00, mais écrase tout le planning.

**🖱️ GUI :** ouvrez `planning-interventions.txt`, sélectionnez tout, remplacez par :

```
Planning annulé
```

Enregistrez, fermez, rouvrez pour constater la perte.

**⌨️ PowerShell**

```powershell
$planningFile = "$env:USERPROFILE\Documents\SupportLab\planning-interventions.txt"
"Planning annulé" | Set-Content -Path $planningFile -Encoding utf8
Test-Path $planningFile     # True
Get-Content $planningFile   # uniquement "Planning annulé"
```

⛔ **Ne lancez PAS de nouvelle copie de l'Historique !** Sinon la version écrasée deviendrait la version la plus récente sauvegardée.

### Étape 10 : Restaurer le dernier contenu correct

**🖱️ Interface graphique (obligatoire)** 1. `Panneau de configuration → Système et sécurité → Historique des fichiers` → **Restaurer des fichiers personnels**. 2. Accédez à `Documents\SupportLab`. 3. Affichez la copie **la plus récente enregistrée avant l'erreur** (= la 2ᵉ copie). 4. Ouvrez `planning-interventions.txt` et **vérifiez le contenu avant de restaurer**. 5. Revenez dans le dossier, sélectionnez **uniquement** `planning-interventions.txt`. 6. Cliquez sur **Restaurer** (bouton vert) et acceptez le remplacement.

⚠️ Ne restaurez pas le dossier entier : `procedure-test.txt` doit rester en version 2.

**⌨️ PowerShell (ouvre seulement le panneau)**

```powershell
Start-Process control.exe -ArgumentList "/name Microsoft.FileHistory"
```

### Étape 11 : Contrôler le résultat

**🖱️ GUI :** dans `Documents\SupportLab` — le planning complet est revenu, et `procedure-test.txt` contient toujours la version 2.

**⌨️ PowerShell**

```powershell
$workFolder    = "$env:USERPROFILE\Documents\SupportLab"
$procedureFile = Join-Path $workFolder "procedure-test.txt"
$planningFile  = Join-Path $workFolder "planning-interventions.txt"

hostname                      # PC-TECH-xx
whoami                        # ...\support.tech
Test-Path $planningFile       # True
Get-Content $planningFile     # planning complet (3 interventions)
Get-Content $procedureFile    # "Version 2 - procédure corrigée"
```

🛠️ **Mauvais contenu restauré ?** Retournez dans l'Historique, choisissez une version antérieure à l'erreur, **contrôlez le contenu avant** de restaurer à nouveau.

---

## Recette de sortie

| # | Vérification | Résultat attendu | Obtenu | Conforme |
| --- | --- | --- | --- | --- |
| 1 | Permission destination | `GRP-SUPPORT-TECH` = `Modification` sur `50_Historique` |  | ☐ |
| 2 | Test d'écriture | création / lecture / suppression OK avec `support.tech` |  | ☐ |
| 3 | Destination | `\\PC-STOCKAGE-xx\SupportLab\50_Historique` sélectionnée |  | ☐ |
| 4 | Historique des fichiers | activé pour le profil `support.tech` |  | ☐ |
| 5 | Première copie | `procedure-test.txt` V1 + planning complet visibles |  | ☐ |
| 6 | Deuxième copie | V2 visible et V1 toujours disponible |  | ☐ |
| 7 | Modification accidentelle | planning = `Planning annulé` avant restauration |  | ☐ |
| 8 | Restauration | planning complet revenu dans le fichier d'origine |  | ☐ |
| 9 | Contrôle final | `procedure-test.txt` toujours en V2 |  | ☐ |

✅ Mission validée uniquement si **toutes** les lignes sont conformes.

---

## Miroir vs Historique des fichiers (à retenir)

| Mécanisme | Rôle | Limite |
| --- | --- | --- |
| Miroir du volume `S:` | disponibilité du stockage si un disque tombe en panne | réplique aussi une suppression ou une mauvaise modification |
| Historique des fichiers | conserve plusieurs états des fichiers du profil | ne couvre que les emplacements inclus et dépend de la destination |

👉 Le miroir n'est **pas une sauvegarde** : une suppression dans `50_Historique`, une corruption de `S:` ou la perte de `PC-STOCKAGE-xx` fait perdre les versions.

---

## Livrable

Fichier PDF nommé : `**J9_NOM_Prenom_Mission5.pdf**` contenant :

1.  La recette de sortie complétée.
2.  L'heure de la 1ʳᵉ et de la 2ᵉ copie.
3.  Le résultat final de `hostname`, `whoami`, `Test-Path`, `Get-Content`.
4.  Deux phrases distinguant miroir et Historique des fichiers.
5.  **4 captures maximum**, chacune avec une phrase explicative : - Historique activé avec la destination réseau - V1 de `procedure-test.txt` après la 1ʳᵉ copie - V2 de `procedure-test.txt` après la 2ᵉ copie - Planning complet après restauration

❌ Aucun mot de passe ni information sensible dans le livrable.
