Aller au contenu principal

Configuration de base d’un PC partagé dans Intune (Partie 1)

Fait : En ce moment, tous les PCs utilisés par plusieurs personnes ont un logiciel appelé DeepFreeze. Ce logiciel permet de rediriger tout c’qui est écrit sur le disque local (installations d’applis, changements de paramètres, données sauvegardées) vers une surcouche virtuelle. Cette surcouche est temporaire pis elle est effacée quand on redémarre. Y’a un horaire de maintenance entre 00h01 pis 06h00 tous les jours. Ça permet de faire les mises à jour Windows pis d’autres mises à jour si elles sont planifiées pis envoyées aux appareils en question. (Pas automatiquement)

Problème : Ce logiciel est hébergé localement pis semble avoir des problèmes intermittents. En plus, les plaintes qu’on entend souvent, c’est : des troubles pour mettre à jour les applis via Intune (pas d’horaire), le serveur fige souvent pis des problèmes pour retourner en hibernation pendant que les mises à jour Windows sont en cours.

Hypothèse : Pour trouver une nouvelle solution avec les outils qu’on a, l’approche va être d’utiliser Intune, les outils de clic droit pis les fonctionnalités de Windows 10/11 comme alternative à DeepFreeze.

Plan :

Politique dans Intune

  • La politique de PC partagé dans Intune permet quelques configurations

    Politique PC partagé

  • Première option, c’est d’activer le mode PC partagé

  • Deuxième, tu peux utiliser un compte invité, un compte de domaine ou une combinaison des deux. Pour cette config, juste le domaine.

  • Troisième, la gestion des comptes permet de supprimer les comptes à la déconnexion pis pendant les périodes de maintenance du système. Dans ce scénario-là, on va pas le configurer.

  • Quatrième, le stockage local. Avec le stockage local, les utilisateurs peuvent sauvegarder pis voir des fichiers sur le disque dur de l’appareil. ** D’après des tests précédents, restreindre le stockage local dans la politique de PC partagé protège pas bien les disques (ça enlève le disque C: dans l’explorateur de fichiers, mais ça bloque pas les commandes via Terminal ou PowerShell) **. Pour régler ce problème, on va utiliser le filtre d’écriture unifié (UWF), une fonctionnalité de Windows.

  • Cinquième, les politiques d’alimentation. Les politiques d’alimentation empêchent les utilisateurs de changer les paramètres d’alimentation, désactivent l’hibernation pis remplacent toutes les transitions d’état d’alimentation — comme fermer le couvercle — par le mode veille. Ça va être activé, vu qu’on veut, pour ces tests-là, que les appareils fonctionnent sans arrêt.

  • Sixième, délai avant veille (en secondes). Ça s’explique tout seul. On garde la valeur par défaut (60 minutes).

  • Septième, connexion quand le PC se réveille... oui.

  • Huitième, heure de début de la maintenance. Mettons ça à 00h01 tous les jours. Dans ce cas-ci, ça fait 1. Le but : Voir si les applis, quand c’est nécessaire, vont être mises à jour pendant cette période-là.

  • Neuvième, politiques éducatives. Une série de configs qu’on va pas utiliser dans ce setup.

Voilà à quoi ça ressemble :

PC partagé configuré

Groupes dans Intune

  • J’vais créer 4 groupes pour 4 machines.
    • Le premier groupe va avoir UWF géré pis configuré par CSP dans Intune pis la politique de PC partagé appliquée.
    • Le deuxième groupe va avoir UWF installé pis configuré localement pis la politique de PC partagé appliquée.
    • Le troisième groupe va avoir UWF géré pis configuré par CSP dans Intune sans la politique de PC partagé.
    • Le quatrième groupe va avoir UWF installé pis configuré localement sans la politique de PC partagé. Exemple de groupes

Configuration des appareils dans Intune CSP

  • On dirait que pour gérer UWF avec Intune, faut créer un CSP personnalisé avec plusieurs paramètres OMA-URI

    Config CSP UWF

  • Dès le début, y’a une erreur dans la config :

    Erreur UWF

  • On dirait que ça marche pas ou que c’est un type de service de gestion/supervision via Intune

  • OK, j’vais prendre une nouvelle approche. Faisons un script PS :

    UWFsetupIntune.ps1
        # Activer le filtre d’écriture unifié (UWF)
    uwfmgr filter enable

    # Protéger le disque C:
    uwfmgr volume protect C:

    # Définir la taille de la surcouche (2 Go)
    uwfmgr overlay set-size 2048

    # Activer le mode de maintenance UWF
    uwfmgr servicing enable

    # Définir l’heure de début de la maintenance quotidienne (20h00 UTC = 15h00 HE)
    $servicingStartTime = "20:00:00"
    $servicingDuration = 300 # 5 heures en minutes

    # Appliquer l’horaire de maintenance
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UWF\Servicing" /v StartTime /t REG_SZ /d $servicingStartTime /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UWF\Servicing" /v Duration /t REG_DWORD /d $servicingDuration /f

    # Exclusions de fichiers (pour que les logs pis les fichiers liés à Intune soient pas effacés au redémarrage)
    uwfmgr file add-exclusion C:\Windows\Logs
    uwfmgr file add-exclusion C:\ProgramData\Microsoft\Intune

    # Appliquer les changements pis redémarrer pour activer UWF
    Restart-Computer -Force
  • Bon, cette approche pourrait marcher, mais on dirait qu’il faut activer la fonctionnalité avant d’exécuter le script. Voici une nouvelle version :

    UWFSetupIntune2.ps1
        # Fonction de journalisation
    $logFile = "C:\Windows\Temp\UWF_Setup.log"
    function Write-Log {
    param ([string]$message)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    Add-Content -Path $logFile -Value "$timestamp - $message"
    }

    Write-Log "Démarrage de la configuration du filtre d’écriture unifié (UWF)..."

    # Activer la fonctionnalité filtre d’écriture unifié (si pas déjà installée)
    $uwfFeature = Get-WindowsOptionalFeature -Online -FeatureName "Client-UnifiedWriteFilter"
    if ($uwfFeature.State -ne "Enabled") {
    Write-Log "Activation de la fonctionnalité UWF..."
    try {
    Enable-WindowsOptionalFeature -Online -FeatureName "Client-UnifiedWriteFilter" -All -NoRestart -ErrorAction Continue
    Write-Log "Fonctionnalité UWF activée avec succès."
    } catch {
    Write-Log "Échec de l’activation de la fonctionnalité UWF : $_"
    exit 1
    }
    } else {
    Write-Log "La fonctionnalité UWF est déjà activée."
    }

    # Activer le filtre d’écriture unifié (UWF)
    Write-Log "Activation de UWF..."
    uwfmgr filter enable

    # Protéger le disque C:
    Write-Log "Protection du disque C:..."
    uwfmgr volume protect C:

    # Définir la taille de la surcouche (2 Go)
    Write-Log "Définition de la taille de la surcouche à 2 Go..."
    uwfmgr overlay set-size 2048

    # Activer le mode de maintenance UWF
    Write-Log "Activation du mode de maintenance..."
    uwfmgr servicing enable

    # Définir l’heure de début de la maintenance quotidienne (15h00 HE = 20h00 UTC)
    $servicingStartTime = "20:00:00"
    $servicingDuration = 300 # 5 heures en minutes

    Write-Log "Application de l’horaire de maintenance..."
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UWF\Servicing" /v StartTime /t REG_SZ /d $servicingStartTime /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UWF\Servicing" /v Duration /t REG_DWORD /d $servicingDuration /f

    # Exclusions de fichiers (pour que les logs pis les fichiers liés à Intune soient pas effacés au redémarrage)
    Write-Log "Ajout des exclusions de fichiers..."
    uwfmgr file add-exclusion C:\Windows\Logs
    uwfmgr file add-exclusion C:\ProgramData\Microsoft\Intune
    uwfmgr file add-exclusion C:\Windows\Temp

    # Appliquer les changements pis redémarrer pour activer UWF
    Write-Log "Redémarrage du système pour appliquer les paramètres UWF..."
    Restart-Computer -Force
  • En gros... J’veux que la fonctionnalité Windows soit activée, protéger le disque C: avec des exclusions pis faire la maintenance (servicing) à partir de 15h00 pendant 5 heures. Chaque étape journalisée dans Windows\Temp.

  • Ça marche!!! Dès que l’appareil se synchronise avec Intune, le script est appliqué. Note Quand tu travailles avec des scripts pis Intune, si t’as une erreur, t’as juste à uploader une version différente du script pis synchroniser pour réessayer.