# Windows Server

# Installer Windows Server 2022 sur VMware Workstation

On crée une nouvelle machine virtuelle :

- On choisit "Custom (advanced) [![image-1640639060540.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/q5uHVYeiU47l9KfK-image-1640639060540.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/q5uHVYeiU47l9KfK-image-1640639060540.png)
- On laisse l'option par défaut. [![image-1640639091623.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/vE4pSoDQcgcpEbuf-image-1640639091623.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/vE4pSoDQcgcpEbuf-image-1640639091623.png)
- On choisit la dernière. [![image-1640639104964.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/MvPNizXYwTwDjVAE-image-1640639104964.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/MvPNizXYwTwDjVAE-image-1640639104964.png)
- On choisit "Windows Server 2019" (Windows Server 2022 n'est officiellement pas supporté). [![image-1640639136014.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/lxPRDipWHO1t2GFj-image-1640639136014.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/lxPRDipWHO1t2GFj-image-1640639136014.png)
- On choisit le chemin. [![image-1640639210519.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/nhQlWCd3SdDc5avm-image-1640639210519.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/nhQlWCd3SdDc5avm-image-1640639210519.png)
- On laisse par défaut (on peut cocher "Secure Boot"). [![image-1640639258274.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/XM1Dz23Qyc6Nxb3z-image-1640639258274.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/XM1Dz23Qyc6Nxb3z-image-1640639258274.png)
- On choisit 2 &amp; 1 (ou plus selon votre machine). [![image-1640639281966.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/2G0w1MSZ62JJjyqc-image-1640639281966.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/2G0w1MSZ62JJjyqc-image-1640639281966.png)
- 2048 suffit. [![image-1640639298646.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/zrpPskBawPCQzFml-image-1640639298646.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/zrpPskBawPCQzFml-image-1640639298646.png)
- On choisit le réseau que l'on veut (Bridge si on veut que la machine accède à notre réseau local). [![image-1640639347516.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/621iguy2pw14AqL0-image-1640639347516.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/621iguy2pw14AqL0-image-1640639347516.png)
- On laisse toutes les options suivantes par défaut.
- Une fois la machine créée, on modifie les paramètres puis on indique le chemin de notre ISO.

On peut ensuite démarrer la machine virtuelle.

Une fois allumée, on presse une touche.

On choisit la langue et on clique sur "Installer maintenant".

[![image-1640639466290.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/T7XQK9FQNrm4hWvt-image-1640639466290.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/T7XQK9FQNrm4hWvt-image-1640639466290.png)

On rentre notre clé maintenant ou on la rentre plus tard.

[![image-1640639531388.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/p5KH8sR2ljyEyGJj-image-1640639531388.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/p5KH8sR2ljyEyGJj-image-1640639531388.png)

On choisit la seconde option.

[![image-1640639556937.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/iV3E2JOu76iDndKT-image-1640639556937.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/iV3E2JOu76iDndKT-image-1640639556937.png)

On accepte les termes, puis on choisit "Personnalisé", on clique sur notre disque et "Suivant".

[![image-1640639600049.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/00pxMhdUShCfK9wD-image-1640639600049.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/00pxMhdUShCfK9wD-image-1640639600049.png)

L'installation s'effectue. Une fois terminée, on tape un mot de passe pour le compte Administrateur.

[![image-1640639836628.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/is9XTImGrOOeDtZX-image-1640639836628.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/is9XTImGrOOeDtZX-image-1640639836628.png)

Voila !

[![image-1640640354153.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/2IISBTrmP3m1GgJG-image-1640640354153.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/2IISBTrmP3m1GgJG-image-1640640354153.png)

# Préparation de Windows Server 2019 avant l'installation de rôle(s)

### Renommage du serveur

Tout d'abord, nous allons renommer notre serveur.

Dans le gestionnaire de serveur, on clique sur l'élément en bleu à droite de "Nom de l'ordinateur". De base, il commence par "WIN-" suivi de chiffres et lettres générés aléatoirement.

[![image003.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/D5UR9fGPEAat1Tpi-image003.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/D5UR9fGPEAat1Tpi-image003.png)

On clique ensuite sur la case "Modifier...".

[![image004.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Bt56Tuq14gPpWHup-image004.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Bt56Tuq14gPpWHup-image004.png)

On défini un nom. Par exemple, SRV-DC01.

[![image005.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yWhdfZGHPGbzdbzl-image005.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yWhdfZGHPGbzdbzl-image005.png)

Il nous demandera de redémarrer. On redémarre le serveur.

### Attribution d'une adresse IPv4 statique

Ensuite, on attribue une adresse IP statique au serveur. Dans le gestionnaire de serveur, on clique sur l'élément bleu à droite du nom de la carte réseau, ici "Ethernet0".

[![image006.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/LlkMrXQGoZvScQOH-image006.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/LlkMrXQGoZvScQOH-image006.png)

On clique droit sur la carte réseau, puis "Propriétés".

[![image007.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Ls2FFlPmeetalWuk-image007.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Ls2FFlPmeetalWuk-image007.png)

On clique sur "Protocole Internet version 4 (TCP/IPv4)" puis "Propriétés".

[![image008.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/ofLbW96TCmSdCci2-image008.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/ofLbW96TCmSdCci2-image008.png)

On coche sur "Utiliser l'adresse IP suivant : " puis on attribue l'adresse IP, le masque de sous-réseau et la passerelle.

On définit ensuite l'adresse IP du serveur DNS.

[![image009.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/18DjuWgbxbEnSePP-image009.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/18DjuWgbxbEnSePP-image009.png)

### Désactivation de l'UAC

Pour faciliter la tâche d'administration, j'ai choisi de désactiver l'UAC.

Dans le menu démarrer, on recherche UAC.

On clique ensuite sur "Modifier les paramètres de contrôle du compte d'utilisateur".

[![image010.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/T6bdIw4ZLPsY8Niy-image010.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/T6bdIw4ZLPsY8Niy-image010.png)

On choisit "Ne jamais m'avertir" pour les administrateurs.

[![image011.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/NUKltFLdNz2ywY9c-image011.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/NUKltFLdNz2ywY9c-image011.png)

### Mise à jour du serveur

Une fois cela fait, on va mettre à jour le serveur. Dans Windows Update, on recherche les dernières mises à jour puis on les installe, et on redémarre si nécessaire.

Il est primordial de mettre à jour le serveur pour le protéger des failles connues de Microsoft.

# Changer le port RDP par défaut

On se rend dans regedit (Win + r, regedit) puis on se rend dans HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp  
On modifie l'entrée "PortNumber".

[![image-1611598837194.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/uPqfkxK6R7s5JPnz-image-1611598837194.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/uPqfkxK6R7s5JPnz-image-1611598837194.png)

On ajoute ensuite une règle dans le pare-feu pour autoriser le trafic entrant.

# Installer un pilote Wifi sur Windows Server

---

## <span style="color: #3366ff;">Présentation</span>

Si on souhaite utiliser une carte wifi, il faut installer le pilote. Cependant, même avec pilote, on a des erreurs et le wifi n'est pas détecté.

---

## <span style="color: #3366ff;">Activation du wifi</span>

Via un invité de commandes Powershell :

```Powershell
Add-WindowsFeature -Name Wireless-Networking
```

Cela va activer la fonctionnalité de wifi.

On installe ensuite notre pilote et le wifi sera fonctionnel.

# Installation du rôle Serveur de fichiers et mise en place d'un partage

### Installation et préparation au partage de fichiers

  
Ce rôle est déjà présent sur le serveur de base.

[![image-1610980594393.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/eMBl5EhiQQDkHq6R-image-1610980594393.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/eMBl5EhiQQDkHq6R-image-1610980594393.png)

Pour mettre en place le SMB (protocole de partage de fichiers), il est préférable d’utiliser des disques dédiés. Dans notre cas, nous allons ajouter deux disques virtuels.

Ils apparaissent alors dans Volumes &gt; Disques.

[![image-1610980601988.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/2Am1oSXOORsJnM4R-image-1610980601988.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/2Am1oSXOORsJnM4R-image-1610980601988.png)

Nous allons donc initialiser les deux disques physiques, créer un pool de stockage et un disque virtuel dans le but de mettre en place l’agrégation en RAID.

On fait un clic droit sur la fenêtre actuelle sur les deux disques puis initialiser.

[![image-1610980612475.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/NW25aCghTTsFbkMG-image-1610980612475.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/NW25aCghTTsFbkMG-image-1610980612475.png)

On crée ensuite le pool de stockage. On fait un clic droit.

[![image-1610980620476.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/HmkJ4BWUAlS3oQO3-image-1610980620476.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/HmkJ4BWUAlS3oQO3-image-1610980620476.png)

On lui donne un nom.

[![image-1610980624426.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/GGQ8zhFyV8Tshlms-image-1610980624426.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/GGQ8zhFyV8Tshlms-image-1610980624426.png)

On sélectionne les deux disques.

[![image-1610980632027.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/D6dn42IjQf3BTlNf-image-1610980632027.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/D6dn42IjQf3BTlNf-image-1610980632027.png)

On clique sur "Suivant" puis « Créer ».

Le pool est maintenant créé.

[![image-1610980641196.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/PLyBMiPx1FDV32D6-image-1610980641196.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/PLyBMiPx1FDV32D6-image-1610980641196.png)

On va ensuite créer un disque virtuel.

[![image-1610980669439.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/xTHNQh6mfGmldP9Y-image-1610980669439.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/xTHNQh6mfGmldP9Y-image-1610980669439.png)

On sélectionne le pool précédemment créé, on nomme le disque.

On va ici utiliser le mode « Mirror » pour miroir.

[![image-1610980714857.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/NIe1kaev8ICJZttw-image-1610980714857.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/NIe1kaev8ICJZttw-image-1610980714857.png)

Le type d’approvisionnement "Fin" ou "Thin" permet d’anticiper les besoins. Nous allons créer un disque virtuel d’1To (avec une capacité réelle de 10Go). Nous pourrons étendre le stockage dans le futur.

[![image-1610980732326.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/bEfrFzdlhQJKpuLz-image-1610980732326.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/bEfrFzdlhQJKpuLz-image-1610980732326.png)

On clique sur « Suivant » puis « Créer » en laissant la case « Créer un volume » cochée.

[![image-1610980750748.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/EfkHArj7qPxThNy4-image-1610980750748.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/EfkHArj7qPxThNy4-image-1610980750748.png)

On définit la taille (même taille que notre disque virtuel), puis on attribue une lettre au volume et pour finir le nom du volume.

[![image-1610980756676.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/WflP8Hy4Vd4o5IOL-image-1610980756676.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/WflP8Hy4Vd4o5IOL-image-1610980756676.png)

Le volume est ainsi créé.

[![image-1610980866017.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/3CnSl5K015ZoOK42-image-1610980866017.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/3CnSl5K015ZoOK42-image-1610980866017.png)

### Mise en place d'un partage

Il faut désormais créer le partage. On se rend dans la partie « Volume » puis « Ressources partagées ».

[![image-1610980876812.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/s8biyB9TZqsvuzce-image-1610980876812.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/s8biyB9TZqsvuzce-image-1610980876812.png)

On aura le choix entre 5 types de partages :

- SMB simple : création simple de partage
- SMB avancé : permet de gérer les quotas et les droits
- SMB Applications : Partage conçu pour les applications (Hyper-V, base de données par exemple)
- NFS Simple : Partage NFS et non SMB, utile si vous avez des Linux dans votre parc
- NFS Simple : Partage NFS avec gestion avancée des quotas et des droits

Ici, je choisi le SMB avancé.

On sélectionne le volume précédemment créé.

[![image-1610981148310.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/dMgXX0hLCHqi7rOY-image-1610981148310.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/dMgXX0hLCHqi7rOY-image-1610981148310.png)

On nomme le partage, ce qui indiquera le chemin de ce dernier. On peut rajouter un "$" dans le chemin d'accès distant au partage pour le masquer de la découverte de réseau.

[![image-1610981156731.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/RqT2cw9PSYzPPRYM-image-1610981156731.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/RqT2cw9PSYzPPRYM-image-1610981156731.png)

On active l’énumération basée sur l’accès &amp; la mise en cache du partage.

[![image-1610981222323.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/LxkLbIXQ1rDRiq0Z-image-1610981222323.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/LxkLbIXQ1rDRiq0Z-image-1610981222323.png)

on personnalise ensuite les autorisations.

[![image-1610981237702.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yox4Iyk1kT3FZRlJ-image-1610981237702.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yox4Iyk1kT3FZRlJ-image-1610981237702.png)

On supprime l’héritage puis les deux lignes avec « Utilisateurs ».

[![image-1610981779496.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/eOEftYs8cLzVAnaN-image-1610981779496.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/eOEftYs8cLzVAnaN-image-1610981779496.png)

On clique sur « Ajouter » puis « Sélectionner un principal ».

[![image-1610981805259.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yXMv4xQ4XGduGHjC-image-1610981805259.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yXMv4xQ4XGduGHjC-image-1610981805259.png)

On rentre le groupe qui aura accès au partage. Ici, tous les utilisateurs. (Utilisateurs du domaine serait un meilleur choix si c'est une entreprise).

[![image-1610981808571.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/uiw7BZDEIFx2AmrX-image-1610981808571.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/uiw7BZDEIFx2AmrX-image-1610981808571.png)

On choisit les permissions.

[![image-1610981813994.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/zNOFbEFDlHW9ksg0-image-1610981813994.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/zNOFbEFDlHW9ksg0-image-1610981813994.png)

Dans Partage, on supprime l’autorisation pour « Tout le monde » puis on ajoute le même groupe que dans « Autorisations ». (4e image ci-dessus)

Le partage est terminé.

Il est affiché ici.

[![image-1610981902704.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/jtUjSAmiTgsb9jW4-image-1610981902704.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/jtUjSAmiTgsb9jW4-image-1610981902704.png)

Le partage est accessible depuis une machine cliente.

On rentre le chemin du partage.

[![image-1610981910842.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/DMMt03dNMPnFxwpP-image-1610981910842.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/DMMt03dNMPnFxwpP-image-1610981910842.png)

[![image-1610981915667.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/uTGoTaFrcbPG5sis-image-1610981915667.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/uTGoTaFrcbPG5sis-image-1610981915667.png)

[![image-1610981921362.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/emyO4jS0JB6wUDre-image-1610981921362.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/emyO4jS0JB6wUDre-image-1610981921362.png)

# Active Directory

Tout ce qui touche à Active Directory

# Installation du rôle AD DS (Contrôleur de domaine) et DNS

Dans le gestionnaire de serveur, en haut à droite, on clique sur "Gérer" puis "Ajouter des rôles et des fonctionnalités".

[![image015.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/ofL5ZR2kdR3oW8Ad-image015.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/ofL5ZR2kdR3oW8Ad-image015.png)

On choisit ensuite le rôle "Services AD DS".

[![image020.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/aNVqeS0Fy8haGUQs-image020.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/aNVqeS0Fy8haGUQs-image020.png)

On clique ensuite sur "Suivant" pour toutes les autres étapes puis "Installer".

Une fois installé, en haut à droite, on clique sur le panneau des notifications (un drapeau) puis "Promouvoir ce serveur en contrôleur de domaine".

[![image021.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/0PB0FLlIweKCd2mo-image021.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/0PB0FLlIweKCd2mo-image021.png)

On ajoute une nouvelle forêt. Le domaine est « khroners.fr » (à remplacer par le votre, bien entendu).

[![image022.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/4ammXJdhXvx4mopn-image022.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/4ammXJdhXvx4mopn-image022.png)

On définit le mot de passe de restauration des services d’annuaire. Il est important de le conserver.

[![image023.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/hXo7ZxRSm1hPBw7T-image023.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/hXo7ZxRSm1hPBw7T-image023.png)

Suivant

[![image024.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/hva5ws4lpRNbNcxS-image024.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/hva5ws4lpRNbNcxS-image024.png)

Suivant.

[![image025.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/KC6GpgKUIKefy43F-image025.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/KC6GpgKUIKefy43F-image025.png)

On peut changer la destination de la BGG, sysvol et des logs.

[![image026.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Sq5rU9nL7AZwB7rA-image026.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Sq5rU9nL7AZwB7rA-image026.png)

Les avertissements sont normaux. On installe.

[![image027.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/iTPFA2wdPBPE5vJF-image027.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/iTPFA2wdPBPE5vJF-image027.png)

Le serveur redémarre.

Le serveur est promu Contrôleur de Domaine. Les rôles ADDS &amp; DNS sont installés.

[![image028.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/6og0YZ3AgFdZSv7b-image028.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/6og0YZ3AgFdZSv7b-image028.png)

On clique sur "Outils" puis "Utilisateurs et ordinateurs Active Directory".

Ici, OU = "Organizational Unit"ou en français "Unité d'Organisation".

On ajoute l’OU Khroners, et dedans 3 OU : Groups, Users &amp; Computers.

[![image-1610979772322.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/3KAKplQR6vIohzFF-image-1610979772322.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/3KAKplQR6vIohzFF-image-1610979772322.png)

On déplace les objets correspondants aux ordinateurs déjà existants dans le domaine dans Computers.

# Ajouter un contrôleur de domaine secondaire

Ajouter un contrôleur de domaine secondaire permet d'avoir une réplication du contrôleur de domaine. Cela permet au deuxieme de prendre le relais en cas de panne.

Sur un autre serveur Windows, ici SRV-DC02, on ajoute le rôle AD DS.

On ajoute à un domaine existant et on rentre le domaine, puis "Modifier" en rentrant les logins du compte administrateur du domaine, ici KHRONERS\\Administrateur.

[![image-1610982167895.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/h4qkJBGmqrhVAcxN-image-1610982167895.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/h4qkJBGmqrhVAcxN-image-1610982167895.png)

On rentre un mot de passe du mode de restauration des services d'annuaire, il est important de le garder.

[![image-1610982172951.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/wmSSm25v2r6TXH3m-image-1610982172951.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/wmSSm25v2r6TXH3m-image-1610982172951.png)

On réplique depuis SRV-DC01 (notre contrôleur de domaine principal).

[![image-1610982234301.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/N9BjQnKO4yt0Fniq-image-1610982234301.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/N9BjQnKO4yt0Fniq-image-1610982234301.png)

On spécifie l'emplacement des dossiers de BDD, fichiers journaux et SYSVOL.

[![image-1610982263480.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/6VsnwoLWc9ad9J6D-image-1610982263480.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/6VsnwoLWc9ad9J6D-image-1610982263480.png)

Une fois fait, on n'oublie pas de modifier les options du DHCP pour les DNS.

# Activer la corbeille Active Directory

Dans le Centre d'Administration Active Directory, on clique droit sur notre domaine puis "Activer la corbeille".

[![image-1619818823900.png](https://docs.khroners.fr/uploads/images/gallery/2021-04/scaled-1680-/k4papRLyLMoXWAFT-image-1619818823900.png)](https://docs.khroners.fr/uploads/images/gallery/2021-04/k4papRLyLMoXWAFT-image-1619818823900.png)

# Monter un partage par GPO par OU

On clique sur "Gestion des stratégies de groupe".

[![image-1610983102318.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/fAEy1h9MVGcrFBGd-image-1610983102318.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/fAEy1h9MVGcrFBGd-image-1610983102318.png)

On clique droit sur "Objets de stratégie de groupe" puis "Nouveau"

[![image-1610984428658.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/NKEa1c8SdVrXzDpo-image-1610984428658.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/NKEa1c8SdVrXzDpo-image-1610984428658.png)

On choisit un nom. On souhaite qu'il soit le plus clair possible.

[![image-1610984515806.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/9b8oLcNKWIUvaUsx-image-1610984515806.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/9b8oLcNKWIUvaUsx-image-1610984515806.png)

On le lie ensuite à une OU. Dans mon cas, je veux que le partage soit monté pour tous les utilisateurs du domaine.

[![image-1610984616608.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/9EMeAJkWIVp8ha6t-image-1610984616608.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/9EMeAJkWIVp8ha6t-image-1610984616608.png)

On choisit notre GPO.

[![image-1610984648528.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/rh1NQo3CW70bGSix-image-1610984648528.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/rh1NQo3CW70bGSix-image-1610984648528.png)

On clique droit sur la GPO puis "Modifier".

On se rend dans "Configuration Utilisateur", "Préférences" puis "Mappage de lecteurs".

[![image-1610984802570.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/IocCfG3lDzOipim7-image-1610984802570.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/IocCfG3lDzOipim7-image-1610984802570.png)

On clique droit puis "Nouveau" &gt; "Lecteur mappé".

[![image-1610984993287.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/xicGfaO7V1jmad9N-image-1610984993287.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/xicGfaO7V1jmad9N-image-1610984993287.png)

On choisit le chemin, la lettre et on coche "Reconnecter".

[![image-1610985303990.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/kj7uldeKe5ZFuGFi-image-1610985303990.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/kj7uldeKe5ZFuGFi-image-1610985303990.png)

Dans l'onglet "Commun", on coche "Ciblage au niveau de l'élément" et "Exécuter dans le contexte de sécurité de l'utilisateur connecté (option de stratégie utilisateur)".

[![image-1610985558252.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/54wQsHAEbhnwMiqr-image-1610985558252.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/54wQsHAEbhnwMiqr-image-1610985558252.png)

On clique sur "Ciblage..." puis "Nouveau" puis "Unité d'Organisation".

[![image-1610985425746.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/lSapq0SZAphw8250-image-1610985425746.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/lSapq0SZAphw8250-image-1610985425746.png)

En cliquant sur "...", on choisit notre OU.

[![image-1610985472229.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/u8vOfu68CICXsINn-image-1610985472229.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/u8vOfu68CICXsINn-image-1610985472229.png)

On clique sur "OK" puis "Appliquer".

On redémarre ensuite un poste ou via l'invité de commandes, on rentre la commande "gpupdate /force".

# Créer des GPO pour Chrome

On télécharge les GPO de Chrome : [Télécharger le navigateur Chrome pour votre entreprise – Chrome Enterprise (chromeenterprise.google)](https://chromeenterprise.google/browser/download/#manage-policies-tab)

On extrait, on déplace le dossier windows\\admx\\fr-FR dans le dossier PolicyDefinitions\\fr-FR du sysvol, et les deux fichiers .admx dans windows\\admx vers le dossier PolicyDefinitions du sysvol.

Les GPO apparaissent.

# Déployer un .msi par GPO

## **<span style="text-decoration: underline;">Création du partage pour le déploiement</span>**

Si un partage n’a pas déjà été créé pour le déploiement, on le crée :

Dans l’explorateur de fichiers, on crée un dossier « deploiement » sur le disque, dans mon cas à la racine du disque.

[![image-1613760743274.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/OAm8xZHbphLMb1PX-image-1613760743274.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/OAm8xZHbphLMb1PX-image-1613760743274.png)

On clique droit sur le dossier, propriétés, onglet « Partage », « Partager » puis on ajoute « Ordinateurs du domaine ».

[![image-1613760757283.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/KpCjqfdpIw42i5Rb-image-1613760757283.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/KpCjqfdpIw42i5Rb-image-1613760757283.png)

On écrit « Ordinateurs du domaine » puis on clique sur « Vérifier les noms » à droite.

[![image-1613760762412.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/AhRzyhGMHSylrxVW-image-1613760762412.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/AhRzyhGMHSylrxVW-image-1613760762412.png)

On laisse les droits de lecture seulement (par défaut).

REMARQUE : Si l’on souhaite l’installer sur un contrôleur de domaine, il faut ajouter « Contrôleurs de domaine ».

On clique sur « Partager ».

[![image-1613760768514.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/QVsp8QrqQC1oXm1c-image-1613760768514.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/QVsp8QrqQC1oXm1c-image-1613760768514.png)

[![image-1613760771575.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/88zCmGhqGZDVlKlN-image-1613760771575.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/88zCmGhqGZDVlKlN-image-1613760771575.png)

On déplace ensuite le setup dans ce dossier.

[![image-1613760778652.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/uQK1WfuogdkzMSGJ-image-1613760778652.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/uQK1WfuogdkzMSGJ-image-1613760778652.png)

## **<span style="text-decoration: underline;">Création de la GPO</span>**

On se rend ensuite dans la Gestion de stratégie de groupe.

[![image-1613760785464.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/XZnQIQ50Yvn99XLa-image-1613760785464.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/XZnQIQ50Yvn99XLa-image-1613760785464.png)

On crée une GPO dans « Objets de stratégie de groupe ».

[![image-1613760794392.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/hWqDYS9PlRFPG9rs-image-1613760794392.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/hWqDYS9PlRFPG9rs-image-1613760794392.png)

On lui donne un nom.

[![image-1613760801103.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/R6z4xTCyZP9u9NN9-image-1613760801103.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/R6z4xTCyZP9u9NN9-image-1613760801103.png)

On double clique gauche sur la GPO puis dans « Filtrage de sécurité » on retire « Utilisateurs authentifiés » puis on ajoute « Ordinateurs du domaine ».

[![image-1613760810577.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/IQzrhEAdvWiHBH8F-image-1613760810577.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/IQzrhEAdvWiHBH8F-image-1613760810577.png)

[![image-1613760813620.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/D9Ahn4pZ3OclohAu-image-1613760813620.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/D9Ahn4pZ3OclohAu-image-1613760813620.png)

REMARQUE : Si l’on souhaite l’installer sur un contrôleur de domaine, il faut ajouter « Contrôleurs de domaine ».

Ensuite, on clique droit sur la GPO puis « Modifier ».

[![image-1613760825866.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/vc2X8X9c8iKEptld-image-1613760825866.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/vc2X8X9c8iKEptld-image-1613760825866.png)

Dans « Configuration ordinateur », « Stratégies », « Paramètres du logiciel » et « Installation logiciel », on créer un Package.

[![image-1613760838728.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/IKHQCZWRNc3xHq5Z-image-1613760838728.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/IKHQCZWRNc3xHq5Z-image-1613760838728.png)

On ajoute le .MSI depuis le partage et non le chemin physique.

Dans la barre du haut, on rentre l’adresse IP ou le nom d’hôte avec le nom du partage.

[![image-1613760852202.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/SYpBn7Zly9e4IJx3-image-1613760852202.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/SYpBn7Zly9e4IJx3-image-1613760852202.png)

On choisit « Attribué » puis OK.

[![image-1613760860199.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/7Xul0CmRvALBakPU-image-1613760860199.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/7Xul0CmRvALBakPU-image-1613760860199.png)

[![image-1613760864098.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/BR5XfoshUcELsRBP-image-1613760864098.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/BR5XfoshUcELsRBP-image-1613760864098.png)

## **<span style="text-decoration: underline;">Liaison de la GPO au domaine/OU</span>**

On clique droit sur l’OU contenant le domaine ou directement à la racine du domaine comme ici, puis on clique sur « Lier un objet de stratégie de groupe existant… ».

[![image-1613760879183.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/79VT4p2zOmFJTWgc-image-1613760879183.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/79VT4p2zOmFJTWgc-image-1613760879183.png)

On choisit la GPO créée précédemment.

[![image-1613760888845.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/Tn4hNBnMkrEQm5hf-image-1613760888845.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/Tn4hNBnMkrEQm5hf-image-1613760888845.png)

Elle apparait ici.

[![image-1613760895438.png](https://docs.khroners.fr/uploads/images/gallery/2021-02/scaled-1680-/MdXivZUbRJfJRUIy-image-1613760895438.png)](https://docs.khroners.fr/uploads/images/gallery/2021-02/MdXivZUbRJfJRUIy-image-1613760895438.png)

Il est important à savoir que l’installation se fera uniquement après un redémarrage des machines.

# Déployer un fond d'écran par GPO

Nous allons voir comment déployer un fond d'écran par gpo sur les postes de notre AD.

On crée et lie notre GPO à une OU **Utilisateur**.

[![image-1647180184298.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/lADOUpOHL8Lvl47K-image-1647180184298.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/lADOUpOHL8Lvl47K-image-1647180184298.png)

[![image-1647180213817.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/KKZIU3m1GFwgfhMr-image-1647180213817.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/KKZIU3m1GFwgfhMr-image-1647180213817.png)

[![image-1647186962440.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/qTx6RdeObSZHgnmD-image-1647186962440.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/qTx6RdeObSZHgnmD-image-1647186962440.png)

Dans le partage, on désactive l'héritage (on choisit convertir), on retire "Utilisateurs du domaine" et on rajoute "Ordinateurs du domaine" en lecture.

[![image-1647180967047.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/EPXfbNQQBik7ldjU-image-1647180967047.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/EPXfbNQQBik7ldjU-image-1647180967047.png)

Et concernant les autorisations du partage, on remplace "Tout le monde" par "Ordinateurs du domaine" en CT (On s'occupe des permissions via NTFS).

[![image-1647192346727.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/gm88SMhV8p1cIzB8-image-1647192346727.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/gm88SMhV8p1cIzB8-image-1647192346727.png)

On crée une deuxième GPO **ordinateur** :

[![image-1647187015821.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/WTdWT7oZnKBHrMwD-image-1647187015821.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/WTdWT7oZnKBHrMwD-image-1647187015821.png)

[![image-1647187044482.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/Fu74vlumDhoAjxaI-image-1647187044482.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/Fu74vlumDhoAjxaI-image-1647187044482.png)

Sous "Fichiers" :

[![image-1647187289061.png](https://docs.khroners.fr/uploads/images/gallery/2022-03/scaled-1680-/5xZ6Ip9Rte52wJUW-image-1647187289061.png)](https://docs.khroners.fr/uploads/images/gallery/2022-03/5xZ6Ip9Rte52wJUW-image-1647187289061.png)

# Déployer des favoris Chrome via GPO

Après avoir installé les ADMX dans le magasin central (PolicyDefinitions du Sysvol), on active la stratégie "Activer la barre des favoris" et "Favoris gérés".

Les favoris utilisent le format .json, en voici un exemple.

```JSON
[
  {
    "toplevel_name": "Favoris gérés"
  }, 
  {
    "url": "https://www.google.fr", 
    "name": "Google"
  }, 
  {
    "url": "https://microsoft.com//", 
    "name": "Microsoft"
  },
  {
    "url": "https://portal.office365.com", 
    "name": "Portail Office 365"
  }
]
```

[JSON Formatter &amp; Validator (curiousconcept.com)](https://jsonformatter.curiousconcept.com/)

On compacte le json.

[![image-1657806545964.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/eIdEiLt4kjsxyIJk-image-1657806545964.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/eIdEiLt4kjsxyIJk-image-1657806545964.png)

[![image-1657806555663.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/ChXNwvd24rWm394m-image-1657806555663.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/ChXNwvd24rWm394m-image-1657806555663.png)

Dans "Favoris gérés", on colle le json compacté.

# Gérer Edge par GPO

On doit télécharger et importer les ADMX/ADML de Edge dans le magasin central.

On extrait l'archive et on place les fichiers dans le magasin central (fichiers .admx à la race, et on fusionne les deux dossiers fr-FR).

[Télécharger Microsoft Edge pour les entreprises - Microsoft](https://www.microsoft.com/fr-fr/edge/business/download)

(politique de Windows 64 bits)

# Déployer des favoris Edge par GPO

La méthode de déploiement est quasiment identique qu'avec Chrome.

Après avoir importé les ADMX, il faut créer une GPO ciblant les utilisateurs.

Les deux paramètres à activer sont "Activer la barre des favoris" et "Configurer les favoris".

<p class="callout info">"Configurer les favoris" est identique à "Favoris gérés" de Chrome.</p>

# Gérer OneDrive par GPO

Cette page est liée à [Configurer OneDrive | Docs Khroners](https://docs.khroners.fr/books/azure/page/configurer-onedrive) .

Pour avoir ces GPO, il faut importer les fichiers .admx et .adml dans le magasin central du domaine, disponible sur un poste client dans %localappdata%\\Microsoft\\OneDrive\\BuildNumber\\adm\\ (ou C:\\Program Files (x86)\\Microsoft OneDrive\\BuildNumber\\adm\\ ou Program Files\\Microsoft OneDrive\\BuildNumber\\adm\\.

<p class="callout danger">OneDrive ne se connectera pas automatiquement si le PC n'est pas Azure AD registered ou Hybrid Joined.</p>

GPO Ordinateur :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/qLwSOqefH845ZVox-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/qLwSOqefH845ZVox-image.png)

GPO Utilisateur :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/V2bQKfNVlocPfNVF-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/V2bQKfNVlocPfNVF-image.png)

Voici ce que verra un utilisateur :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-03/scaled-1680-/5R5fH2ikjgyirNoI-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-03/5R5fH2ikjgyirNoI-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-03/scaled-1680-/Y8Pv5k5O1tqnNLS6-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-03/Y8Pv5k5O1tqnNLS6-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/ijMYyY9vI2Pvukjn-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/ijMYyY9vI2Pvukjn-image.png)

# Configuration de Windows Update par GPO

Windows Update peut être géré par GPO.

Les postes peuvent utiliser Windows Update "classique", Windows Update for Business (WUfB) ou WSUS.

Dans mon cas, les mises à jour sont déployées par [WSUS](https://docs.khroners.fr/books/windows-server/chapter/wsus).

Nous allons voir ici l'expérience utilisateur de ces mises à jour.

<p class="callout info">Certaines GPO existent mais ne sont pas fonctionnels. De plus, plusieurs stratégies ne sont pas recommandées par Microsoft. Pour plus d'infos, voir [Why you shouldn’t set these 25 Windows policies.](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/why-you-shouldn-t-set-these-25-windows-policies/ba-p/3066178 "Why you shouldn’t set these 25 Windows policies")</p>

La bonne pratique désormais est d'utiliser des dates d'échéances et des périodes de grâce. Pour plus d'infos, voir [Manage how users experience updates](https://learn.microsoft.com/en-us/windows/deployment/update/waas-wufb-group-policy#manage-how-users-experience-updates "Manage how users experience updates"), [Windows quality update end user experience](https://learn.microsoft.com/en-us/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-end-user-exp "Windows quality update end user experience") et [Windows feature update end user experience](https://learn.microsoft.com/en-us/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-end-user-exp "Windows feature update end user experience").

Exemple pour les mises à jour de fonctionnalités avec la GPO configurée ci-dessous :

 1 - La mise à jour est approuvée le lundi. La personne aura 7 jours pour redémarrer son PC (des notifications apparaitront). Si le PC n'est pas redémarré, il redémarrera automatiquement même durant les heures d'activités après 7 jours.

 2 - La mise à jour est approuvée le lundi. Le pc n'est démarré qu'une semaine plus tard ; on utilisera alors la période de grâce. Le pc aura 2 jours pour être redémarré (des notifications apparaitront) ou celui-ci s'effectuera automatiquement, même durant les heures d'activités.

On se basant sur ces deux documentations de Microsoft, on obtient le résultat suivant (à modifier selon vos besoins) :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-03/scaled-1680-/qFw44aCD0Dypvk8d-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-03/qFw44aCD0Dypvk8d-image.png)

Et en français :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-03/scaled-1680-/3vuEtnQeCsQWyH0R-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-03/3vuEtnQeCsQWyH0R-image.png)

Dans notre cas, les ordinateurs ne redémarreront pas en dehors des heures d'activités si la date d'échéance (deadline) n'est pas dépassée. Ce paramètre est la case à cocher "Don't auto-restart until end of grace period".

Pour plus d'infos sur le comportement de l'ordinateur avec la mise en place des dates d'échéances et de grâce, voir [https://learn.microsoft.com/en-us/windows/deployment/update/waas-wufb-group-policy#i-want-to-keep-devices-secure-and-compliant-with-update-deadlines](https://learn.microsoft.com/en-us/windows/deployment/update/waas-wufb-group-policy#i-want-to-keep-devices-secure-and-compliant-with-update-deadlines "I want to keep devices secure and compliant with update deadlines").

Un exemple :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-03/scaled-1680-/xBztiRygYFBrkbwq-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-03/xBztiRygYFBrkbwq-image.png)

# DHCP

Tout ce qui touche au DHCP (Dynamic Host Configuration Protocol).

# Installation du rôle DHCP

Dans le gestionnaire de serveur, on ajoute un rôle. On choisit "Serveur DHCP".

[![image-1610979955051.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/zlELOzf26iMUsA3n-image-1610979955051.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/zlELOzf26iMUsA3n-image-1610979955051.png)

On clique sur "Suivant" pour toutes les autres étapes puis "Installer".

Une fois installé, il faut le configurer.

On clique sur « Terminer la configuration DHCP ».

[![image-1610980318597.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/VoknmP268OjPbR41-image-1610980318597.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/VoknmP268OjPbR41-image-1610980318597.png)

[![image-1610980328237.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/nrtgqCGxPW6HgMGM-image-1610980328237.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/nrtgqCGxPW6HgMGM-image-1610980328237.png)

[![image-1610980332178.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Dxbq5ZbuCiklRNaS-image-1610980332178.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Dxbq5ZbuCiklRNaS-image-1610980332178.png)

[![image-1610980342268.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/rQ5MhCCUhaTeRlnt-image-1610980342268.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/rQ5MhCCUhaTeRlnt-image-1610980342268.png)

On va ensuite configurer les étendues. Dans le gestionnaire de serveur, on clique sur "Outils" en haut à droite puis "DHCP".

[![image-1610980351771.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/oZKUtoz7rMoApAty-image-1610980351771.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/oZKUtoz7rMoApAty-image-1610980351771.png)

On clique droit sur "IPv4" puis "Nouvelle étendue...".

[![image-1610980380970.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/GTmfjZb3NZZm3bjg-image-1610980380970.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/GTmfjZb3NZZm3bjg-image-1610980380970.png)

On y donne un nom.

[![image-1610980401618.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/oSPYicPl9acBOrSS-image-1610980401618.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/oSPYicPl9acBOrSS-image-1610980401618.png)

On définit la plage d’adresses IP pour cette étendue.

[![image-1610980430838.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/2o0AtOavrw8zW0vx-image-1610980430838.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/2o0AtOavrw8zW0vx-image-1610980430838.png)

Ici, on peut exclure des adresses IP.

[![image-1610980436438.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/8iAFkrkibdJ3Kgxx-image-1610980436438.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/8iAFkrkibdJ3Kgxx-image-1610980436438.png)

On définit ici la durée du bail. Une durée courte pour un accès public, ou plus longue pour des ordinateurs fixes.

[![image-1610980442889.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/NYaYFT0bIwxElSRm-image-1610980442889.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/NYaYFT0bIwxElSRm-image-1610980442889.png)

[![image-1610980452681.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/l7Or8T6CbbEp0rcg-image-1610980452681.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/l7Or8T6CbbEp0rcg-image-1610980452681.png)

On rajoute la ou les passerelles par défaut.

[![image-1610980458138.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yDzdYSwypBynGfOM-image-1610980458138.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yDzdYSwypBynGfOM-image-1610980458138.png)

On rajoute les serveurs DNS pour les clients de l’étendue.

[![image-1610980464751.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yJq8ZgBxkL3Ccrnb-image-1610980464751.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yJq8ZgBxkL3Ccrnb-image-1610980464751.png)

On rajoute les serveurs WINS.

[![image-1610980473619.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/itGK7uEspfzeFm3W-image-1610980473619.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/itGK7uEspfzeFm3W-image-1610980473619.png)

On active l’étendue.

[![image-1610980481399.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/gGg5F3rrXACfb56e-image-1610980481399.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/gGg5F3rrXACfb56e-image-1610980481399.png)

Les adresses IP attribuées seront affichées ici.

[![image-1610980486492.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/j8xbw4n0LwWKfGvF-image-1610980486492.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/j8xbw4n0LwWKfGvF-image-1610980486492.png)

# Fail-over DHCP

---

## <span style="color: #3366ff;">Présentation</span>

La haute disponibilité est un élément très important à inclure dans une infrastructure. Un des éléments importants est le service DHCP. En effet, s'il n'est plus disponible, on se retrouve rapidement avec des pannes réseaux, avec l'obligation d'avoir une adresse IP Statique pour avoir une connectivité réseau.

---

## <span style="color: #3366ff;">Mise en place</span>

Sur un autre Windows Server, on ajoute le rôle DHCP. On termine la configuration.  
On se rend sur le premier serveur où l'étendue est déjà créée, on clique droit puis "Configurer un basculement...".

[![image-1626246974216.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/Q0KRMSfKfmlhWjNJ-image-1626246974216.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/Q0KRMSfKfmlhWjNJ-image-1626246974216.png)

On clique sur "Suivant" puis on rentre l'adresse IP du second serveur DHCP. On définit un nom de relation.

[![image-1626247311365.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/MZW77TLj0R7HMcg3-image-1626247311365.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/MZW77TLj0R7HMcg3-image-1626247311365.png)

On active l'authentification du message pour éviter de partager en clair la configuration.

[![image-1626247415012.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/jje7O3aPrWrdCkEB-image-1626247415012.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/jje7O3aPrWrdCkEB-image-1626247415012.png)

On peut vérifier sur le second serveur : elle apparait.

[![image-1626247445692.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/y6QuiTfYEiCRaSOj-image-1626247445692.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/y6QuiTfYEiCRaSOj-image-1626247445692.png)

Si on coupe le premier serveur, on verra cette icône qui indique qu'il y a un problème avec l'autre serveur.

[![image-1626247487068.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/VsQIxvmAZPGiwkM0-image-1626247487068.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/VsQIxvmAZPGiwkM0-image-1626247487068.png)

Sous "Propriétés" puis "Basculement", dans "Etat du serveur", on pourra voir "Perte du contact".

[![image-1626250068481.png](https://docs.khroners.fr/uploads/images/gallery/2021-07/scaled-1680-/7y3imBHWlw1ZhoXK-image-1626250068481.png)](https://docs.khroners.fr/uploads/images/gallery/2021-07/7y3imBHWlw1ZhoXK-image-1626250068481.png)

---

## <span style="color: #3366ff;">Conclusion</span>

La haute-disponibilité DHCP est donc mise en place. Couplé avec une redondance du contrôleur de domaine, on assure une haute disponibilité.

PS : S'ils s'agit de deux serveurs virtualisés, il est préférable de les avoir sur un autre hôte ESXI/Hyper-V/Proxmox.

# WSUS

Toutes les pages liées au WSUS

# Installation du rôle WSUS et synchronisation

On fait comme pour les autres rôles, en choisissant Services WSUS (Windows Server Update Services) en laissant tout par défaut.

Ensuite, depuis le menu Démarrer, on cherche "Windows Server Update Services" depuis "Outils d'administration Windows".

[![image-1610987188203.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Ljghav15ErzJ45KH-image-1610987188203.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Ljghav15ErzJ45KH-image-1610987188203.png)

On clique sur "Suivant &gt;" puis on choisit le serveur en amont. On choisit "Synchroniser depuis Windows Update".

On choisit ensuite le serveur Proxy s'il y en a un.

On clique sur "Démarrer la connexion". Cela va récupérer les types de mises à jour disponibles, les produits pouvant être mis à jour et les langues disponibles.

On clique ensuite sur "Suivant", on sélectionne uniquement la langue Française.

Pour les produits, on choisit selon notre parc.

Les produits qui doivent être mis à jour sont **Windows Server 2019** et **Windows 10 1903 and later (On coche aussi Windows 10 s’il y a des machines plus vieilles) et « Gestionnaire de serveur Windows – Programme d’installation dynamique de Windows Server Update Services »**, **Developer Tools, Runtimes, and Redistributables (Visual C++ Runtime libraries, etc).**

 On coche tout sauf Pilote (Driver) et jeux de pilotes puis on clique sur "Suivant".

Pour la synchronisation, on choisit 4 fois par jour.

Ensuite, la console se lance. On choisit le noeud SRV-WSUS01 (nom du serveur) puis le noeud "Synchronisations" puis on clique sur "Synchroniser maintenant". C'est une étape très longue.

Avant d’approuver les mises à jour, les postes clients et les autres serveurs doivent être connectés aux serveurs WSUS.

# Optimisation de WSUS

Tout d'abord, on va modifier les paramètres du pool d'application "**WsusPool**".

On se rend dans le "**Gestionnaire des services Internet (IIS)**".

Sous "**Pools d'applications**", on clique droit sur "**WsusPool**" puis "**Paramètres avancés**".

[![image-1640907795678.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/4Sz4sRIsxxjxLnr4-image-1640907795678.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/4Sz4sRIsxxjxLnr4-image-1640907795678.png)

[![image-1640907817312.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/Rj5ZXcnw6rlceOZV-image-1640907817312.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/Rj5ZXcnw6rlceOZV-image-1640907817312.png)

On clique droit sur "**WsusPool**" puis "**Arrêter**". On attend quelques secondes puis on le redémarre.

# Ciblage des postes clients pour les mises à jour via le serveur WSUS

On lance la console "Windows Server Update Services".

On développe le nœud "Ordinateurs" et on clique droit sur "Tous les ordinateurs" puis on sélectionne "Ajouter un groupe d’ordinateurs".

On va ensuite ajouter 4 groupes : "Servers", "Workstations", "Test – Servers", "Test – Workstations".

On clique maintenant sur "Options" puis sur "Ordinateurs".

On coche Utiliser les paramètres de stratégie de groupe ou de Registre sur les ordinateurs puis cliquez sur OK.

# Création de vues

Dans la console de Services WSUS, on clique droit sur "Mises à jour".

[![image-1610990186412.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/BDVdf3fNmtIJSnz8-image-1610990186412.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/BDVdf3fNmtIJSnz8-image-1610990186412.png)

On clique sur "Nouvelle vue de mise à jour…". On coche la première option, on clique sur "Toutes les classifications" et on coche uniquement "Upgrade". On clique ensuite sur "OK".

[![image-1610990947998.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Qiy9PcZiMgNUIA8F-image-1610990947998.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Qiy9PcZiMgNUIA8F-image-1610990947998.png)

On ajoute ensuite 2 vues pour les mises à jour approuvées pour un groupe précis, ici Test Servers et Test - Workstations

Test - Servers

[![image-1610991242538.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/L3sY41p529BBsjHA-image-1610991242538.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/L3sY41p529BBsjHA-image-1610991242538.png)

Test - Workstations

[![image-1610991322529.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/6gSOhlPCEXWqKy1x-image-1610991322529.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/6gSOhlPCEXWqKy1x-image-1610991322529.png)

On crée ensuite une vue pour toutes les mises à jour sauf les pilotes.

[![image-1610991349168.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/9kTowRCrpVYdQeB8-image-1610991349168.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/9kTowRCrpVYdQeB8-image-1610991349168.png)

Ensuite, on clique droit sur une colonne et on rajoute différents éléments :

[![image-1610991388212.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/aHU3T76v3uS2AOy8-image-1610991388212.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/aHU3T76v3uS2AOy8-image-1610991388212.png)

On modifie l'Approbation et l'Etat.

[![image-1610991424315.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/gUD9BiUPZqwOkITa-image-1610991424315.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/gUD9BiUPZqwOkITa-image-1610991424315.png)

On applique la même chose pour la vue "Test – Workstations".

Pour "All Updates Except Drivers", idem mais "Non Approuvées" et "Echec ou Nécessaires".

[![image-1610991508468.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/iSlk54KOK3LrBFSt-image-1610991508468.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/iSlk54KOK3LrBFSt-image-1610991508468.png)

Pour "Upgrades", idem qu'avant sauf "Toutes les exceptions sauf celles refusées" et "Echec ou Nécessaire".

[![image-1611255996611.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/LZUbtAyqzdYapMsd-image-1611255996611.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/LZUbtAyqzdYapMsd-image-1611255996611.png)

# Création des GPO pour le ciblage WSUS et des groupes de tests des mises à jour

---

## <span style="color: #3366ff;">Présentation</span>

  
Il faut ensuite créer des GPO pour que les postes de travails et serveurs du domaine puissent se mettre à jour via le WSUS et non par les serveurs de Microsoft.

---

## <span style="color: #3366ff;">Création des GPO</span>

---

#### WSUS - Location

  
On se rend dans la console de Gestion de stratégie de groupe, on clique droit sur "Objets de stratégie de groupe" puis on crée une nouvelle GPO nommée "WSUS - Location".

[![image-1610992817492.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/SGyF1CDnRxRIag2Y-image-1610992817492.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/SGyF1CDnRxRIag2Y-image-1610992817492.png)

On clique droit sur la nouvelle GPO puis "Modifier". On se rend dans Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows et Windows Update.

[![image-1610992970489.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/pnU6Q5jCpEfgHpky-image-1610992970489.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/pnU6Q5jCpEfgHpky-image-1610992970489.png)

"Spécifier l'emplacement intranet du serveur de mise à jour..." On active et on définit l'url. (L'entrée DNS pour le serveur WSUS doit être présente)

[![image-1610993001269.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/n0xWNsA25VtH1MU4-image-1610993001269.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/n0xWNsA25VtH1MU4-image-1610993001269.png)

---

#### WSUS - Workstations

On crée ensuite une nouvelle GPO pour les postes de travail nommée "WSUS - Workstations".

On la modifie et on se rend dans Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows, Optimisation de la distribution.

On active "Mode de téléchargement" sur "Réseau local".

[![image-1610993251453.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/oBFI0Y43635t6Lyq-image-1610993251453.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/oBFI0Y43635t6Lyq-image-1610993251453.png)

On se rend ensuite dans Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows, Windows Update

[![image-1610997773666.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/0Dgw0TkweUDHXnwK-image-1610997773666.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/0Dgw0TkweUDHXnwK-image-1610997773666.png)

[![image-1610997325009.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/mL8hsn5s9BAVAXcc-image-1610997325009.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/mL8hsn5s9BAVAXcc-image-1610997325009.png)

[![image-1610997330959.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/QuiQvPt61PVEqQQ3-image-1610997330959.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/QuiQvPt61PVEqQQ3-image-1610997330959.png)

EDIT : la GPO ci-dessous n'a pas le résultat escompté d'après Microsoft. ([https://techcommunity.microsoft.com/t5/windows-it-pro-blog/why-you-shouldn-t-set-these-25-windows-policies/ba-p/3066178?WT.mc\_id=AZ-MVP-5004580](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/why-you-shouldn-t-set-these-25-windows-policies/ba-p/3066178?WT.mc_id=AZ-MVP-5004580))

Il faut la remplacer. Voir la page suivante disponible dans ce chapitre :

[![image-1610997336347.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/EXP87S17Md5bLgJZ-image-1610997336347.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/EXP87S17Md5bLgJZ-image-1610997336347.png)

On adapte ici les heures d'activités.

[![image-1610997341557.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/SMTKjTqAwI8j5RBT-image-1610997341557.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/SMTKjTqAwI8j5RBT-image-1610997341557.png)

[![image-1610997358318.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/yXfWQl80Fhoq8pIX-image-1610997358318.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/yXfWQl80Fhoq8pIX-image-1610997358318.png)

[![image-1610997363198.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/jACi2vQhablO5NWb-image-1610997363198.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/jACi2vQhablO5NWb-image-1610997363198.png)

---

#### WSUS - Servers

On ne veut pas que les mises à jour s'installent automatiquement sur nos serveurs, sauf pour les mises à jour des définitions de l'antivirus. On va donc activer une option.

Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows, Windows Update.

[![image-1610998351645.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/AtnX01ORXQV7VO7I-image-1610998351645.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/AtnX01ORXQV7VO7I-image-1610998351645.png)

[![image-1622302093406.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Zhi1scb9OfR5Rfjp-image-1622302093406.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Zhi1scb9OfR5Rfjp-image-1622302093406.png)

Ensuite, pour les autres options :

[![image-1610998372193.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/IoZE7C9kIvHoSpN4-image-1610998372193.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/IoZE7C9kIvHoSpN4-image-1610998372193.png)

[![image-1610998392491.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/2hWLs6QIxQJWBCZy-image-1610998392491.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/2hWLs6QIxQJWBCZy-image-1610998392491.png)

Si on a une farm de serveurs, il est préférable de créer plusieurs 'anneaux' de planifications et groupes, en choisissant l'option 4 : "Téléchargement automatique et planifier l'installation" et forcer le redémarrage lors de la maintenance des serveurs.

Pour conclure, ici les mises à jour seront téléchargées automatiquement sur les serveurs, mais ne seront pas installées automatiquement, à l'exception de Windows Defender.

---

#### WSUS - Workstations, Test - Workstations

C'est une GPO pour le groupe de ciblage.

Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows, Windows Update

[![image-1610999484956.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/QVIsQ7sXbWnzbsWf-image-1610999484956.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/QVIsQ7sXbWnzbsWf-image-1610999484956.png)

---

#### WSUS - Servers, Test - Servers

C'est une GPO pour le groupe de ciblage.

Configuration de l'ordinateur, Stratégies, Modèles d'administration, Composants Windows, Windows Update

[![image-1610999526873.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/EXlNNRbTxXZhRXXc-image-1610999526873.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/EXlNNRbTxXZhRXXc-image-1610999526873.png)

Lier les GPO aux bonnes OU

On applique la GPO de l'emplacement à toute l'OU.

[![image-1611000097878.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/5oANaWLMxo89nVUp-image-1611000097878.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/5oANaWLMxo89nVUp-image-1611000097878.png)

[![image-1611000100885.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/dqqw9NdHAUWAlCcy-image-1611000100885.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/dqqw9NdHAUWAlCcy-image-1611000100885.png)

On applique pour les postes de travails la GPO correspondante.

[![image-1611000118840.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/Hk3UU1sqYO2AdsL3-image-1611000118840.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/Hk3UU1sqYO2AdsL3-image-1611000118840.png)

De même pour les serveurs.

[![image-1611000132028.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/165cyVu0ibiCOANK-image-1611000132028.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/165cyVu0ibiCOANK-image-1611000132028.png)

On n'oublie pas les contrôleurs de domaine.

[![image-1611000431539.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/5TecvVDwp9fZCQTh-image-1611000431539.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/5TecvVDwp9fZCQTh-image-1611000431539.png)

---

## <span style="color: #3366ff;">Création des groupes de tests</span>

On va créer 4 groupes dans l'OU "Security Groups".

- ACL\_GPO.WSUS - Workstations &amp; Test\_Apply
- ACL\_GPO.WSUS - Workstations &amp; Test\_Deny
- ACL\_GPO.WSUS - Servers &amp; Test\_Apply
- ACL\_GPO.WSUS - Servers &amp; Test\_Deny

[![image-1611000730774.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/6nVpVIzk1c6EvmwY-image-1611000730774.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/6nVpVIzk1c6EvmwY-image-1611000730774.png)

On fait la même chose pour les 3 autres groupes à créer.

[![image-1611000751108.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/FCiowQHRCM8xTg21-image-1611000751108.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/FCiowQHRCM8xTg21-image-1611000751108.png)

Dans la console de Gestion de stratégie de groupe, on clique sur la GPO "WSUS - Workstations, Test - Workstations", dans la partie "Filtrage de sécurité", on supprime "Utilisateurs authentifiés".

[![image-1611000786350.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/zgVfxhI3mEXr118X-image-1611000786350.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/zgVfxhI3mEXr118X-image-1611000786350.png)

On clique ensuite sur "Ajouter..." puis on ajoute le groupe "ACL\_GPO.WSUS - Workstations &amp; Test\_Apply".

[![image-1611000843096.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/lVrl4ly1i4Xn9XNF-image-1611000843096.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/lVrl4ly1i4Xn9XNF-image-1611000843096.png)

Dans l’onglet Délégation, on ajoute « Utilisateurs authentifiés » en lecture.

[![image-1611001098230.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/nzghmKqvGUDwZH9C-image-1611001098230.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/nzghmKqvGUDwZH9C-image-1611001098230.png)

[![image-1611001104608.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/mBdR5ZOkKnBDCfPF-image-1611001104608.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/mBdR5ZOkKnBDCfPF-image-1611001104608.png)

[![image-1611001113445.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/JEVz6hal7LtBclCT-image-1611001113445.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/JEVz6hal7LtBclCT-image-1611001113445.png)

On clique sur Avancé et on ajoute ACL\_GPO.WSUS – Workstations &amp; Test\_Deny avec les permissions refusées.

[![image-1611001124641.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/bESoz88740OwclzB-image-1611001124641.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/bESoz88740OwclzB-image-1611001124641.png)

On fait la même chose pour l’autre GPO pour les tests sur serveurs (WSUS - Servers, Test - Servers) avec les deux groupes ACL.

# Approbation des mises à jour

---

## <span style="color: #3366ff;">Présentation</span>

Il est désormais nécessaire d'approuver les mises à jour manuellement. Il ne faut pas accepter toutes les mises à jour, automatiquement, sans se renseigner et les tester sur le parc informatique.

---

## <span style="color: #3366ff;">Approbation</span>

Dans "All Updates Except Drivers", on choisit les mises à jour que l'on veut approuver puis on clique droit, et "Approuver". On sélectionne le groupe d'ordinateurs. Ici, serveurs.

> Les mises à jour que l'on souhaite approuver sont celles qui remplacent les anciennes, et celle qui n'ont pas été remplacées et qui n'en remplacent aucune (il n'y aura donc pas d'icône dans la colonne "Remplacement".
> 
> Celles-ci par exemple :
> 
> [![image-1622214654736.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/JNY4x4jYsyh9CxF3-image-1622214654736.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/JNY4x4jYsyh9CxF3-image-1622214654736.png)
> 
> Il est préférable d'avoir un groupe de test pour les grosses mises à jour (2004, 20H2, 21H1 par exemple) pour voir leur comportement sur les postes du parc.

[![image-1611257307104.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/XEX9QHWnn9QDucwF-image-1611257307104.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/XEX9QHWnn9QDucwF-image-1611257307104.png)

[![image-1611257320346.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/F6SxtWyXvvL3oTpW-image-1611257320346.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/F6SxtWyXvvL3oTpW-image-1611257320346.png)

# Installation du runtime Microsoft Report Viewer

---

## <span style="color: #3366ff;">Présentation</span>

  
Avant l'approbation d'une mise à jour, on peut voir quels ordinateurs ont besoin de cette mise à jour.

[![image-1622207536793.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/iOOY2cKsYAsD44OT-image-1622207536793.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/iOOY2cKsYAsD44OT-image-1622207536793.png)

Cependant, s'il ont clique, il est nécessaire d'avoir "Microsoft Report Viewer 2012 runtime".

[![image-1622207677584.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/B8gFtGNf3ZptBGtw-image-1622207677584.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/B8gFtGNf3ZptBGtw-image-1622207677584.png)

---

## <span style="color: #3366ff;">Installation</span>

> **Attention :** avant l'installation, il faut fermer la console WSUS.

Avant son installation, il faut installer "[Microsoft System CLR Types for Microsoft SQL Server 2012](https://www.microsoft.com/en-ca/download/details.aspx?id=29065)".

Sur cette page, dans la partie "Install Instructions", on choisit "Microsoft® System CLR Types for Microsoft® SQL Server® 2012" et on télécharge la version x64 puis on l'installe.

On installe ensuite "[Microsoft Report Viewer 2012 Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=35747)".

---

## <span style="color: #3366ff;">Conclusion</span>

Désormais, en cliquant, la fenêtre de rapport s'ouvre.

[![image-1622207958724.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/JO44WN6vQzmsO8Vq-image-1622207958724.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/JO44WN6vQzmsO8Vq-image-1622207958724.png)

On trouve bien les ordinateurs ayant besoin de cette mise à jour.

[![image-1622207987969.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/EvE5EI9PaK1qnukh-image-1622207987969.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/EvE5EI9PaK1qnukh-image-1622207987969.png)

# Approbation automatique des mises à jour de définition (Windows Defender)

---

## <span style="color: #3366ff;">Présentation</span>

Il est important d'approuver automatiquement les mises à jour de définition de Windows Defender, dans le but d'avoir l'anti-virus à jour et donc protégé au mieux le parc.

<p class="callout warning">En soit, déployer via WSUS les mises à jour de Defender n'est pas primordial. A chaque mise à jour, WSUS retélécharge tout (60-70mo en moyenne pour le moment), alors que de passer d'une mise à jour à une autre prend environ 1mo, selon la mise à jour des définitions.  
Cela peut être utile en cas de déploiement massif d'appareils, pour éviter que tous les postes, lors du déploiement, téléchargent chacun les définitions.</p>

---

## <span style="color: #3366ff;">Approbation automatique</span>

Dans la console WSUS, on se rend dans Options, puis Approbations automatiques.

[![image-1622304449770.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/mICaXxxEKiBdLxfX-image-1622304449770.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/mICaXxxEKiBdLxfX-image-1622304449770.png)

On crée une nouvelle règle.

[![image-1622304547275.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/GBSTRH795fnOra6U-image-1622304547275.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/GBSTRH795fnOra6U-image-1622304547275.png)

On coche les deux premières cases, on choisit Microsoft Defender Antivirus, puis on donne un nom à la règle.

[![image-1622304850870.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/izGU9siEa0sosnJs-image-1622304850870.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/izGU9siEa0sosnJs-image-1622304850870.png)

---

## <span style="color: #3366ff;">Conclusion</span>

Ainsi, à chaque synchronisation et ajout d'une mise à jour de définition de Microsoft Defender Antivirus, elle sera automatiquement approuvée par le serveur WSUS.

# Mise en place du TLS/SSL pour WSUS

---

## <span style="color: #3366ff;">Présentation</span>

Par défaut, WSUS ne chiffre pas les données. De nombreuses failles ont été découvertes, et pour les corriger, il faut activer le SSL. Pour cela, on aura besoin de modifier la GPO de l'emplacement du WSUS (remplacer http:// par https://) et d'ajouter un certificat.  
Un exemple de l'importance du SSL :

[Vidéo YouTube faite par 2 intervenants au Black Hat](https://www.youtube.com/watch?v=mU8vw4gRaGs)

<p class="callout warning">La mise en place du SSL demandera plus de performance sur le serveur, dû au chiffrement.</p>

<p class="callout warning">Pour la suite, il est nécessaire d'avoir de nombreux modules, comme "Scripts et outils de gestion IIS", GroupPolicy.</p>

[![image-1622331584080.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/azriEqlqvJg2s1D2-image-1622331584080.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/azriEqlqvJg2s1D2-image-1622331584080.png)

---

## <span style="color: #3366ff;">Activation du SSL sur WSUS</span>

<p class="callout info">Dans mon cas, j'ai récupéré le certificat et la clé privée depuis mon serveur web (fullchain.pem et privkey.pem). J'ai converti en .pfx. Une page est disponible pour cela. De plus j'ai défini un mot de passe.</p>

```Powershell
Import-Module ServerManager
Add-WindowsFeature Web-Scripting-Tools
Install-WindowsFeature GPMC
Install-Module -Name PowerShellGet -Force
Install-Module –Name IISAdministration
Import-Module WebAdministration
Import-Module IISAdministration
Import-Module GroupPolicy

$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain ; Write-Host $myFQDN
# 1. Create a self-signed certificate
$SelfSignedHT = @{
 DnsName = "$($env:COMPUTERNAME).$($env:USERDNSDOMAIN)".ToLower()
 CertStoreLocation = "Cert:\LocalMachine\My"
}
New-SelfSignedCertificate @SelfSignedHT
$cert = Get-ChildItem -Path Cert:\LocalMachine\My -SSLServerAuthentication
# 2. Export its public key
Export-Certificate -Cert $cert -Type CERT -FilePath ~/documents/cert.cer
# 3. Import the public key in the Trusted Root Certificate Authorities store
Import-Certificate -FilePath ~/documents/cert.cer -CertStoreLocation Cert:\LocalMachine\Root
# 4. Select this certificate in the SSL bindings
$cert | New-Item IIS:\SslBindings\0.0.0.0!8531
# MANUALLY require SSL IIS - voir plus bas
# 6. Switch WSUS to SSL
& 'C:\Program Files\Update Services\Tools\WsusUtil.exe' configuressl $("$myFQDN".ToLower())
# 7. Change your GPO to point to the new URL
$key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'
$uri = 'https://{0}:8531' -f $("$myFQDN".ToLower())
Get-GPO -All | Foreach-Object { 
 if ($_ | Get-GPRegistryValue -Key $key -ValueName WUServer -EA 0) {
  $_ | Set-GPRegistryValue -Key $key -ValueName WUServer       -Value $uri -Type String
  $_ | Set-GPRegistryValue -Key $key -ValueName WUStatusServer -Value $uri -Type String
 }
}
```

Sur IIS, pour chaque page, on change les paramètres SSL.

[![image-1622335550206.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/hqBOIV8UNL6LyrNb-image-1622335550206.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/hqBOIV8UNL6LyrNb-image-1622335550206.png)

[![image-1622335859699.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/YRq0fSuUVjmmHQaq-image-1622335859699.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/YRq0fSuUVjmmHQaq-image-1622335859699.png)

On fait cela pour SimpleAuthWebService, DSSAuthWebService, ServerSyncWebService, APIRemoting30 et ClientWebService.

---

## <span style="color: #3366ff;">Publication du certificat</span>

Dans la GPO "WSUS - Location", on importe le certificat.

[![image-1622336143374.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/F4JjfxJIN2przCq3-image-1622336143374.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/F4JjfxJIN2przCq3-image-1622336143374.png)

On importe ~/documents/cert.cer.

[![image-1622336278780.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/ILZl7Knm4NvdnVBA-image-1622336278780.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/ILZl7Knm4NvdnVBA-image-1622336278780.png)

[![image-1622340017771.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/WEt1O3AOv5pGe5vp-image-1622340017771.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/WEt1O3AOv5pGe5vp-image-1622340017771.png)

---

## <span style="color: #3366ff;">Conclusion</span>

Dans la console WSUS, on est bien en SSL.

[![image-1622340119158.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/UJA82MeBvU5NJVmX-image-1622340119158.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/UJA82MeBvU5NJVmX-image-1622340119158.png)

On peut vérifier les logs de Windows Update d'un client via l'invité Powershell :

```Powershell
Get-Windowsupdatelog
```

# Résoudre l'apparition de duplicatas de WSUS dans la console

---

## <span style="color: #3366ff;">Présentation</span>

Après la mise en place du SSL, j'ai des duplicatas dans la console WSUS.

[![image-1622381839064.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/FW7mMgdlLfjX5aSw-image-1622381839064.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/FW7mMgdlLfjX5aSw-image-1622381839064.png)

---

## <span style="color: #3366ff;">Résolution</span>

On se rend dans %appdata%\\Microsoft\\MMC\\ et on supprime tous les fichiers de ce dossier. On redémarre ensuite le serveur WSUS.

<p class="callout info">Il faudra sûrement recréer les vues précédemment créées.</p>

---

## <span style="color: #3366ff;">Conclusion</span>

On a désormais qu'un seul serveur dans la console.

[![image-1622382138085.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/PR47z16jZmUmGjgn-image-1622382138085.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/PR47z16jZmUmGjgn-image-1622382138085.png)

# Installation automatique des définitions de Microsoft Defender

---

## <span style="color: #3366ff;">Présentation</span>

Par défaut, les définitions de Microsoft Defender sont mises à jour toutes les 24 heures, ou via Windows Update selon la fréquence de recherche de mises à jour. Cependant, selon les GPO mises en place précédemment, elles ne s'installent pas automatiquement (sauf à l'heure planifiée pour les Workstations).

<p class="callout warning">En soit, déployer les mises à jour de Defender n'est pas primordial. A chaque mise à jour, WSUS retélécharge tout (60-70mo en moyenne pour le moment), alors que de passer d'une mise à jour à une autre prend environ 1mo, selon la mise à jour des définitions.  
Cela peut être utile en cas de déploiement massif d'appareils, pour éviter que tous les postes, lors du déploiement, téléchargent chacun les définitions.</p>

---

## <span style="color: #3366ff;">Installation automatique des définitions</span>

Pour résoudre ce problème, on va utiliser une GPO.

Dans WSUS - Servers et WSUS - Workstations, on se rend ici, et on définit la fréquence pour une heure. Pourquoi une heure ? Dans le but d'avoir des définitions toujours à jour.

[![image-1622461546084.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/JTzj7CbSkbZQE0lX-image-1622461546084.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/JTzj7CbSkbZQE0lX-image-1622461546084.png)

[![image-1622461562045.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/dHxu1scX3RlUXLcZ-image-1622461562045.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/dHxu1scX3RlUXLcZ-image-1622461562045.png)

---

## <span style="color: #3366ff;">Conclusion</span>

Ainsi, les définitions seront mises à jour automatiquement.

<p class="callout info">Si le serveur WSUS n'a pas la mise à jour des définitions la plus récente, elle sera téléchargée depuis Microsoft. Il est donc nécessaire d'augmenter la fréquence de synchronisation du serveur WSUS</p>

<p class="callout warning">Il est possible que sur les serveurs, on retrouve tout de même la demande d'installation en manuel. La mise à jour est pourtant déjà installée.</p>

# Windows Server 2022 et WSUS

Pour avoir les mises à jour de Windows Server 2022 dans WSUS, il faut ajouter un produit nommé "**Microsoft Server operating system-21H2**".

[![image-1640910176339.png](https://docs.khroners.fr/uploads/images/gallery/2021-12/scaled-1680-/soQFijVQDPMLKTK9-image-1640910176339.png)](https://docs.khroners.fr/uploads/images/gallery/2021-12/soQFijVQDPMLKTK9-image-1640910176339.png)

En effet, Windows Server est basé sur Windows 10 21H2.

# MDT / WDS - Déploiement de Windows



# WDS

## Installation du rôle WDS

  
On commence par ajouter le rôle WDS.

[![image-1619825540144.png](https://docs.khroners.fr/uploads/images/gallery/2021-04/scaled-1680-/VtrF746wRDJvNXTP-image-1619825540144.png)](https://docs.khroners.fr/uploads/images/gallery/2021-04/VtrF746wRDJvNXTP-image-1619825540144.png)

[![image-1619825577489.png](https://docs.khroners.fr/uploads/images/gallery/2021-04/scaled-1680-/h5OGzjlSuI3pxkNP-image-1619825577489.png)](https://docs.khroners.fr/uploads/images/gallery/2021-04/h5OGzjlSuI3pxkNP-image-1619825577489.png)

## Configuration du rôle WDS

On ouvre la console "Services de déploiement Windows".

On clique droit sur le nom du serveur et sélectionne **Configurer le serveur.**

On clique sur **Suivant**.

<span class="icon-manip"> </span>On sélectionne le mode **Intégré à Active Directory**.

On choisit un répertoire sur une autre partition.

[![image-1619989387158.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/IecrwHXxmEfdbQYu-image-1619989387158.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/IecrwHXxmEfdbQYu-image-1619989387158.png)

[![image-1619989414103.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/WmeoRLOM2Yeckubk-image-1619989414103.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/WmeoRLOM2Yeckubk-image-1619989414103.png)

On autorise tous les ordinateurs. La meilleure pratique serait d'accepter les ordinateurs connus uniquement (les ordinateurs auront été ajoutés au préalable dans l'Active Directory, via un CSV contenant les informations des ordinateurs/adresses MAC).

[![image-1619989763516.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/QE6KvoJFEQk8qBUB-image-1619989763516.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/QE6KvoJFEQk8qBUB-image-1619989763516.png)

On récupère ensuite le fichier boot.wim dans le dossier "sources" d'une image Windows.

On l'ajoute dans "Images de démarrage".

[![image-1619994697679.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/2JCR7xfY6NkiGzwa-image-1619994697679.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/2JCR7xfY6NkiGzwa-image-1619994697679.png)

On laisse tout par défaut.

Si on démarrage un ordinateur sur le réseau :

[![image-1619994769203.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/B3g0sX9S6VfxmGXN-image-1619994769203.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/B3g0sX9S6VfxmGXN-image-1619994769203.png)

[![image-1619994777504.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/YooCJFjFqNCxWS2w-image-1619994777504.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/YooCJFjFqNCxWS2w-image-1619994777504.png)

[![image-1620123581104.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Pu3nwu3fyicwNp8h-image-1620123581104.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Pu3nwu3fyicwNp8h-image-1620123581104.png)

[![image-1620123644469.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/NX8I2s81sEZopDZI-image-1620123644469.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/NX8I2s81sEZopDZI-image-1620123644469.png)

Aucune image n'est disponible.

[![image-1620123668219.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/QtRZHCJADj2daVSX-image-1620123668219.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/QtRZHCJADj2daVSX-image-1620123668219.png)

## Déploiement simple d'une image

On clique droit sur "Images d'installation" puis "Ajouter un groupe d'images". On le nomme "Windows 10".

On ajoute une image.

[![Image installation WDS](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/nGquVvM7Ai3zDaXl-image-1620130825897.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/nGquVvM7Ai3zDaXl-image-1620130825897.png)

Si le fichier install.wim n'est pas présent mais install.wsd l'est, on peut extraire le fichier wim spécifique à la version que l'on souhaite installer. Voir [Convertir un fichier ESD en WIM](https://docs.khroners.fr/books/windows-server-2019/page/convertir-un-fichier-esd-en-wim)

[![Image installation WDS](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Wp7ym8hrbpmrx9vo-image-1620137406972.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Wp7ym8hrbpmrx9vo-image-1620137406972.png)

[![Image installation WDS](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Kp07N93XtznhpLng-image-1620137688224.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Kp07N93XtznhpLng-image-1620137688224.png)

Dans mon cas, le temps est long pour télécharger l'image de boot. Il faut changer l'interface réseau pour vmxnet 3.   
Cependant, cela engendre l'impossibilité d'obtenir une adresse IP via DHCP. On va donc ajouter le pilote pour la nouvelle carte réseau.

## Ajout d'un pilote pour le déploiement

[![Groupe de pilotes WDS](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/xsYY3tIb2Dxe0yat-image-1620141660118.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/xsYY3tIb2Dxe0yat-image-1620141660118.png)

[![Groupe de pilotes WDS](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/vgNc58XBT5Jp6NCQ-image-1620141679817.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/vgNc58XBT5Jp6NCQ-image-1620141679817.png)

On ajoute un filtre. Ici, le fabricant est VMware (machine virtuelle VMware).

[![Filtre matériel pilotes](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/n7C5M1wYI9UmKRZD-image-1620141754439.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/n7C5M1wYI9UmKRZD-image-1620141754439.png)

On peut ensuite ajouter un filtre selon l'image. Ensuite :

[![image-1620142351497.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/f58hT8XZ6B8s1E1F-image-1620142351497.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/f58hT8XZ6B8s1E1F-image-1620142351497.png)

On clique droit sur "Pilotes" et on ajoute un package de pilotes.

> Au préalable, j'ai extrait les pilotes de VMware. Voir : [https://docs.khroners.fr/books/windows-server-2019/page/extraire-les-pilotes-de-vmware-tools](https://docs.khroners.fr/books/windows-server-2019/page/extraire-les-pilotes-de-vmware-tools)

On choisit le chemin suivant dans mon cas : C:\\VMwareDrivers\\VMware\\VMware Tools\\VMware\\Drivers\\vmxnet3\\Win8\\vmxnet3.inf

[![vmxnet3 pilote](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/nAMTOfkfwLTK3iBX-image-1620145124520.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/nAMTOfkfwLTK3iBX-image-1620145124520.png)

[![image-1620145146206.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/KWy0zRySxAGsCNvS-image-1620145146206.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/KWy0zRySxAGsCNvS-image-1620145146206.png)

On l'ajoute au groupe de pilotes précédemment créé.

[![image-1620145840825.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/61LbWRiIB4QnBXIo-image-1620145840825.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/61LbWRiIB4QnBXIo-image-1620145840825.png)

Dans notre cas, il faut l'ajouter dès l'étape de Windows PE.

## Mise à disposition de pilotes pour le démarrage

[![image-1620145924768.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/VLPaSF4kokrg7n6M-image-1620145924768.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/VLPaSF4kokrg7n6M-image-1620145924768.png)

On clique sur "Rechercher des packages".

[![image-1620145968480.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/uxBihjFZ4CbucyR4-image-1620145968480.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/uxBihjFZ4CbucyR4-image-1620145968480.png)

Le pilote est ajouté.

Le PC démarre bien, avec le bon pilote. Cependant, WDS reste limité pour la customisation de l'image. On verra MDT dans un prochain chapitre.

# Extraire les pilotes de VMware Tools

On crée un dossier pour les pilotes, dans mon cas C:\\VMwareDrivers.  
On télécharge l'iso sur [https://packages.vmware.com/tools/esx/index.html](https://packages.vmware.com/tools/esx/index.html)

On le monte, puis dans un invité de commandes :

```shell
E:
setup.exe /A /P C:\VMWareDrivers
```

On choisit le chemin du dossier précédemment créé.

Les pilotes sont maintenant dans C:\\VMWareDrivers\\VMware\\VMware Tools\\VMware\\Drivers.

# Convertir un fichier ESD en WIM

On récupère les informations du fichier ESD, via un invité de commandes en Powershell. (E est le lecteur où l'ISO se trouve)

```Powershell
dism /Get-WimInfo /WimFile:E:/sources/install.esd
```

[![convertir esd wim](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/QhYZfh6cfqVqRpTz-image-1620131162075.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/QhYZfh6cfqVqRpTz-image-1620131162075.png)

On souhaite récupérer la version professionnelle de Windows 10, donc la 6ème.

On se rend dans le dossier /sources/ où install.esd est.

```Powershell
cd E:\sources\
dism /export-image /SourceImageFile:install.esd /SourceIndex:6 /DestinationImageFile:C:\Users\Administrateur.LAB\Desktop\install.wim /Compress:max /CheckIntegrity
```

# MDT : Microsoft Deployment Toolkit

---

## <span style="text-decoration: underline;">**<span style="color: #3366ff; text-decoration: underline;">Présentation</span>**</span>

MDT pour Microsoft Deployment Toolkit est un outil pour préparer le déploiement de machines Windows. Il permet d'installer des logiciels, des pilotes, gérer les paramètres de l'ordinateur... le tout durant ou après l'installation par le réseau via le service WDS.

---

## <span style="text-decoration: underline;">**<span style="color: #3366ff; text-decoration: underline;">Installation</span>**</span>

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Prérequis</span></span>

On télécharge et installe ADK et WinPE.

[https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install](https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-11/scaled-1680-/R51WGVT0n5xIKFUu-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-11/R51WGVT0n5xIKFUu-image.png)

On exécute le setup en Admin, en laissant tout par défaut.

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Installation de MDT</span></span>

On va ensuite pouvoir télécharger et installer MDT.

[https://www.microsoft.com/en-us/download/details.aspx?id=54259](https://www.microsoft.com/en-us/download/details.aspx?id=54259)

Une fois installé, on télécharge la mise à jour.

[https://support.microsoft.com/en-us/topic/windows-10-deployments-fail-with-microsoft-deployment-toolkit-on-computers-with-bios-type-firmware-70557b0b-6be3-81d2-556f-b313e29e2cb7](https://support.microsoft.com/en-us/topic/windows-10-deployments-fail-with-microsoft-deployment-toolkit-on-computers-with-bios-type-firmware-70557b0b-6be3-81d2-556f-b313e29e2cb7)

On exécute le .exe, et on copie les fichiers extraits dans %ProgramFiles%\\Microsoft Deployment Toolkit\\Templates\\Distribution\\Tools.

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Création du partage de déploiement</span></span>

On crée un nouveau dossier sur la partition du WDS, nommé DeploymentShare.

On ouvre ensuite la console Deployment Workbench et on crée notre partage.

[![image-1620214557194.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/gO6ZTXkG54zsJhww-image-1620214557194.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/gO6ZTXkG54zsJhww-image-1620214557194.png)

[![image-1620214554127.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/TMtgVOwZjTaEd9AG-image-1620214554127.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/TMtgVOwZjTaEd9AG-image-1620214554127.png)

On laisse tout par défaut, on peut modifier les options plus tard.

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Ajout du système d'exploitation</span></span>

On crée un nouveau dossier nommé "Windows 10 Pro 20H2".

[![image-1620215728893.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/h2odoPAYlCG1Vsk7-image-1620215728893.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/h2odoPAYlCG1Vsk7-image-1620215728893.png)

[![image-1620217130353.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/vfK7dbRnJV42ucYo-image-1620217130353.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/vfK7dbRnJV42ucYo-image-1620217130353.png)

[![image-1620217147215.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/vgpWLVL8NKTIfIkt-image-1620217147215.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/vgpWLVL8NKTIfIkt-image-1620217147215.png)

On monte le fichier .wim extrait auparavant.

[![image-1620217253215.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/5Gq2RlzQGlKppBJA-image-1620217253215.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/5Gq2RlzQGlKppBJA-image-1620217253215.png)

[![image-1620217292445.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/IWywKmSMhh17Me1x-image-1620217292445.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/IWywKmSMhh17Me1x-image-1620217292445.png)

[![image-1620217842891.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Xw362SFHYFvtNWc2-image-1620217842891.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Xw362SFHYFvtNWc2-image-1620217842891.png)

On le renomme.

[![image-1620220514416.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/rh2CH5N963G5CvgU-image-1620220514416.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/rh2CH5N963G5CvgU-image-1620220514416.png)

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Création d'un dossier de packages</span></span>

On crée un dossier dans "Packages" pour les mises à jour.

[![image-1620220680715.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/7fHHAhiy8wFfKMv1-image-1620220680715.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/7fHHAhiy8wFfKMv1-image-1620220680715.png)

On crée ensuite un profil de sélection.

[![image-1620220714574.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/NIY3dMYaeZ6fdBLR-image-1620220714574.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/NIY3dMYaeZ6fdBLR-image-1620220714574.png)

[![image-1620221200046.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/AanlFE2BJGYF3gVd-image-1620221200046.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/AanlFE2BJGYF3gVd-image-1620221200046.png)

[![image-1620221206891.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/b8RS7ZSH7eK47udu-image-1620221206891.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/b8RS7ZSH7eK47udu-image-1620221206891.png)

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Création de la séquence de tâches</span></span>

On crée ensuite une tâche.

[![image-1620221985646.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/UUCTfzIr6doTJDFw-image-1620221985646.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/UUCTfzIr6doTJDFw-image-1620221985646.png)

[![image-1620222084591.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/2RVwaM1PzhwxV2BH-image-1620222084591.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/2RVwaM1PzhwxV2BH-image-1620222084591.png)

[![image-1620222097969.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/eMgV1P4pwWx7FBRh-image-1620222097969.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/eMgV1P4pwWx7FBRh-image-1620222097969.png)

[![image-1620222333092.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/JnVUE2BOqKWGKoIY-image-1620222333092.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/JnVUE2BOqKWGKoIY-image-1620222333092.png)

[![image-1620222355572.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/xQK9rvikwIQxkiF0-image-1620222355572.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/xQK9rvikwIQxkiF0-image-1620222355572.png)

[![image-1620222467380.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/8Jo2jRTmggi5OVdE-image-1620222467380.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/8Jo2jRTmggi5OVdE-image-1620222467380.png)

On entre un mot de passe administrateur local.

[![image-1620222602610.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/YlzdGaccTFvIQZn4-image-1620222602610.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/YlzdGaccTFvIQZn4-image-1620222602610.png)

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Ajouter des applications</span></span>

On clique droit sur Applications puis on ajoute.

[![image-1620223381341.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/oZ6laQHXduC9eQgC-image-1620223381341.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/oZ6laQHXduC9eQgC-image-1620223381341.png)

On choisit la première option, on choisit le chemin du dossier contenant le setup, la ligne de commande

`msiexec /I googlechromestandaloneenterprise64.msi /qn`

### <span style="text-decoration: underline; color: #3366ff;">Edition de la séquence de tâches</span>

[![image-1620223929302.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/w9SM1aK6i3jAaaDI-image-1620223929302.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/w9SM1aK6i3jAaaDI-image-1620223929302.png)

[![image-1620316857129.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/WYjuGdqi1v4oE5Y9-image-1620316857129.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/WYjuGdqi1v4oE5Y9-image-1620316857129.png)

[![image-1620224010160.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/jVuiGdJHkjaiDYs4-image-1620224010160.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/jVuiGdJHkjaiDYs4-image-1620224010160.png)

On a donc mis ici le profil de sélection pour les packages.

On active ces deux tâches.

[![image-1620224068396.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/uKGxK3E5X1iPoQzk-image-1620224068396.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/uKGxK3E5X1iPoQzk-image-1620224068396.png)

On clique sur "Install Applications" et on coche la deuxième option, en renseignant l'application.

[![image-1620224405923.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/glmGNVpnTXnJqEEh-image-1620224405923.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/glmGNVpnTXnJqEEh-image-1620224405923.png)

On peut ensuite copier coller pour ajouter autant d'applications que l'on veut (on les renomme).

[![image-1620224452408.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/vbGGjyvPzcN9vS9M-image-1620224452408.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/vbGGjyvPzcN9vS9M-image-1620224452408.png)

> En laissant par défaut, le choix des applications se fait durant l'installation (cases à cocher).

### <span style="text-decoration: underline; color: #3366ff;">Sécurisation du partage pour le déploiement</span>

#### <span style="text-decoration: underline; color: #3366ff;">Créer un compte de service pour MDT dans l'Active Directory</span>

[![image-1620224611486.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/cV0qU94LeWyNqG5L-image-1620224611486.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/cV0qU94LeWyNqG5L-image-1620224611486.png)

On lui attribue un mot de passe fort.

#### <span style="text-decoration: underline; color: #3366ff;">Permissions et partage</span>

On lui donne la permission d'ajouter un ordinateur au domaine.

[![image-1620232183403.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/gNQrXoIGcHWN9Xu5-image-1620232183403.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/gNQrXoIGcHWN9Xu5-image-1620232183403.png)

Sur le partage, on désactive l'héritage en convertissant les autorisations héritées.

[![image-1620229540806.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/y8RylJpmJlKHAjhi-image-1620229540806.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/y8RylJpmJlKHAjhi-image-1620229540806.png)

[![image-1620230044670.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/ou9ltmYHwyv4JF51-image-1620230044670.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/ou9ltmYHwyv4JF51-image-1620230044670.png)

[![image-1620230050762.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/bXMbczJBuXMJXAbB-image-1620230050762.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/bXMbczJBuXMJXAbB-image-1620230050762.png)

### <span style="text-decoration: underline; color: #3366ff;">Ajouter un pilote dès le démarrage PXE</span>

On créer les dossiers.

[![image-1622636882650.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/fWbs3FLhIVvIN8Vs-image-1622636882650.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/fWbs3FLhIVvIN8Vs-image-1622636882650.png)

Ici, VMware, Inc. correspond au manufacturer (requête WMI, %Make%) et VMware7,1 au modèle (requête WMI, %Model%).

On clique droit sur "Network" (nom défini selon le pilote, ici on ajoute un pilote réseau) et on importe.

[![image-1620249633046.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Zt4OrYZKu8RZJ245-image-1620249633046.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Zt4OrYZKu8RZJ245-image-1620249633046.png)

[![image-1620249640057.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/vTYClcNEQAONkxtD-image-1620249640057.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/vTYClcNEQAONkxtD-image-1620249640057.png)

On crée un profil de sélection. (nommé WinPE x64)

[![image-1620249735653.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/Wi1DtxhBYpgWLtjK-image-1620249735653.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/Wi1DtxhBYpgWLtjK-image-1620249735653.png)

Ensuite, clic droit sur le partage de déploiement, propriétés, puis on vérifie :

[![image-1622642482324.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/RG6T6RbY1C8FhUbD-image-1622642482324.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/RG6T6RbY1C8FhUbD-image-1622642482324.png)

### <span style="text-decoration: underline; color: #3366ff;">Ajouter les pilotes VMware Tools</span>

Il suffit de créer une application comme pour 7zip ou Chrome. Il faut créer un dossier VMware Tools, y copier le contenu de l'iso à l'intérieur, puis créer l'application et choisir le dossier en source.

Pour la ligne de commandes :

```Powershell
setup64.exe /S /v /qn REBOOT=R
```

On rajoute une tâche après l'installation de VMware Tools : Restart Computer.

### <span style="text-decoration: underline; color: #3366ff;">Ajouter d'autres pilotes</span>

Pour installer d'autres pilotes, il est recommandé de créer des sous dossiers dans Windows 10 x64.

On crée d'abord un dossier pour la marque, et ensuite le modèle.

On ajoute ensuite un tâche qui va affecter une valeur à une variable. Cette valeur est "DriverGroup001".

[![image-1622907110263.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/N6wZyuLEBCL5RWmF-image-1622907110263.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/N6wZyuLEBCL5RWmF-image-1622907110263.png)

<p class="callout info">%Make% correspond au manufacturer (marque, comme Dell, HP, VMware, Lenovo, etc...  
%Model% correspond au modèle.</p>

On définit le profil de sélection pour "Nothing" dans Inject Drivers.

[![image-1622908414242.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/aTkLRpoCcBhZpKMI-image-1622908414242.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/aTkLRpoCcBhZpKMI-image-1622908414242.png)

### <span style="text-decoration: underline; color: #3366ff;">Exemple pour chaque fichier .ini</span>

Bootstrap.ini :

```
[Settings]
Priority=Default
 
[Default]
DeployRoot=\\SRV-WDS01\DeploymentShare$
UserDomain=lab.khroners.fr
UserID=mdt_admin
UserPassword=mdt_admin-password
SkipBDDWelcome=YES
```

Customsettings.ini :

```Powershell
[Settings]
Priority=Init, Model, Default, SetOSD
Properties=OSDPrefix, ComputerSerialNumber, TargetGroup

[Init]
ComputerSerialNumber=#Right(Replace(Replace(oEnvironment.Item("SerialNumber")," ",""),"-",""),6)#

[Default]
OSInstall=Y

;Computer Details
SkipComputerName=YES
SkipDomainMembership=YES
JoinDomain=lab.khroners.fr
DomainAdmin=mdt_admin
DomainAdminDomain=lab.khroners.fr
DomainAdminPassword=mdt_admin-password
MachineObjectOU=OU=Workstations,OU=Computers,OU=LAB,DC=lab,DC=khroners,DC=fr

;Skip Task Sequence
SkipTaskSequence=YES
TaskSequenceID=W10-20H2-X64

;User Data
SkipUserData=YES

;Computer Backup
SkipComputerBackup=YES

;Product Key
SkipProductKey=YES

;Language Packs
SkipPackageDisplay=YES

;Locale and Time
SkipLocaleSelection=YES
SkipTimeZone=YES
KeyboardLocale=040c:0000040c
KeyboardLocalePE=040c:0000040c
UserLocale=fr-FR
UILanguage=fr-FR
TimeZoneName=Romance Standard Time

;Roles and Features
SkipRoles=YES

;Applications
SkipApplications=NO

;Administrator Password
SkipAdminPassword=YES
AdminPassword=local-admin-password

;Local Administrators
SkipAdminAccounts=YES

;Capture Image
SkipCapture=YES

;Bitlocker
SkipBitLocker=YES

;Ready to begin
SkipSummary=YES

;Operating system deployment completed successfully	
SkipFinalSummary=YES

FinishAction=SHUTDOWN
WSUSServer=https://srv-wsus01.lab.khroners.fr:8531
SLShare=\\SRV-WDS01\DeploymentShare$\Logs
EventService=http://SRV-WDS01:9800
OSDComputerName=%OSDPrefix%-%ComputerSerialNumber%

[VMware7,1]
OSDPrefix=VM
```

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Déploiement MDT avec WSUS SSL</span></span>

Suite à mon guide pour le WSUS en SSL, il faut avoir le certificat sur le poste pour rechercher des mises à jour. Pour cela, on le fait habituellement en GPO. Cependant, ces stratégies ne sont pas appliquées <span style="text-decoration: underline;">durant</span> le déploiement. On va donc les importer.

Pour cela, il faut créer un dossier sur le serveur MDT (pas dans le partage), avec le certificat (en .cer) et un fichier de commandes .cmd. Je vais créer ce dossier dans W:\\Logiciels\\.

[![image-1622724591595.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/X8YTSJofrXaQLMJP-image-1622724591595.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/X8YTSJofrXaQLMJP-image-1622724591595.png)

Le contenu du fichier Import-Certificates :

```Powershell
certutil -addstore -f  "Root" "cert.cer"
certutil -addstore -f "TrustedPublisher" "cert.cer"
```

On ajoute ensuite ce dossier en créant une application comme pour Google Chrome &amp; 7Zip. En source, on choisit le dossier.

[![image-1622725851026.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/4D3PsKN7pLk10Z3a-image-1622725851026.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/4D3PsKN7pLk10Z3a-image-1622725851026.png)

[![image-1622725876211.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/zRzDt1X9CkSUXTzF-image-1622725876211.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/zRzDt1X9CkSUXTzF-image-1622725876211.png)

Pour la commande, on rentre le nom du fichier, c'est à dire : Import-Certificates.cmd

On ajoute ensuite une tâche dans la Task Sequence. (Pour cela, je copie colle "Chrome" par exemple, et on modifie le nom et l'application à installer)

<p class="callout warning">Faites en sorte de l'installer avant la tâche Windows Update. Dans mon cas, après VMware Tools.</p>

[![image-1622724810105.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/TC9ntRslx9uXaa3N-image-1622724810105.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/TC9ntRslx9uXaa3N-image-1622724810105.png)

On modifie également la ligne dans le fichier customsettings.ini pour ajouter le https et le port.

<p class="callout warning">**Attention :** Il faut mettre le FQDN.</p>

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Ciblage côté client pour WSUS</span></span>

Pour activer le ciblage pour le WSUS, on rajoute une tâche.

[![image-1622906264924.png](https://docs.khroners.fr/uploads/images/gallery/2021-06/scaled-1680-/osz0wTLHC9bmNZuw-image-1622906264924.png)](https://docs.khroners.fr/uploads/images/gallery/2021-06/osz0wTLHC9bmNZuw-image-1622906264924.png)

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Activation du monitoring (supervision)</span></span>

Dans les propriétés du partage du déploiement, on active le monitoring dans l'onglet "monitoring".

En se rendant sur cette URL, on devrait arriver sur la page.

http//localhost:9800/MDTMonitorEvent/

On ajoute ensuite dans le fichier customsettings.ini la ligne :

`EventService=http://SRV-WDS01:9800`

### <span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;">Génération de l'image</span></span>

On clique droit sur le partage de déploiement et "Update..."

[![image-1620249917083.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/iz1754ZanLGpVEsf-image-1620249917083.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/iz1754ZanLGpVEsf-image-1620249917083.png)

[![image-1620249927827.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/WBzzcKGILwxBrZRF-image-1620249927827.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/WBzzcKGILwxBrZRF-image-1620249927827.png)

### <span style="text-decoration: underline; color: #3366ff;">Ajout de l'image dans WDS</span>

On ajoute l'image LiteTouchPE\_x64.wim situé sur le partage dans le dossier boot dans Images de démarrage.

Dans les propriétés, on rajoute l'image.

[![image-1620251846965.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/TIUGYXZYMbwpgYfi-image-1620251846965.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/TIUGYXZYMbwpgYfi-image-1620251846965.png)

On clique droit sur le serveur, toutes les tâches puis redémarrer.

### <span style="text-decoration: underline; color: #3366ff;">Tests</span>

[![image-1620251896870.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/nx5BnimdbLHjr2pF-image-1620251896870.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/nx5BnimdbLHjr2pF-image-1620251896870.png)

On pourra automatiser le choix de la séquence de tâches en ajoutant SkipTaskSequence=YES et TaskSequenceId=l'ID\_de\_notre\_sequence\_de\_taches (dans mon cas, W10-20H2-X64).

Une fois l'installation faite :

[![image-1620313499562.png](https://docs.khroners.fr/uploads/images/gallery/2021-05/scaled-1680-/zhBIaWunOgNDoyNc-image-1620313499562.png)](https://docs.khroners.fr/uploads/images/gallery/2021-05/zhBIaWunOgNDoyNc-image-1620313499562.png)

Les applications rajoutées précédemment s'installent.

Déploiement inter-sites

Il est possible de répliquer un MDT sur différents sites.

Pour cela, il sera nécessaire de procéder à une réplication DFS ainsi que de modifier le fichier ini (customsettings).

# Créer une image de référence 21H2

## Création du déploiement

1. Ouvrez la console **DeploymentWorkbench** dans le menu Démarrer.
2. Cliquez avec le bouton droit de la souris sur "**Deployment Shares**".
3. Sélectionnez "**New Deployment Share**".
4. Saisissez le chemin d'accès au partage de déploiement : **M:\\DeploymentShare**
5. Entrez le nom du partage : **DeploymentShare$**.
6. Donnez une description au partage.
7. Dans l'écran "**Options**", acceptez les valeurs par défaut car vous pourrez les modifier ultérieurement.
8. Complétez l'assistant pour créer le partage.
9. Par défaut, les autorisations de partage sont définies sur le groupe des administrateurs locaux. Nous reviendrons sur ce point plus tard.

## Ajout d'un système d'exploitation

1. Montez l'ISO Windows 10 21H2 dans l'Explorateur de fichiers.
2. Allez dans "**Deployment Workbench**" &gt; "**Operating Systems**".
3. Faites un clic droit et sélectionnez "**New Folder**".
4. Entrez le nom "**Windows 10 21H2**" et créez le dossier.
5. Cliquez à nouveau avec le bouton droit de la souris et sélectionnez Importation du système d'exploitation.
6. Dans l'assistant, sélectionnez Ensemble complet de fichiers source, puis entrez la racine de l'ISO monté comme répertoire source.
7. Pour le nom du répertoire de destination, entrez Windows 10 21H2 et terminez l'assistant.
8. Allez dans le nœud Systèmes d'exploitation/Windows 10 21H2 et renommez les nouvelles entrées ajoutées à Windows 10 21H2 Edition pour faciliter l'utilisation.

## Création d'un dossier de paquets pour les futures mises à jour

1. Allez dans "**Deployment Workbench**" &gt; "**Packages**".
2. Créez un dossier nommé "**Windows 10 21H2**".
3. Nous allons maintenant créer un profil de sélection afin que la séquence de tâches tente uniquement d'installer les mises à jour de Windows 10 21H2 que nous rendons disponibles via MDT.

## Création d'un profil de sélection

1. Développez le nœud "**Advanced Configuration**".
2. Cliquez avec le bouton droit sur "**Selection Profile**" et sélectionnez "**New Selection Profile**".
3. Nommez-le "**Windows 10 21H2**".
4. Sur la page "**Folders**", cochez le dossier "**Windows 10 21H2**" sous "**Packages**" et terminez l'assistant.

## Importation d'applications

Si vous souhaitez ajouter des applications à votre image de référence, je vais expliquer comment ajouter VLC comme exemple d'application.

1. Allez dans "**Deployment Workbench**" &gt; "**Deployment Share**" &gt; "**Applications**".
2. Cliquez avec le bouton droit sur "**Applications**" et sélectionnez "**New Application**".
3. Dans l'assistant, choisissez "**Application with source files**".
4. Donnez à l'application le nom de : **VLC**.
5. Entrez le répertoire source des fichiers d'installation.
6. Saisissez le répertoire de destination : **VLC**.
7. Pour la ligne de commande, entrez n'importe quoi, nous y reviendrons plus tard.
8. Sur la page de résumé, cliquez sur Next et après la copie des fichiers, cliquez sur Finish pour terminer l'assistant.

## Configuration des applications

1. Cliquez avec le bouton droit sur "**VLC**", puis "**Détails**".
2. Saisissez la commande d'installation silencieuse suivante : **vlc-setup.exe /S**

VLC est maintenant configuré pour être installé silencieusement par la séquence de tâches.

Pour ajouter d'autres logiciels, vous devrez répéter les étapes ci-dessus, avec la ligne de commande appropriée pour les installer silencieusement. Vous trouverez ci-dessous quelques lignes de commande pour certains logiciels :

<span style="text-decoration: underline;">Google Chrome - Enterprise Installer</span>

`msiexec /I googlechromestandaloneenterprise64.msi /qn`

<span style="text-decoration: underline;">Adobe Reader - Enterprise Installer</span>

`AdobeReaderDC.exe /sAll`

Nous devons maintenant créer une nouvelle séquence de tâches pour créer une image de référence.

## Création d'une séquence de tâches

1. Dans "**Deployment Workbench**", allez dans "**Task Sequences**".
2. Cliquez avec le bouton droit et sélectionnez "**New Task Sequence**".
3. Pour l'ID, entrez : "**W10-21H2**".
4. Nommez-la "**Build Windows 10 21H2**".
5. Sélectionnez "**Standard Client Task Sequence**".
6. Sélectionnez le système d'exploitation "**Windows 10 21H2**".
7. Sélectionnez "**Do not specify a product key at this time**".
8. Entrez un nom d'organisation.
9. Sélectionnez "**Do not specify an Administrator password at this time**".
10. Terminez l'assistant.

Nous allons maintenant configurer la séquence de tâches.

## Configuration de la séquence de tâches

1. Cliquez avec le bouton droit sur la séquence de tâches qui vient d'être créée et sélectionnez "**Properties**".
2. Allez dans l'onglet "**Task Sequence**".
3. Développez le dossier "**Preinstall**" et sélectionnez l'élément "**Apply Patches**".
4. Changez le profil de sélection pour "**Windows 10 21H2**".
5. Allez dans le dossier "**State Restore**" et sélectionnez "**Windows Update (Pre-Application Installation)**".
6. Dans la partie droite de la fenêtre, allez dans l'onglet "**Options**".
7. Décochez la case "**Disable this step**" et faites de même avec "**Windows Update (Post-Application Installation)**".
8. Si vous avez sauté la section "<span style="text-decoration: underline;">**Importer des applications**</span>", désactivez l'élément "**Install Applications**" et passez à l'étape suivante.
9. Allez à l'élément "**Install Applications**".
10. Dans la partie droite, sélectionnez l'option "**Install a single application**" et cliquez sur le bouton "**Browse...**".
11. Sélectionnez "**Google Chrome**" et changez le nom "**Install Applications**" en "**Google Chrome**".
12. Pour installer d'autres applications, copiez et collez l'élément "**Install Applications**" et répétez les étapes 10 et 11 pour les applications de votre choix.
13. Cliquez sur "**Apply**" et fermez la séquence de tâches.

Ensuite, nous allons créer un compte d'utilisateur de domaine pour MDT afin de l'utiliser comme compte de service.

## Création d'un compte de service pour MDT dans Active Directory

1. Allez dans la console "**Utilisateurs et ordinateurs Active Directory**".
2. Créez un utilisateur appelé "**CDS\_MDT**" et donnez-lui un mot de passe complexe.
3. Donnez à l'utilisateur "**CDS\_MDT**" des permissions de contrôle total sur le partage et des permissions de contrôle total sur tous les fichiers et dossiers du partage de déploiement.

Ensuite, nous devons configurer les fichiers **Bootstrap.ini** et **CustomSettings.ini** pour définir les options de l'environnement de déploiement. Les paramètres ci-dessous permettent d'activer la connexion automatique et d'ignorer des étapes. Ils ne doivent donc être utilisés que dans des environnements de test/laboratoire.

## Configuration de Bootstrap.ini

1. Dans la console "**Deployment Workbench**", cliquez droit sur le partage de déploiement et sélectionnez "**Propriétés**".
2. Sélectionnez l'onglet "**Rules**" et cliquez sur le bouton "**Edit Bootstrap.ini**".
3. Ajoutez les paramètres ci-dessous au fichier Bootstrap.ini.
4. Fermez et enregistrez le fichier Bootstrap.ini.

```INI
[Settings]
Priority=Default
 
[Default]
DeployRoot=\\SERVER-NAME\DeploymentShare$
UserDomain=domaine.fr
UserID=CDS_MDT
UserPassword=motdepasse
SkipBDDWelcome=YES
```

## Configuration de CustomSettings.ini

Dans l'onglet "**Rules**" de la fenêtre des propriétés du **Deployment Share**, ajoutez les paramètres ci-dessous.

```INI
[Settings]
Priority=Default
; Si vous n'utilisez pas de serveur WSUS pour les mises à jour, supprimez ou mettez en commentaire la ligne ci-dessous et decommentez l'autre.
Properties=TargetGroup
; Properties=MyCustomProperty

[Default]
TargetGroup=MDT
OSInstall=Y
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
SkipLocaleSelection=YES
SkipTimeZone=YES
SkipDomainMembership=YES
SkipSummary=YES
SkipFinalSummary=YES
SkipComputerName=YES
SkipUserData=YES

_SMSTSORGNAME=Partage de reference
_SMSTSPackageName=%TaskSequenceName%
DoCapture=YES
ComputerBackupLocation=\\SERVER-NAME\DeploymentShare$\Captures
BackupFile=%TaskSequenceID%_#year(date) & "-" & month(date) & "-" & day(date) & "-" & hour(time) & "-" & minute(time)#.wim

; Si vous voulez utiliser un serveur WSUS pour les mises à jour, utilisez cette ligne, supprimez ou mettez en commentaire les mises à jour provenant d'Internet.
WSUSServer=http://WSUS-SERVER:8530

FinishAction=SHUTDOWN
SLShare=\\SERVER-NAME\DeploymentShare$\Logs
EventService=http://SERVER-NAME:9800
```

Nous devons maintenant créer le support de démarrage pour démarrer la VM dans l'environnement de déploiement.

## Création du support de démarrage

1. Dans la console "**Deployment Workbench**", cliquez avec le bouton droit sur le partage de déploiement.
2. Sélectionnez "**Update Deployment Share**".
3. Sélectionnez "**Completely regenerate the boot images**".
4. Suivez l'assistant. La création des images de démarrage prendra un certain temps.

## Test et capture d'une image de référence

Pour tout tester, nous avons deux choix :

1. Copier le fichier ISO que nous venons de générer et l'insérer dans le lecteur CD/DVD de notre VM,
2. Se rendre dans la console "**Services de déploiement Windows**" et ajouter l'image dans "**Images de démarrage**" au format WIM.

Dans les deux cas, l'image à utiliser se nomme "**LiteTouchPE\_x64**" "et se trouve ici : **M:\\DeploymentShare\\Boot**

Créez une nouvelle VM avec la configuration suivante :

- Au moins 2x vCPUs,
- Au moins 4GB de RAM,
- Adaptateur réseau avec accès au même réseau que le serveur MDT/WDS/WSUS,
- Disque dur virtuel d'au moins 40 Go, de préférence sur un support rapide,
- Démarrez à partir du CD en utilisant le fichier LiteTouchPE\_x64.iso de MDT ou à partir du réseau (boot PXE).

<p class="callout warning">Si vous utilisez Hyper-V, veillez à ce que l'option "Utiliser les points de contrôle automatiques" est désactivée et que la VM est une génération 1. </p>

<p class="callout warning">Si vous utilisez VMware, veillez à utiliser l'option de démarrage BIOS et non UEFI.</p>

  
Démarrez la VM et elle démarrera à partir du fichier LiteTouchPE\_x64 dans l'environnement de déploiement. Vous verrez apparaître un écran portant le nom de la séquence de tâches que vous avez créée précédemment. Sélectionnez votre séquence de tâches et cliquez sur "**Suivant**" et la séquence de tâches commencera. La séquence de tâches installera **Windows 10 21H2**, effectuera la mise à jour à partir du serveur Internet/WSUS, installera les applications optionnelles si vous les avez ajoutées, puis exécutera à nouveau la mise à jour de Windows à partir du serveur Internet/WSUS. Elle exécutera ensuite **SysPrep** et tentera de redémarrer dans l'environnement de déploiement à partir du disque local et d'envoyer l'image au serveur MDT.

Lorsque ce processus est terminé, la VM est arrêtée et un fichier nommé **W10-21H2\_YEAR\_MONTH\_DAY\_HOUR\_MINUTE.wim** se trouve dans le dossier "**Captures**" du "**Deployment Share**".

Vous avez maintenant une image de référence pour Windows 10 21H2 et une installation de "**Microsoft Deployment Toolkit**", avec un partage de déploiement spécifiquement configuré pour la création et la capture d'images de référence.

# Impossible de trouver le fichier script "C:\LTIbootstrap.vbs".

Si vous rencontrez l'erreur suivante : "**Impossible de trouver le fichier script "C:\\LTIbootstrap.vbs.**", il y a deux solutions.

1. Vous utilisez une machine virtuelle Hyper-V de génération 2. Dans ce cas, utilisez plutôt une machine virtuelle de génération 1 (donc en mode BIOS).
2. Vous utilisez VMware (Workstation, ESXI, Fusion...). Dans ce cas, modifier l'option de démarrage en BIOS au lieu de EFI par défaut.

# Déployer une image de référence avec MDT et WDS

## Introduction

Nous allons reproduire des étapes très similaires à la création de l'image de référence.

## Création du partage de déploiement

1. Ouvrez la console "**Deployment Workbench**" dans le menu Démarrer.
2. Cliquez avec le bouton droit sur "**Deployment Shares**".
3. Sélectionnez "**New Deployment Share**".
4. Saisissez le chemin d'accès au partage de déploiement : "**M:\\Deploy**".
5. Entrez le nom du partage : "**Deploy$**".
6. Donnez une description au partage.
7. Acceptez les valeurs par défaut car nous pourrons les modifier ultérieurement.
8. Par défaut, les autorisations de partage sont définies sur le groupe des administrateurs locaux. Nous reviendrons sur ce point plus tard.

## Ajouter un système d'exploitation

1. Allez dans la console "**Deployment Workbench**" &gt; "**Operating Systems**".
2. Cliquez avec le bouton droit et sélectionnez "**Import Operating System**".
3. Dans l'assistant, sélectionnez "**Custom image file**", puis naviguez jusqu'au dossier "**Captures**" du partage "**DeploymentShare**" comme fichier source (le fichier .wim créé suite à la capture).
4. Lorsqu'on vous demande de spécifier les fichiers de configuration du système d'exploitation, sélectionnez "S**etup files are not needed**".
5. Pour le nom du répertoire de destination, entrez un nom que vous souhaitez utiliser et terminez l'assistant.
6. Allez dans le nœud "**Operating Systems**" et renommez l'image de référence que nous venons de capturer en quelque chose de plus lisible.

## Création d'une séquence de tâches

1. Dans la console "**Deployment Workbench**", allez dans "**Task Sequences**".
2. Cliquez avec le bouton droit et sélectionnez "**New Task Sequence**".
3. Pour l'ID, entrez : "**W10-21H2**".
4. Nommez-la "**Deploy Windows 10 21H2**".
5. Sélectionnez "**Standard Client Task Sequence**".
6. Pour le système d'exploitation, sélectionnez l'image personnalisée que nous avons importée précédemment.
7. Sélectionnez "**Do not specify a product key at this time**" si vous utilisez KMS.
8. Saisissez un nom d'organisation.
9. Saisissez le mot de passe de l'administrateur local.
10. Terminez l'assistant.

Maintenant, nous allons configurer la séquence de tâches.

## Configuration de la séquence de tâches

1. Faites un clic droit sur la séquence de tâches qui vient d'être créée et sélectionnez "**Propriétés"**.
2. Développez le dossier "**Initialisation**" dans le volet de gauche.
3. Allez sur l'élément "**Gather local only**".
4. Dans la fenêtre "**Propriétés**", sélectionnez "**Gather local data and process rules**".
5. Saisissez les éléments suivants dans "**Rules file**" : **customsettings.ini**.
6. Allez dans le dossier "**State Restore**" et sélectionnez "**Windows Update (Pre-Application Installation)**".
7. Dans la partie droite de la fenêtre "**Propriétés**", allez sur l'onglet "**Options**".
8. Décochez la case "**Disable this step**" et faites de même avec "**Windows Update (Post-Application Installation)**".
9. Sélectionnez l'élément "**Install Applications**" et cochez la case "**Disable this step**".
10. Cliquez sur "**Appliquer**" et fermez la séquence de tâches.

## Sécurisation du partage de déploiement

Dans le post précédent, nous avons créé un utilisateur appelé mdt\_admin dans Active Directory pour être utilisé comme un compte de service. Nous devons donner à cet utilisateur l'accès au nouveau partage de déploiement que nous avons créé ici.

1. Allez sur le serveur ou le PC où le partage de déploiement est hébergé.
2. Donnez à l'utilisateur mdt\_admin des permissions de contrôle total sur le partage et des permissions de contrôle total sur tous les fichiers et dossiers du partage de déploiement.
3. Vous pouvez également donner des autorisations similaires aux utilisateurs ou aux groupes qui vont utiliser le partage de déploiement.

Ensuite, nous devons configurer les fichiers Bootstrap.ini et CustomSettings.ini pour contrôler certains aspects de l'environnement de déploiement. Les paramètres ci-dessous sont une configuration minimale de mon laboratoire, et vous pouvez vouloir ajouter plus de temps.

## Configuration de Bootstrap.ini

1. Dans Deployment Workbench, cliquez avec le bouton droit de la souris sur le partage de déploiement et sélectionnez Propriétés.
2. Sélectionnez l'onglet Rules et cliquez sur le bouton Edit Bootstrap.ini.
3. Ajoutez les paramètres ci-dessous au fichier Bootstrap.ini.
4. Fermez et enregistrez le fichier Bootstrap.ini.

## Configuration de CustomSettings.ini

Les paramètres ci-dessous méritent quelques explications. La section \[Virtual Machine\] concerne l'installation des pilotes, que nous aborderons plus tard dans cet article. La section Join Domain est importante. Ici, j'ai mis le compte mdt\_admin à utiliser comme compte pour joindre le périphérique en cours d'imagerie au domaine contoso.com. Si vous suivez ce guide à la lettre, le compte mdt\_admin n'aura pas les autorisations appropriées pour joindre un périphérique à un domaine, et vous devez donc soit lui donner les autorisations requises, soit créer un nouveau compte dans ce but précis.

Les autres paramètres sont les préférences d'emplacement relatives au Royaume-Uni et les paramètres de résolution qui empêchent le périphérique fini d'adopter par défaut une résolution de 1024 x 768, et d'utiliser à la place la résolution recommandée que Windows reçoit de l'écran.

Dans l'onglet Règles de la fenêtre des propriétés de Deployment Share, ajoutez les paramètres ci-dessous.

Nous devons maintenant créer le support de démarrage pour démarrer la VM dans l'environnement de déploiement.

## Création du support de démarrage

1. Dans Deployment Workbench, cliquez avec le bouton droit de la souris sur le partage de déploiement.
2. Sélectionnez Update Deployment Share.
3. Sélectionnez Completely regenerate the boot images.
4. Suivez l'assistant. La création des images de démarrage prendra un certain temps.

## Test de la séquence de tâches

Pour tout tester, nous devons copier le fichier ISO que nous venons de générer. Il se trouve dans le dossier Boot du Deployment Share. Allez sur le serveur ou le PC qui héberge le partage de déploiement et naviguez jusqu'au dossier de démarrage. Il devrait y avoir à l'intérieur un fichier nommé LiteTouchPE\_x64.iso. Copiez ce fichier à un endroit où une machine virtuelle Hyper-V pourra y accéder. Pour éviter toute confusion avec l'ISO que nous avons généré à partir du partage de déploiement Build, nous ajouterons -deploy au nom de ce nouvel ISO. Créez une nouvelle VM dans Hyper-V avec la configuration suivante :

Pour Hyper-V uniquement : Génération 1, pas 2. Des problèmes ont été signalés avec des VM de génération 2.

- Au moins 2x vCPUs
- Au moins 4GB de RAM
- Adaptateur réseau avec accès au réseau local.
- Disque dur virtuel d'au moins 40 Go, de préférence sur un support rapide.
- Démarrez à partir du CD en utilisant le fichier LiteTouchPE\_x64-deploy.iso de MDT.
- Si vous utilisez Hyper-V sous Windows 10 1709 ou supérieur, assurez-vous que l'option Utiliser les points de contrôle automatiques est désactivée.

Démarrez la VM et elle démarrera à partir de l'iso LiteTouchPE\_x64-deploy.iso dans l'environnement de déploiement. Un écran de connexion s'affichera et vous devrez vous connecter avec les informations d'identification Active Directory qui ont accès au partage de déploiement. Une fois connecté, vous verrez apparaître un écran portant le nom de la séquence de tâches que vous avez créée précédemment. Sélectionnez votre séquence de tâches et cliquez sur Next. Vous serez invité à entrer un nom pour le dispositif, il sera également ajouté à Active Directory sous ce nom. Cliquez sur Next et la séquence de tâches commencera.

Lorsque la séquence de tâches est terminée, la VM est arrêtée.

Ceci termine le test de base de la séquence de tâches de déploiement. Nous allons maintenant passer aux pilotes et à une configuration plus poussée.

## Configuration des associations d'applications par défaut

Voici comment configurer les associations d'applications par défaut dans la séquence de tâches de déploiement.

1. En utilisant une installation existante de Windows 10, naviguez vers Paramètres &gt; Système &gt; Applications par défaut.
2. Définissez les applications par défaut et toute autre association de fichiers, le cas échéant.
3. Ouvrez Windows PowerShell (Admin) en cliquant avec le bouton droit de la souris sur le bouton Windows/Démarrer ou en appuyant sur Win + X.
4. Dans la fenêtre PowerShell, tapez ce qui suit et appuyez sur Entrée : Dism /Online /Export-DefaultAppAssociations:C:\\AppAssoc.xml
5. Après quelques secondes, vous devriez voir L'opération s'est déroulée avec succès dans la fenêtre PowerShell.
6. Naviguez jusqu'à C:\\ et copiez AppAssoc.xml dans votre partage de déploiement MDT : \\SERVER-NAME\\Deploy$\\\_custom.
7. Ouvrez le Deployment Workbench et accédez à Deployment Share &gt; Task Sequences.
8. Cliquez avec le bouton droit de la souris sur la séquence de tâches Déployer Windows 10 21H2 et sélectionnez Propriétés.
9. Cliquez sur l'onglet Séquence de tâches et naviguez jusqu'à Postinstall &gt; Configure.
10. Cliquez sur le bouton Ajouter en haut de la vue des actions de la séquence de tâches et allez dans Général &gt; Exécuter la ligne de commande.
11. Entrez Set Default App Associations dans le champ Nom, et dans le champ Ligne de commande entrez : \[code language="text"\]Dism.exe /Image:%OSDisk%\\ /Import-DefaultAppAssociations:%DEPLOYROOT%\\Applications\\\_scripts\\AppAssoc.xml\[/code\]
12. Cliquez sur Appliquer pour enregistrer les modifications.

## Gestion des pilotes

Nous allons maintenant configurer la façon dont les pilotes sont installés pour les périphériques physiques sur lesquels nous allons déployer Windows 10. Il y a plusieurs façons de le faire, ici je vais montrer la méthode "Total Control" que j'ai utilisé plus récemment.

La première chose dont vous aurez besoin est le fabricant et les numéros de modèle de tous les appareils sur lesquels vous souhaitez déployer l'image. Vous pouvez les trouver en démarrant un appareil dans sa version actuelle de Windows ou dans l'environnement de déploiement WinPE en utilisant le disque de démarrage LiteTouch\_x64.iso ou un démarrage PXE. Voici un article précédent que j'ai écrit sur la façon de configurer le démarrage PXE pour MDT si nécessaire : Démarrage PXE pour Microsoft Deployment Toolkit.

Lorsque le périphérique est démarré dans l'environnement de déploiement, appuyez sur F8 pour obtenir une invite de commande, et tapez les commandes suivantes :

wmic computersystem get manufacturer  
wmic computersystem get model

  
Le résultat de ces commandes est le nom du fabricant et le numéro de modèle dont vous aurez besoin. La prochaine chose dont vous aurez besoin, ce sont les pilotes. Windows 10 est bon pour installer les pilotes manquants à partir de Windows Update, mais cela peut prendre un certain temps et il serait préférable que le périphérique fonctionne avec tous les pilotes dont il a besoin une fois le déploiement terminé.

La plupart des grands fabricants (Dell, HP, Lenovo) font un travail décent en fournissant des pilotes qui peuvent être utilisés avec MDT. Si vous avez des difficultés à les trouver, vous pouvez utiliser le catalogue Microsoft Update pour rechercher et télécharger les pilotes spécifiques que Windows Update installe et les utiliser avec MDT. Une fois que vous avez les pilotes dont vous avez besoin, nous devons les ajouter à MDT.

1. Ouvrez le Deployment Workbench.
2. Accédez à Deployment Share &gt; Out-of-Box Drivers.
3. Faites un clic droit et sélectionnez Nouveau dossier, nommez le dossier La sortie du fabricant.
4. Cliquez avec le bouton droit de la souris sur le dossier Manufacturer et sélectionnez New Folder.
5. Nommez le dossier en fonction du modèle de périphérique pour lequel nous allons importer des pilotes.
6. Cliquez avec le bouton droit de la souris sur le dossier que vous venez de créer et créez des dossiers pour chaque type de pilote que vous ajouterez, par exemple Graphics, Chipset, Bluetooth. NOTE : Ceci est juste pour la commodité et n'est pas nécessaire pour l'installation des pilotes.
7. Faites un clic droit sur un dossier de type de pilote et sélectionnez Importer des pilotes.
8. Entrez le répertoire source des pilotes pour ce type de pilote.
9. Cochez la case Importer les pilotes même s'ils sont des doublons d'un pilote existant.
10. Cliquez sur Suivant et terminez l'assistant. L'assistant copiera tous les fichiers nécessaires dans le dossier du type de pilote.
11. Répétez les étapes 7-10 pour chaque type de pilote requis.
12. Enfin, répétez les étapes 3 à 11 pour chaque fabricant et modèle requis.

Si vous avez de nombreux fabricants et modèles différents, ce processus peut être assez fastidieux. J'ai créé un script PowerShell pour automatiser le processus, il est sur mon GitHub ici. Il nécessite une certaine documentation que je fournirai dans un post séparé.

Nous devons maintenant modifier la séquence de tâches de déploiement pour configurer l'emplacement du pilote.

1. Allez dans l'atelier de déploiement et les séquences de tâches, sélectionnez la séquence de tâches Déployer Windows 10.
2. Allez sur l'onglet Séquence de tâches dans la fenêtre Propriétés.
3. Naviguez jusqu'à Preinstall et sélectionnez Enable Bitlocker (Offline), puis allez dans le menu Add, General et sélectionnez Set Task Sequence Variable.
4. Vous devriez avoir une nouvelle variable vide Set Task Sequence Variable sous Enable Bitlocker (Offline).
5. Renommez la variable vide Set Task Sequence Variable en Set DriverGroup.
6. Dans le panneau Propriétés, entrez ce qui suit pour Task Sequence Variable : DriverGroup001.
7. Dans le panneau Propriétés, entrez la valeur suivante : %Make%\\%Model%.
8. Maintenant, descendez et sélectionnez Inject Drivers.
9. Dans le panneau Propriétés, changez la liste déroulante Choose a selection profile (Choisir un profil de sélection) en Nothing (Rien).
10. Sélectionnez l'option Installer tous les pilotes du profil de sélection.
11. Cliquez sur Appliquer pour enregistrer les modifications et sur OK pour fermer la séquence de tâches.

La séquence de tâches est maintenant configurée pour installer les pilotes de tout périphérique dont les pilotes se trouvent dans la structure de dossier correcte sous Out-of-Box Drivers.

Démarrez le périphérique physique dans l'environnement de déploiement et exécutez la séquence Déployer Windows 10 21h2. Une fois l'opération terminée, vérifiez le Gestionnaire de périphériques et tous les périphériques devraient être installés avec succès.

## Ajout de pilotes à l'image de démarrage de MDT

Il peut être nécessaire d'ajouter des pilotes à l'image de démarrage MDT pour des périphériques tels que des cartes de stockage ou de réseau. Pour déterminer si des pilotes sont nécessaires :

1. Démarrez le périphérique en question dans l'environnement de déploiement et appuyez sur F8 pour faire apparaître une invite de commande.
2. Tapez ipconfig et si vous disposez d'une adresse IP, vous ne devriez pas avoir à ajouter de pilotes d'adaptateurs réseau.
3. Tapez diskpart, et lorsque diskpart est chargé, tapez list disk. Si le disque dur local est répertorié, vous ne devriez pas avoir à ajouter de pilotes de stockage.

Si vous devez ajouter des pilotes à l'image de démarrage :

1. Dans le Deployment Workbench, accédez à Deployment Share &gt; Out-of-Box Drivers.
2. Cliquez avec le bouton droit de la souris et sélectionnez Nouveau dossier, appelez le dossier WinPE x64.
3. Cliquez avec le bouton droit de la souris sur le dossier WinPE x64 et sélectionnez New Folder.
4. Nommez le dossier d'un nom approprié au fabricant du périphérique pour lequel vous allez ajouter des pilotes, puis créez un autre dossier à l'intérieur pour le modèle du périphérique.
5. Faites un clic droit sur le dossier du modèle que vous venez de créer et créez des dossiers pour chaque type de pilote que vous ajouterez, par exemple Stockage, Réseau.
6. Pour importer les pilotes, faites un clic droit sur un dossier de type de pilote et sélectionnez Importer des pilotes.
7. Entrez le répertoire source des pilotes et cochez la case Importer les pilotes même s'ils sont des doublons d'un pilote existant.
8. Cliquez sur Suivant et terminez l'assistant. L'assistant copiera tous les fichiers nécessaires dans le dossier du type de pilote.
9. Répétez les étapes 6 à 8 pour chaque type de pilote requis.
10. Nous devons maintenant créer un profil de sélection pour WinPE x64.
11. Allez dans Configuration avancée puis Profils de sélection.
12. Cliquez avec le bouton droit de la souris sur Selection Profiles et sélectionnez New Selection Profile.
13. Entrez WinPE x64 comme nom de profil de sélection.
14. Dans la liste des dossiers, naviguez jusqu'à DS001:\\ &gt; Out-of-Box Drivers &gt; WinPE x64 et cochez la case à côté du dossier.
15. Cliquez sur Next &gt; Next &gt; Finish pour terminer l'assistant.
16. Cliquez avec le bouton droit de la souris sur le Deployment Share et sélectionnez Properties.
17. Allez dans l'onglet Windows PE et changez le menu déroulant Plate-forme en x64.
18. Allez dans l'onglet Drivers and Patches et changez le menu déroulant Selection profile en WinPE x64.
19. Assurez-vous que l'option Inclure uniquement les pilotes des types suivants est sélectionnée et que les options Inclure tous les pilotes réseau dans le profil de sélection et Inclure tous les pilotes de stockage de masse dans le profil de sélection sont cochées.
20. Cliquez sur Appliquer pour enregistrer les modifications, puis sur OK pour fermer la fenêtre Propriétés.
21. Cliquez avec le bouton droit de la souris sur le Deployment Share et sélectionnez Update Deployment Share.
22. Sélectionnez Completely regenerate the boot images, puis Next. Les images de démarrage seront régénérées avec les pilotes inclus.
23. Cliquez sur Terminer pour terminer l'assistant.  
    Le support de démarrage MDT devrait maintenant comporter les pilotes de réseau et/ou de stockage requis. Vous disposez maintenant d'une image de référence pour Windows 10 21H2 qui est prête à être déployée.

# MDT / WDS avec base de données SQL

On peut utiliser une base de données afin de reparamétrer des appareils (rôles, applications, nom d'ordinateur, ou des variables).

Dans mon cas, j'utilise une base de données afin de nommer les ordinateurs selon leurs adresses MAC. On peut également utiliser le numéro de série :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/MqKE3w9SyFbT40Fw-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/MqKE3w9SyFbT40Fw-image.png)

Dans mon cas, j'ai installé SQL Server 2019 Express (gratuite) : [https://go.microsoft.com/fwlink/?linkid=866658](https://go.microsoft.com/fwlink/?linkid=866658)

Dans le gestionnaire de configuration SQL, on active les canaux nommés.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/o9rTYXl4vDELIvAB-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/o9rTYXl4vDELIvAB-image.png)

On active également SQL Server Browser et on le place en automatique.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/f0RaPq5R9WV5DRAm-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/f0RaPq5R9WV5DRAm-image.png)

Dans MDT, on ajoute la base de données :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/HJyzkNTtWhFhJQgN-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/HJyzkNTtWhFhJQgN-image.png)

On spécifie ces options :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/vgh40pVY3u5bALMB-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/vgh40pVY3u5bALMB-image.png)

On clique droit sur "Database" et "Configure Database Rules".

On ne coche seulement la première case (dans mon besoin). Cela rajoute automatiquement des informations dans le customsettings.ini.

On installe ensuite "Microsoft SQL Server Management Studio".

On créer un compte :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/y3Ay92ccOl92jS7N-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/y3Ay92ccOl92jS7N-image.png)

On le nomme sql\_mdt, un mot de passe et on choisit "MDT" comme base de données par défaut.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/iLsyFGlkJMtO1hNE-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/iLsyFGlkJMtO1hNE-image.png)

Dans "User Mapping", on coche MDT.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-09/scaled-1680-/vG1EZq6eQ6t2d8ZQ-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-09/vG1EZq6eQ6t2d8ZQ-image.png)

Exemple de customsettings.ini :

```INI
[Settings]
Priority=DefaultGateway, TaskSequenceID, Default, MAKE, CSettings
Properties=TargetGroup

[Default]
OSInstall=Y

;Computer Details
SkipComputerName=YES
SkipDomainMembership=YES
JoinDomain=ad.khroners.fr
DomainAdmin=mdt_admin
DomainAdminDomain=ad.khroners.fr
DomainAdminPassword=S€CUR3DP4ssw0rD1234

;Skip Task Sequence
SkipTaskSequence=NO
;TaskSequenceID=W10PRO-21H2-X64

;Drivers
DriverGroup001=WinPE x64\%Make%

;WSUS
TargetGroup=MDT

;User Data
SkipUserData=YES

;Computer Backup
SkipComputerBackup=YES

;Product Key
SkipProductKey=YES

;Language Packs
SkipPackageDisplay=YES

;Locale and Time
SkipLocaleSelection=YES
SkipTimeZone=YES
KeyboardLocale=040c:0000040c
KeyboardLocalePE=040c:0000040c
UserLocale=fr-FR
UILanguage=fr-FR
TimeZoneName=Romance Standard Time

;Roles and Features
SkipRoles=YES

;Applications
SkipApplications=YES

;Administrator Password
SkipAdminPassword=YES
AdminPassword=local-admin-password

;Local Administrators
SkipAdminAccounts=YES

;Capture Image
SkipCapture=YES

;Bitlocker
SkipBitLocker=YES

;Ready to begin
SkipSummary=YES

;Operating system deployment completed successfully	
SkipFinalSummary=YES

FinishAction=REBOOT
WSUSServer=http://RN-SRV-WS-AAD01.ad.khroners.fr:8530

[DefaultGateway]
10.29.0.254=Brest
10.35.100.254=Rennes

[Brest]
SLShare=\\BR-SRV-WDS01.ad.khroners.fr\DeploymentShare$\Logs
EventService=http://BR-SRV-WDS01:9800

[Rennes]
SLShare=\\RN-SRV-WDS01.ad.khroners.fr\DeploymentShare$\Logs
EventService=http://RN-SRV-WDS01:9800

[W10-21H2-ADM-35]
MachineObjectOU=OU=Administratifs,OU=Workstations,OU=RENNES,OU=Sites,DC=ad,DC=khroners,DC=fr

[W10-21H2-FOR-35]
MachineObjectOU=OU=Formateurs,OU=Workstations,OU=RENNES,OU=Sites,DC=ad,DC=khroners,DC=fr

[CSettings]
SQLServer=RN-SRV-WDS01.ad.khroners.fr
Instance=SQLEXPRESS
Database=MDT
Netlib=DBMSSOCN
DBID=sql_mdt
DBPWD=S€CUR3DSqLP4ssw0rD1234
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR

```

# Modifier le registre d'une image Windows

Je modifie le registre de l'ISO de Windows afin d'empêcher la recherche automatique de pilotes via Windows Update.

Pour se faire, il faut avoir extrait le wim de l'édition que l'on souhaite (ou spécifier l'index, mais ne déployant qu'un type d'OS (la version pro), j'en ai qu'un).

```powershell
dism /mount-wim /wimfile:C:\Users\Administrateur.AD\Desktop\install.wim /mountdir:C:\AIKMount /index:1
reg load HKEY_LOCAL_MACHINE\MountedHive C:\AIKMount\Windows\System32\config\SOFTWARE
reg add HKEY_LOCAL_MACHINE\MountedHive\Microsoft\Windows\CurrentVersion\DriverSearching /v SearchOrderConfig /t REG_DWORD /d 0 /f
reg add HKEY_LOCAL_MACHINE\MountedHive\Policies\Microsoft\Windows\WindowsUpdate /v ExcludeWUDriversInQualityUpdate /t REG_DWORD /d 00000001 /f
reg unload HKEY_LOCAL_MACHINE\MountedHive
Dism /Unmount-image /MountDir:C:\AIKMount /commit
```

La première commande monte l'image dans un répertoire, la suivante monte le registre de cette image. Les deux suivantes modifient le registre, l'autre décharge le registre et la dernière démonte l'image en appliquant les modifications.

# Exemple : MDT avec SQL

Dans mon lab, j'ai déployé un MDT avec DFS pour les applications. Voici l'exemple complet :

## Fichier customsettings.ini

```ini
[Settings]
Priority=DefaultGateway, TaskSequenceID, Default, MAKE, CSettings
Properties=TargetGroup

[Default]
OSInstall=Y

;Computer Details
SkipComputerName=YES
SkipDomainMembership=YES
JoinDomain=ad.khroners.fr
DomainAdmin=mdt_admin
DomainAdminDomain=ad.khroners.fr
DomainAdminPassword=Motdepasse

;Skip Task Sequence
SkipTaskSequence=NO
;TaskSequenceID=W10PRO-21H2-X64

;Drivers
DriverGroup001=WinPE x64\%Make%

;WSUS
TargetGroup=MDT

;User Data
SkipUserData=YES

;Computer Backup
SkipComputerBackup=YES

;Product Key
SkipProductKey=YES

;Language Packs
SkipPackageDisplay=YES

;Locale and Time
SkipLocaleSelection=YES
SkipTimeZone=YES
KeyboardLocale=040c:0000040c
KeyboardLocalePE=040c:0000040c
UserLocale=fr-FR
UILanguage=fr-FR
TimeZoneName=Romance Standard Time

;Roles and Features
SkipRoles=YES

;Applications
SkipApplications=YES

;Administrator Password
SkipAdminPassword=YES
AdminPassword=local-admin-password

;Local Administrators
SkipAdminAccounts=YES

;Capture Image
SkipCapture=YES

;Bitlocker
SkipBitLocker=YES

;Ready to begin
SkipSummary=YES

;Operating system deployment completed successfully	
SkipFinalSummary=YES

FinishAction=REBOOT
WSUSServer=http://RN-SRV-WS-AAD01.ad.khroners.fr:8530
EventService=http://RN-SRV-WDS01:9800

[DefaultGateway]
10.29.0.254=Brest
10.35.100.254=Rennes

[Brest]
SLShare=\\BR-SRV-WDS01.ad.khroners.fr\DeploymentShare$\Logs
EventService=http://BR-SRV-WDS01:9800

[Rennes]
SLShare=\\RN-SRV-WDS01.ad.khroners.fr\DeploymentShare$\Logs
EventService=http://RN-SRV-WDS01:9800

[W10-22H2-ADM-35]
MachineObjectOU=OU=Administratifs,OU=Workstations,OU=RENNES,OU=Sites,DC=ad,DC=khroners,DC=fr

[W10-22H2-FOR-35]
MachineObjectOU=OU=Formateurs,OU=Workstations,OU=RENNES,OU=Sites,DC=ad,DC=khroners,DC=fr

[CSettings]
SQLServer=RN-SRV-WDS01.ad.khroners.fr
Instance=SQLEXPRESS
Database=MDT
Netlib=DBMSSOCN
DBID=sql_mdt
DBPWD=Motdepasse
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR

```

## Fichier bootstrap.ini

```ini
[Settings]
Priority=DefaultGateway, Default
 
[DefaultGateway]
10.29.0.254=Brest
10.35.100.254=Rennes

[Brest]
DeployRoot=\\BR-SRV-WDS01\DeploymentShare$

[Rennes]
DeployRoot=\\RN-SRV-WDS01\DeploymentShare$

[Default]
UserDomain=AD
UserID=mdt_admin
UserPassword=Motdepasse
SkipBDDWelcome=YES
```

## Scripts

### DeployWiz\_SelectTS.vbs

J'ai modifié ce script pour utiliser la property "TaskSequenceID" dans le customsettings.ini.

```vb.net
' // ***************************************************************************
' // 
' // Copyright (c) Microsoft Corporation.  All rights reserved.
' // 
' // Microsoft Deployment Toolkit Solution Accelerator
' //
' // File:      DeployWiz_Initialization.vbs
' // 
' // Version:   6.3.8456.1000
' // 
' // Purpose:   Main Client Deployment Wizard Initialization routines
' // 
' // ***************************************************************************


Option Explicit


'''''''''''''''''''''''''''''''''''''
'  Image List
'

Dim g_AllOperatingSystems

Function AllOperatingSystems


	Dim oOSes

	If isempty(g_AllOperatingSystems) then
	
		set oOSes = new ConfigFile
		oOSes.sFileType = "OperatingSystems"
		oOSes.bMustSucceed = false
		
		set g_AllOperatingSystems = oOSes.FindAllItems
		
	End if

	set AllOperatingSystems = g_AllOperatingSystems

End function


Function InitializeTSList
	Dim oItem, sXPathOld
	
	If oEnvironment.Item("TaskSequenceID") <> "" and oProperties("TSGuid") = "" then
		
		sXPathOld = oTaskSequences.xPathFilter
		for each oItem in oTaskSequences.oControlFile.SelectNodes( "/*/*[ID = '" & oEnvironment.Item("TaskSequenceID")&"']")
			oLogging.CreateEntry "TSGuid changed via TaskSequenceID = " & oEnvironment.Item("TaskSequenceID"), LogTypeInfo
			oEnvironment.Item("TSGuid") = oItem.Attributes.getNamedItem("guid").value
			exit for
		next
		
		oTaskSequences.xPathFilter = sXPathOld 
		
	End if

	TSListBox.InnerHTML = oTaskSequences.GetHTMLEx ( "Radio", "TSGuid" )
	
	PopulateElements
	TSItemChange

End function


Function TSItemChange

	Dim oInput
	ButtonNext.Disabled = TRUE
	
	for each oInput in document.getElementsByName("TSGuid")
		If oInput.Checked then
			oLogging.CreateEntry "Found CHecked Item: " & oInput.Value, LogTypeVerbose
		
			ButtonNext.Disabled = FALSE
			exit function
		End if
	next

End function


'''''''''''''''''''''''''''''''''''''
'  Validate task sequence List
'

Function ValidateTSList

	Dim oTS
	Dim sCmd
'ajoute
	Dim oItem
	Set oShell = createObject("Wscript.shell")
'
	set oTS = new ConfigFile
	oTS.sFileType = "TaskSequences"

	SaveAllDataElements

	If Property("TSGuid") = "" then
		oLogging.CreateEntry "No valid TSGuid found in the environment.", LogTypeWarning
		ValidateTSList = false
	End if

	oLogging.CreateEntry "TSGuid Found: " & Property("TSGuid"), LogTypeVerbose

	If oTS.FindAllItems.Exists(Property("TSGuid")) then
		oEnvironment.Item("TaskSequenceID") = oUtility.SelectSingleNodeString(oTS.FindAllItems.Item(Property("TSGuid")),"./ID")
	End if


	' Set the related properties

	oUtility.SetTaskSequenceProperties oEnvironment.Item("TaskSequenceID")

	If oEnvironment.Item("OSGUID") <> "" and oEnvironment.Item("ImageProcessor") = "" then
		' There was an OSGUID defined within the TS.xml file, however the GUID was not found 
		' within the OperatingSystems.xml file. Which is a dependency error. Block the wizard.
		ValidateTSList = False
		ButtonNext.Disabled = True
		Bad_OSGUID.style.display = "inline"
	Else
		ValidateTSList = True
		ButtonNext.Disabled = False
		Bad_OSGUID.style.display = "none"
	End if
' ajoute
	sCmd = "wscript.exe """ & oUtility.ScriptDir & "\ZTIGather.wsf"""
	oItem = oShell.Run(sCmd, , true)
'
End Function

```

### ZTIWindowsUpdate.wsf

J'ai modifié ce script pour ajouter la property "TargetGroup" pour cibler les PC lors du déploiement pour WSUS.

<p class="callout info">Il faut donc ajouter un groupe de PC dans WSUS.</p>

```vbscript
<job id="ZTIWindowsUpdate">
	<script language="VBScript" src="ZTIUtility.vbs"/>
	<script language="VBScript">
' // ***************************************************************************
' // 
' // Copyright (c) Microsoft Corporation.  All rights reserved.
' // 
' // Microsoft Deployment Toolkit Solution Accelerator
' //
' // File:      ZTIWindowsUpdate.wsf
' // 
' // Version:   6.3.8456.1000
' // 
' // Purpose:   Installs all needed updates (drivers, patches, service packs, 
' //            etc.) from the Windows Update/Microsoft Update site or WSUS 
' //            server, rebooting as required until no more updates are needed.
' // 
' // Usage:     cscript.exe [//nologo] ZTIWindowsUpdate.wsf [/debug:true]
' // 
' // ***************************************************************************

Option Explicit
RunNewInstance


'//----------------------------------------------------------------------------
'//  Global Constants
'//----------------------------------------------------------------------------

Const MSIT_WU_REBOOT_MAX = 7
Const MAX_UPDATES = 100


'//----------------------------------------------------------------------------
'//  Main Class
'//----------------------------------------------------------------------------

Class ZTIWindowsUpdate

	'//----------------------------------------------------------------------------
	'//  Class instance variable declarations
	'//----------------------------------------------------------------------------

	Public globalVariable
	Private privateVariable
	

	'//----------------------------------------------------------------------------
	'//  Constructor to initialize needed global objects
	'//----------------------------------------------------------------------------

	Private Sub Class_Initialize

		' No initialization is required

	End Sub
	
	
	'//----------------------------------------------------------------------------
	'//  Main routine
	'//----------------------------------------------------------------------------

	Function Main
	
		Dim iRetVal
		Dim Item
		Dim MSIT_WU_Count
		Dim MSIT_LogType
		Dim ServiceManager
		Dim bFoundMU
		Dim NewUpdateService
		Dim strCabPath
		Dim iResult
		Dim oProgress
		Dim bFailure, bReboot

		Main = Success

		' Validate that are not restarting from a failed install.

		If ucase(oEnv("SystemDrive")) = "X:" Then
			oLogging.CreateEntry "Environment Error: ManualRetry (From ZTIWindowsUpdate).", LogTypeInfo

			oEnvironment.Item("LTISuspend") = "LiteTouch is trying to install Windows Updates." & _
				vbNewLine & "This cannot be performed in Windows PE." & _
				vbNewLine & "If booting from a USB Flash Disk, please remove all drives before Retrying." & _
				vbNewLine & "Otherwise, ensure the hard disk is selected first in the boot order of the BIOS."
			oEnvironment.Item("SMSTSRebootRequested") = "true"
			oEnvironment.Item("SMSTSRetryRequested") = "true"
			Main = SUCCESS
			exit function
		End if


		'//----------------------------------------------------------------------------
		'//  Initialization
		'//----------------------------------------------------------------------------

		MSIT_WU_Count = oEnvironment.Item("MSIT_WU_Count")
		If not IsNumeric(MSIT_WU_Count) then
			MSIT_WU_Count = 0
		End if
		oLogging.CreateEntry "Begin Windows Update. Reboot=[" & oEnvironment.Item("SMSTSRebootRequested") & "]  Retry=[" & oEnvironment.Item("SMSTSRetryRequested") & "]  Count = " & MSIT_WU_Count , LogTypeInfo

		MSIT_WU_Count = MSIT_WU_Count + 1
		oEnvironment.Item("MSIT_WU_Count") = MSIT_WU_Count


		If oEnvironment.Item("WsusServer") = "" then
			oLogging.ReportProgress "Initializing Windows Update process (pass " & MSIT_WU_Count & ")", 0
		Else
			oLogging.ReportProgress "Initializing WSUS update process (pass " & MSIT_WU_Count & ")", 0
		End if


		If oEnvironment.Item("SMSTSRebootRequested") <> "" then
			oEnvironment.Item("SMSTSRebootRequested") = ""
		End if
		If oEnvironment.Item("SMSTSRetryRequested") <> "" then
			oEnvironment.Item("SMSTSRetryRequested") = ""
		End if

		If MSIT_WU_Count > MSIT_WU_REBOOT_MAX then
			oLogging.ReportFailure "ZTIWindowsUpdate has run and failed too many times. Count = " & MSIT_WU_Count, 9902
		End if


		' Make sure the necessary agent is in place

		iRetVal = VerifyWUA
		If iRetVal = 3010 then

			' Initiate a reboot and ask that we be re-executed

			oEnvironment.Item("SMSTSRebootRequested") = "true"
			oEnvironment.Item("SMSTSRetryRequested") = "true"
			Exit Function

		ElseIf iRetVal <> 0 then

			oLogging.ReportFailure "Unexpected issue installing the updated Windows Update Agent, rc = " & iRetVal, 9903

		End if


		' Opt-In to the Microsoft Update Agent

		On Error Resume Next
			Item = oFSO.GetFileVersion ( ees("%SystemRoot%\System32\WUAUENG.DLL" ) )
			oLogging.CreateEntry "Ready to Opt-In to Microsoft Update: WUA Version: " & Item , LogTypeInfo
			Set ServiceManager = nothing
			Set ServiceManager = CreateObject("Microsoft.Update.ServiceManager")
		On Error Goto 0

		If ServiceManager is nothing then
			oLogging.CreateEntry "Failed to Create Object: Microsoft.Update.ServiceManager" , LogTypeWarning
		Else
			ServiceManager.ClientApplicationID = "ZTIWindowsUpdate " & Version
			bFoundMU = False
			For each Item in ServiceManager.Services
				WScript.Echo "Registered Update Service: " & Item.ServiceID & "   " & Item.Name
				If Item.ServiceID = "7971f918-a847-4430-9279-4a52d1efe18d" then
					bFoundMU = True
				End if
			Next

			oLogging.CreateEntry "Microsoft Update Service:  Enabled = " & bFoundMU, LogTypeInfo
			If not bFoundMU then
				On Error Resume Next
					Err.clear
					If Err.Number <> 0 then
						oLogging.CreateEntry "There was an error getting Windows Update to opt into Microsoft Update. Please verify you are running the latest version of Windows Update Agent." , LogTypeWarning
					End if
					
					If oEnvironment.Item("WsusServer") = "" then

						'//----------------------------------------------------------------------------
						'//  Try to find the standalone muauth.cab file and install from it
						'//----------------------------------------------------------------------------
						'
						' From http://download.windowsupdate.com/v9/microsoftupdate/redir/muauth.cab
						'
						' Place this file in the Distribution\Tools folder so this script can find them.
						iResult = oUtility.FindFile("muauth.cab", strCabPath)

						If iResult <> Success then
							'// "" will force a internet search for cab file 
							strCabPath = ""
						End if

						oLogging.CreateEntry " about to begin add service ["+ strCabPath +"]", LogTypeInfo
					
						Set NewUpdateService = ServiceManager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",6,strCabPath)
						oLogging.CreateEntry " Status: " & NewUpdateService.RegistrationState, LogTypeInfo
					End if

				On error goto 0
			End if
		End if

		'//----------------------------------------------------------------------------
		'//  Process the command line
		'//----------------------------------------------------------------------------

		Dim IsRegistered, Query_Only, UpdateCommand, BadKBArticlesList
		Dim BadGUIDList

		Query_Only    = FALSE or WScript.Arguments.Named.Exists("QUERY")
		IsRegistered  = FALSE

		If WScript.Arguments.Unnamed.Count > 0 then
			UpdateCommand = WScript.Arguments.Unnamed.Item(0)
		Elseif Ucase(oEnvironment.Item("DoCapture")) = "YES" or Ucase(oEnvironment.Item("DoCapture")) = "PREPARE" then
			UpdateCommand = "IsInstalled = 0 and IsHidden = 0 and Type = 'Software'"
		Else
			UpdateCommand = "IsInstalled = 0 and IsHidden = 0"
		End if


		' Check to see if this version of Windows has been registered

		IsRegistered = FALSE
		On Error Resume Next
		For each Item in objWMI.InstancesOf("Win32_WindowsProductActivation")
			IsRegistered = Item.ActivationRequired = 0
			Exit for
		Next
		On Error Goto 0

		oLogging.CreateEntry "Command Line Procesed Query=" & QUery_Only & " Registered=" & IsRegistered & "  UpdateCommand=[" & UpdateCommand & "]" , LogTypeInfo


		Set BadKBArticlesList = oEnvironment.ListItem("WUMU_ExcludeKB")
		Set BadGUIDList = oEnvironment.ListItem("WUMU_ExcludeID")


		'//----------------------------------------------------------------------------
		'//  Search Windows Update
		'//----------------------------------------------------------------------------

		oLogging.ReportProgress "Searching for updates", 0

		Dim UpdateSession, searchResults, updatesToDownload
		Dim Downloader, Installer, UpdateResult
		Dim kbArticle, bInstall, kb, iSize
		Dim i

		On Error Resume Next
		Set updateSession = CreateObject("Microsoft.Update.Session")
		Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
		On Error Goto 0

		If updateSession is nothing then
			oLogging.ReportFailure "Failed to Create Object: Microsoft.Update.Session.", 9904
		End if
		If updatesToDownload is nothing then
			oLogging.ReportFailure "Failed to Create Object: Microsoft.Update.UpdateColl.", 9905
		End if
		updateSession.ClientApplicationID = "ZTIWindowsUpdate " & Version

		oLogging.CreateEntry "Start Search..." , LogTypeInfo
		On Error Resume Next
		Set searchResults = updateSession.CreateupdateSearcher().Search(UpdateCommand)
		If Err then
			If Err.Number = &h8024402c then
				oLogging.CreateEntry "Error searching for updates: Not Connected to Internet? (" & Err.Number & ")", LogTypeInfo
				Main = Success
			ElseIf Err.Number = &h80072ee2 then
				oLogging.CreateEntry "Error searching for updates: ERROR_INTERNET_TIMEOUT: Retry! (" & Err.Number & ")", LogTypeInfo
				oEnvironment.Item("SMSTSRebootRequested") = "true"
				oEnvironment.Item("SMSTSRetryRequested") = "true"
			ElseIf Err.Number = &h80244010 then
				oLogging.CreateEntry "Timeout Error WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS : Retry! (" & Err.Number & ")", LogTypeInfo
				' See: http://blogs.technet.com/sus/archive/2008/09/18/wsus-clients-fail-with-warning-syncserverupdatesinternal-failed-0x80244010.aspx
				oEnvironment.Item("SMSTSRebootRequested") = "false"
				oEnvironment.Item("SMSTSRetryRequested") = "true"

			Else
				TestAndLog err = 0, "Windows Update, search for updates."
				Main = Failure
			End if

			CleanupWhenDone
			Exit Function
		End if
		On Error Goto 0

		oLogging.ReportProgress "Processing " & searchResults.Updates.Count & " updates.", 0
		For each item in searchResults.Updates

			bInstall = TRUE

			On Error Resume Next

			item.AcceptEula

			If item.InstallationBehavior.CanRequestUserInput then
				bInstall = FALSE ' Do NOT install anything that can Request User Input!
			End if

			For each kb in Item.Categories
				if ucase(kb.Name) = "DRIVERS" then
					bInstall = TRUE ' Some XP drivers may be marked as CanRequestUserInput. Override!
					exit for
				elseif ucase(kb.Name) = "WINDOWS VISTA ULTIMATE LANGUAGE PACKS" then
					bInstall = FALSE ' Most users don't want *ALL* Language Packs. Too much. Override!
					exit for
				end if
			Next


			If BadKBArticlesList.Count > 0 then
				For each kbArticle in item.KBArticleIDs
					For each kb in BadKBArticlesList
						If lcase(kb) = lcase(kbArticle) then
							bInstall = FALSE ' Do NOT install any patch in the Bad KB articles list!
						End if
					Next
				Next
			End if

			For each kbArticle in BadGUIDList
				If lcase(item.Identity.UpdateID) = lcase(kbArticle) then
					bInstall = FALSE ' Do NOT install any patch in the Bad GUID articles list!
				End if
			Next


			iSize = empty
			kb = ""
			for i = 0 to item.KBArticleIDs.Count - 1
				If instr(1,Item.Title,item.KBArticleIDs(i),vbTextCompare) = 0 then
					oStrings.AddToList kb, "KB" & item.KBArticleIDs(i), " "
				End if
			next
			iSize = item.MinDownloadSize
			If item.MaxDownloadSize > 0 then 
				iSize = Item.MaxDownloadSize
			End if
			If kb <> "" then
				kb = "  [ " & kb & " ]"
			End if
			If iSize > 0 then
				kb = kb & " - " & FormatLargeSize(iSize)
			End if
			
			If bInstall = TRUE and updatesToDownload.count < MAX_UPDATES then
				oLogging.CreateEntry "INSTALL - " & item.Identity.UpdateID & " - " & Item.Title & kb, LogTypeInfo
				updatesToDownload.Add(Item)
			Else
				oLogging.CreateEntry "  SKIP  - " & item.Identity.UpdateID & " - " & Item.Title & kb, LogTypeInfo
			End if

			On Error Goto 0

		Next

		oLogging.CreateEntry "Scan complete, ready to install updates. Count = " & updatesToDownload.Count, LogTypeInfo

		If updatesToDownload.Count = 0 or Query_Only then
			oLogging.CreateEntry "This computer is up to date (Success)" , LogTypeInfo
			oEnvironment.Item("MSIT_WU_Count") = ""  ' Reset the counter

			CleanupWhenDone
			Main = Success
			Exit Function
			
		End if


		If MSIT_WU_Count > MSIT_WU_REBOOT_MAX - 1 then
			MSIT_LogType = LogTypeWarning
		Else
			MSIT_LogType = LogTypeInfo
		End if


		'//----------------------------------------------------------------------------
		'//  Download binaries
		'//----------------------------------------------------------------------------

		Set oProgress = new Progress

		oLogging.CreateEntry "Begin Downloading...", LogTypeInfo

		Set Downloader = updateSession.CreateUpdateDownloader()
		Downloader.Updates = UpdatesToDownload
		Set UpdateResult = Downloader.BeginDownload(oProgress, oProgress, vbNull)

		On Error Resume Next
		While not UpdateResult.IsCompleted
			oLogging.ReportProgress "Downloading " & UpdatesToDownload(UpdateResult.GetProgress.CurrentUpdateIndex).Title, UpdateResult.GetProgress.PercentComplete
			WScript.Sleep 500
		WEnd
		On Error Goto 0

		For item = 0 to UpdatesToDownload.Count - 1
			If not UpdatesToDownload.Item(item).IsDownloaded then
				oLogging.CreateEntry "    Failed to download: " & UpdatesToDownload.Item(item).Identity.UpdateID & _
					"  result(" & UpdateResult.GetProgress.GetUpdateResult(item).ResultCode & ") : " & UpdatesToDownload.Item(item).Title, MSIT_LogType
			End if
		Next

		On Error Resume Next
		Downloader.EndDownload UpdateResult
		On Error Goto 0


		'//----------------------------------------------------------------------------
		'//  Install Binaries
		'//----------------------------------------------------------------------------

		oLogging.CreateEntry "Begin Installation...", LogTypeInfo

		Set Installer = updateSession.CreateUpdateInstaller()
		Installer.Updates = UpdatesToDownload
		Set UpdateResult = nothing

		On Error Resume Next
		Set UpdateResult = Installer.BeginInstall(oProgress, oProgress, vbNull)
		If UpdateResult is nothing then

			' Some unknown error returned from the installer, reboot and try again.

			oLogging.CreateEntry "Installer.Install() returned Unknown failure! " & err.number & " " & Err.Description, LogTypeInfo
			oEnvironment.Item("SMSTSRebootRequested") = "true"
			oEnvironment.Item("SMSTSRetryRequested") = "true"
			Exit Function

		End if
		On Error Goto 0

		On Error Resume Next
		While not UpdateResult.IsCompleted
			oLogging.ReportProgress "Installing " & UpdatesToDownload(UpdateResult.GetProgress.CurrentUpdateIndex).Title, UpdateResult.GetProgress.PercentComplete
			WScript.Sleep 500
		WEnd
		On Error Goto 0

		bReboot = False
		bFailure = False
		For item = 0 to UpdatesToDownload.Count - 1
			If not UpdatesToDownload.Item(item).IsInstalled then
				If UpdateResult.GetProgress.GetUpdateResult(item).ResultCode <> 2 then
					oLogging.CreateEntry "    " & UpdatesToDownload.Item(item).Identity.UpdateID & _
						"  result(" & UpdateResult.GetProgress.GetUpdateResult(item).ResultCode & " / HR = " & hex(UpdateResult.GetProgress.GetUpdateResult(item).HResult) & _
						" ) : " & UpdatesToDownload.Item(item).Title , MSIT_LogType
					bFailure = True
				End if
				If UpdateResult.GetProgress.GetUpdateResult(item).RebootRequired then
					bReboot = True
				End if
			End if
		Next

		On Error Resume Next
		Installer.EndInstall UpdateResult
		On Error Goto 0


		'//----------------------------------------------------------------------------
		'//  Cleanup
		'//----------------------------------------------------------------------------

		If bFailure then

			oLogging.CreateEntry "Failure, Please run again!" , LogTypeInfo
			oEnvironment.Item("SMSTSRetryRequested") = "true"
			oEnvironment.Item("SMSTSRebootRequested") = "true"

		ElseIf bReboot then

			oLogging.CreateEntry "More to install, Please reboot and run again!" , LogTypeInfo
			oEnvironment.Item("SMSTSRetryRequested") = "true"
			oEnvironment.Item("SMSTSRebootRequested") = "true"

		Else
		
			' A recently installed MicrosoftUpdate/WindowsUpdate component *may* require more/new updates.
			' Rerun Main() to ensure that all updates are installed. Exit above when MU/WU returns NO updates.

			oLogging.CreateEntry "Success! Please rerun WindowsUpdate to ensure machine is FULLY up to date." , LogTypeInfo
			Main = Main()

			If LCase(oEnvironment.Item("SMSTSRetryRequested")) <> "true" then
				CleanUpWhenDone
			End if

		End if



	End function


	'//----------------------------------------------------------------------------
	'//  Functions
	'//----------------------------------------------------------------------------

	Function CleanUpWhenDone

		Dim NoAutoUpdateState
		NoAutoUpdateState = oEnvironment.Item("NoAutoUpdate_Previous")

		If NoAutoUpdateState = "<empty>" or NoAutoUpdateState= "" then
			oLogging.CreateEntry "Restore NoAutoUpdateKey to <empty>.", LogTypeInfo
			On Error Resume Next
				oShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate"
			On Error Goto 0
		ElseIf NoAutoUpdateState <> "" then
			oLogging.CreateEntry "Restore NoAutoUpdateKey to " & NoAutoUpdateState, LogTypeInfo
			oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate", NoAutoUpdateState, "REG_DWORD"
		Else
			oLogging.CreateEntry "Unknown previous NoAutoUpdateKey State, Do Nothing [" & NoAutoUpdateState & "].", LogTypeInfo
		End if
			
	End Function 

	Function VerifyWUA

		Dim iResult
		Dim strExePath, bUpdateNeeded, objAgentInfo
		Dim intMajorVersion
		Dim sArchitecture
		Dim iNoAutoUpdate


		'//----------------------------------------------------------------------------
		'//  Ensure the desired tracing registry entries are in place
		'//----------------------------------------------------------------------------

		On error resume next
		
		If UCase(oEnvironment.Item("Debug")) = "TRUE" then
		
			oShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace\Level", 3, "REG_DWORD"

			oShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace\Handler\Flags", &h000000ff, "REG_DWORD"
			oShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace\Handler\Level", 3, "REG_DWORD"

			oShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace\COMAPI\Flags", &h000000ff, "REG_DWORD"
			oShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace\COMAPI\Level", 3, "REG_DWORD"
			On error goto 0

		End if

		'//----------------------------------------------------------------------------
		'//  Configure Windows Update settings
		'//----------------------------------------------------------------------------

		If oEnvironment.Item("WsusServer") <> "" then

			' Configure the WSUS server in the registry.  This needs to be a URL (e.g. http://myserver).

			oLogging.CreateEntry "Configuring client to use WSUS server " & oEnvironment.Item("WsusServer"), LogTypeInfo

			oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\WUServer", oEnvironment.Item("WsusServer"), "REG_SZ"
			oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\WUStatusServer", oEnvironment.Item("WsusServer"), "REG_SZ"
' ajoute
			If oEnvironment.Item("TargetGroup") <> "" then
 				oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\TargetGroup", oEnvironment.Item("TargetGroup"), "REG_SZ"
				oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\TargetGroupEnabled", 00000001, "REG_DWORD"
			End if
'
		End if

		oLogging.CreateEntry "Configuring Windows Update settings (manual update, use server)", LogTypeInfo

		If oEnvironment.Item("NoAutoUpdate_Previous") = "" then
			On Error Resume Next
				iNoAutoUpdate = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate")
				If iNoAutoUpdate = "" then
					iNoAutoUpdate = "<empty>"
				End if
				oLogging.CreateEntry "Archive NoAUtoUpdate State: Was [" & iNoAutoUpdate & "].", LogTypeInfo
				oEnvironment.Item("NoAutoUpdate_Previous") = iNoAutoUpdate
			On Error Goto 0
		End if

		oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\UseWUServer", 1, "REG_DWORD"
		oShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate", 1, "REG_DWORD"


		' Restart the service to get the latest settings

		oShell.Run "net stop wuauserv", 0, true
		oShell.Run "net start wuauserv", 0, true


		'//----------------------------------------------------------------------------
		'//  Ensure the needed Windows Update Agent version is installed
		'//----------------------------------------------------------------------------

		bUpdateNeeded = True   ' init value, do not touch


		' See if the version is sufficient

		On Error Resume Next
		Set objAgentInfo = CreateObject("Microsoft.Update.AgentInfo")
		If Err.Number = 0 then

			' Make sure ApiMajorVersion is 4 or higher (Version 4 is needed to opt-in to Microsoft Update)

			intMajorVersion = 0   ' init value
			intMajorVersion = objAgentInfo.GetInfo("ApiMajorVersion")
			If intMajorVersion >= 4 Then
				bUpdateNeeded = False
				oLogging.CreateEntry "Windows Update Agent verion " & intMajorVersion & " found, OK to continue", LogTypeInfo
			Else
				oLogging.CreateEntry "Windows Update Agent verion " & intMajorVersion & " found, upgrade needed", LogTypeInfo
			End if

		Else
			oLogging.CreateEntry "Unable to create Microsoft.Update.AgentInfo object, Windows Update Agent upgrade is needed", LogTypeInfo
		End if


		If not bUpdateNeeded then
			VerifyWUA = 0
			Exit Function
		End if


		'//----------------------------------------------------------------------------
		'//  Try to find the standalone installer file and install from it
		'//----------------------------------------------------------------------------

		' From http://technet.microsoft.com/en-us/library/bb932139.aspx, you can obtain the
		' Windows Update Agent stand-alone installer from:
		'
		' http://go.microsoft.com/fwlink/?LinkID=100334 (WindowsUpdateAgent30-x86.exe)
		' http://go.microsoft.com/fwlink/?LinkID=100335 (windowsupdateagent30-x64.exe)
		'
		' Place these files in the Distribution\Tools\<platform> folder so this script can find them.


		sArchitecture = lcase(oEnvironment.Item("Architecture"))
		If sArchitecture = "" then
			sArchitecture = lcase(EES("%Processor_Architecture%"))
		End if
		If sArchitecture = "amd64" then
			sArchitecture = "x64"
		End if

		iResult = oUtility.FindFile("WindowsUpdateAgent30-" & sArchitecture & ".exe", strExePath)
		If iResult = Success then
			oLogging.CreateEntry "About to install updated Windows Update Agent from " & strExePath, LogTypeInfo
			iResult = oShell.Run(strExePath & " /quiet /norestart", 0, true)
			oLogging.CreateEntry "Windows Update Agent installation return code = " & iResult, LogTypeInfo
			VerifyWUA = 3010
			Exit Function
		End if

		oLogging.CreateEntry "Unable to find WindowsUpdateAgent30-" & sArchitecture & ".exe, will attempt to download", LogTypeInfo


		'//----------------------------------------------------------------------------
		'//  Download the Windows Update Agent
		'//----------------------------------------------------------------------------

		' See http://msdn2.microsoft.com/en-us/library/aa387285.aspx for the basic logic used here.


		Dim sWURedistCab, oWUXML, sFileVer1, sFileVer2, sWUDownload


		sWURedistCab = InternetFileDownload("http://update.microsoft.com/redist/wuredist.cab")
		VerifyCriticalFile sWURedistCab, "wuredist.cab"


		' Extract XML File

		oUtility.RunWithHeartbeat ees("Expand.exe -r " & sWURedistCab & " -F:wuRedist.xml %temp%")
		VerifyCriticalFile "%Temp%\WURedist.xml", "wuRedist.xml"


		' Load XML File

		Set oWUXML = oUtility.CreateXMLDOMObjectEx(EES("%Temp%\WURedist.xml"))
		If oWUXML is nothing then
			oLogging.CreateEntry "Failed to load: %Temp%\WURedist.xml" , LogTypeError
			VerifyWUA = 1
			Exit function
		End if


		' Get Local File Version

		sFileVer1 = oFSO.GetFileVersion ( ees("%SystemRoot%\System32\WUAUENG.DLL" ) )
		oLogging.CreateEntry "Current Version %SystemRoot%\System32\WUAUENG.DLL : " & sFileVer1 , LogTypeInfo


		' Get New File Version

		sFileVer2 = oWUXML.selectSingleNode ("//WURedist/StandaloneRedist/architecture[@name='" & sArchitecture & "']/@clientVersion").Text
		oLogging.CreateEntry "Current Version wuredist.cab : " & sFileVer2 , LogTypeInfo


		' Download and install if file Versions don't match

		If sFileVer1 <> sFileVer2 then
			sWUDownload = InternetFileDownload( oWUXML.DocumentElement.selectSingleNode ("//WURedist/StandaloneRedist/architecture[@name='" & sArchitecture & "']/@downloadUrl").Text )
			VerifyCriticalFile sWUDownload, "WUDownload.exe"
			iResult = oUtility.RunWithHeartbeat(sWUDownload & " /wuforce /quiet /norestart")

			VerifyWUA = iResult
			Exit Function
		End if


		' Cleanup

		On Error Resume Next
		For each item in array ( sWURedistCab, EES("%Temp%\WURedist.xml"), sWUDownload )
			If oFSO.FileExists(item) then
				oFSO.DeleteFile item
			End if
		Next
		On Error Goto 0

	End Function


	Function InternetFileDownload( InternetURL  )
		Dim InternetBuffer
		Dim ADODB

		Set ADODB = CreateObject("ADODB.Stream")
		Set InternetBuffer = CreateObject("Msxml2.XmlHttp")
		InternetBuffer.open "GET", InternetURL , false
		On Error Resume Next
		InternetBuffer.send ""
		On Error Goto 0

		If InternetBuffer.ReadyState = 4 then
			oLogging.CreateEntry "Status: " & InternetBuffer.Status & " " & InternetURL, LogTypeInfo
		Else
			oLogging.CreateEntry "Ready State : " & InternetBuffer.ReadyState & " " & InternetURL , LogTypeWarning
		End if

		If InternetBuffer.Status = 200 then
			If ADODB.State <> 0 then ADODB.Close
			ADODB.Type = 1 '(1=binary,2=Text)
			ADODB.Mode = 3 '(1=Read,2=Write,3=RW)
			ADODB.Open
			ADODB.Write InternetBuffer.ResponseBody
			ADODB.SaveToFile EES( "%temp%\" & oFSO.GetFileName(InternetURL) ) , 2
			ADODB.Close
		End if

		If InternetBuffer.Status = 200 then
			InternetFileDownload = EES( "%temp%\" & oFSO.GetFileName(InternetURL) )
		End if

	End function

	Function FormatLargeSize( lSize )

		Dim i
		For i = 1 to len(" KMGTPEZY")
			If cdbl(lSize) < 1024 ^ i then
				FormatLargeSize = int(cdbl(lSize)/(1024^(i-1))) & " " & mid(" KMGTPEZY",i,1) & "B"
				Exit function
			End if
		next

	End function

	Function EES ( EnvStr )
		EES = oShell.ExpandEnvironmentStrings( EnvStr )
	End function


	Sub VerifyCriticalFile (FileName, Description)

		If FileName = "" or not oFSO.FileExists(ees(FileName)) then
			oLogging.CreateEntry Description & " not found: " & FileName , LogTypeError
			oLogging.CreateEntry "   Most likely cause: No Internet Access or unconfigured Proxy settings!", LogTypeError
			oLogging.ReportFailure "Critical file " & FileName & " was not found, aborting", 9906
		End if

	End sub

End Class

Class Progress
	Public Default Function Process
	End Function
End Class
	</script>
</job>

```

### Raccourcis.ps1

Ce script me permet d'ajouter des raccourcis dans le bureau public de l'ordinateur.

```powershell
# Raccourci Office.com avec icône
Copy-Item "\\RN-SRV-WDS01.ad.khroners.fr\GPO$\Raccourcis\Office.ico" -Destination "C:\Office.ico"
$TargetFile = "https://www.office.com/"
$shortcutFile = "C:\Users\Public\Desktop\Portail Office Web.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$shortcut.TargetPath = $TargetFile
$shortcut.IconLocation = "C:\Office.ico"
$shortcut.Save()

# Raccourcis suite Microsoft365
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Word.lnk" -Destination "c:\users\Public\Desktop" -Force
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Excel.lnk" -Destination "c:\users\Public\Desktop" -Force
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PowerPoint.lnk" -Destination "c:\users\Public\Desktop" -Force
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\OneNote.lnk" -Destination "c:\users\Public\Desktop" -Force
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Outlook.lnk" -Destination "c:\users\Public\Desktop" -Force
Copy-Item -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Publisher.lnk" -Destination "c:\users\Public\Desktop" -Force
```

### Install\_Drivers.ps1

Ce script me permet de télécharger les pilotes via Windows Update.

```powershell
$Session = New-Object -ComObject Microsoft.Update.Session           
$Searcher = $Session.CreateUpdateSearcher() 

$Searcher.ServiceID = '7971f918-a847-4430-9279-4a52d1efe18d'
$Searcher.SearchScope =  1 # MachineOnly
$Searcher.ServerSelection = 3 # Third Party
          
$Criteria = "IsInstalled=0 and Type='Driver'"
Write-Host('Searching Driver-Updates...') -Fore Green     
$SearchResult = $Searcher.Search($Criteria)          
$Updates = $SearchResult.Updates
	
#Show available Drivers...
$Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

$UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { $UpdatesToDownload.Add($_) | out-null }
Write-Host('Downloading Drivers...')  -Fore Green
$UpdateSession = New-Object -Com Microsoft.Update.Session
$Downloader = $UpdateSession.CreateUpdateDownloader()
$Downloader.Updates = $UpdatesToDownload
$Downloader.Download()

$UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { if($_.IsDownloaded) { $UpdatesToInstall.Add($_) | out-null } }

Write-Host('Installing Drivers...')  -Fore Green
$Installer = $UpdateSession.CreateUpdateInstaller()
$Installer.Updates = $UpdatesToInstall
$InstallationResult = $Installer.Install()
if($InstallationResult.RebootRequired) { 
Write-Host('Reboot required! please reboot now..') -Fore Red
} else { Write-Host('Done..') -Fore Green }

$updateSvc.Services | ? { $_.IsDefaultAUService -eq $false -and $_.ServiceID -eq "7971f918-a847-4430-9279-4a52d1efe18d" } | % { $UpdateSvc.RemoveService($_.ServiceID) }
```

### RestoreREG.ps1

Ce script permet de restaurer le registre suite à ma modification de ce dernier avant le déploiement : [Modifier le registre d... | Docs Khroners](https://docs.khroners.fr/books/windows-server/page/modifier-le-registre-dune-image-windows)

```powershell
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching /v SearchOrderConfig /t REG_DWORD /d 00000001 /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /f
```

## Applications

### Liste

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-11/scaled-1680-/npaWrl39dQxDHCiP-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-11/npaWrl39dQxDHCiP-image.png)

### Bundle pour installer toutes les applications

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-11/scaled-1680-/NObGsn8BxoO1t20f-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-11/NObGsn8BxoO1t20f-image.png)

### Exemple de commande d'installation

#### MSI

`msiexec /I \\ad.khroners.fr\SI$\GPO\Chrome\googlechromestandaloneenterprise64.msi /qn`

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-11/scaled-1680-/S8lFhowbXfVNYjwa-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-11/S8lFhowbXfVNYjwa-image.png)

<p class="callout warning">Si le répertoire où est placé le setup est sur un partage DFS (ou simplement en dehors du DeploymentShare (à vérifier)), il faut qu'une des applications du bundle comprenne le partage dans le champ "Working Directory".</p>

#### EXE

`\\ad.khroners.fr\SI$\GPO\Bitwarden\Bitwarden-Installer-2022.10.1.exe /S /ALLUSERS`

# Erreur "Verify BCDBootEx" avec MDT

Si vous obtenez l'erreur "Verify BCDBootEx", il faut modifier le fichier LTIApply.wsf dans le dossier scripts du DeploymentShare.

On remplace :

```vbscript
TestAndFail RunBCDBootEx (sDestinationDrive & "\Windows", "/s" & gauche (oBootDrive. Drive, 2) & "/f UEFI"), 5616, "Verify BCDBootEx"
```

par :

```vbscript
TestAndFail RunBCDBootEx( sDestinationDrive & "\windows", " "), 5616,"Verify BCDBootEx"
```

# Windows Admin Center



# Installation de Windows Admin Center

Windows Admin Center va générer un certificat auto-signé qui va expirer 60 jours après l'installation. J'utilise donc un certificat Let's Encrypt converti en .ptx.

On télécharge la dernière version qui est sous le format .msi.

On lance le setup.

[![image-1611602948260.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/tzVYvZ7iMKA9PBPX-image-1611602948260.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/tzVYvZ7iMKA9PBPX-image-1611602948260.png)

[![image-1611603083763.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/v3dq9N9SA1fJa3Wo-image-1611603083763.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/v3dq9N9SA1fJa3Wo-image-1611603083763.png)

[![image-1611603101064.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/ObFXjnCAXE963veD-image-1611603101064.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/ObFXjnCAXE963veD-image-1611603101064.png)

[![image-1611603142303.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/a7vZuIsJyYa1c5s7-image-1611603142303.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/a7vZuIsJyYa1c5s7-image-1611603142303.png)

On fournit l'empreinte et on redirige le trafic.

[![image-1611603207252.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/pavD1JvUoZQMO1Lx-image-1611603207252.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/pavD1JvUoZQMO1Lx-image-1611603207252.png)

On ouvre alors le certificat .ptx.

[![image-1611603225560.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/KY5kH3Jfcr7Q4U9e-image-1611603225560.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/KY5kH3Jfcr7Q4U9e-image-1611603225560.png)

On choisit Ordinateur local.

[![image-1611603319944.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/xp28WLLQwpOHT54J-image-1611603319944.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/xp28WLLQwpOHT54J-image-1611603319944.png)

[![image-1611603350195.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/pIRgIPxZKMhE7Ckm-image-1611603350195.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/pIRgIPxZKMhE7Ckm-image-1611603350195.png)

On rentre le mot de passe pour la clé privée.

[![image-1611603373193.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/N1jGmo2ePmUDOANa-image-1611603373193.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/N1jGmo2ePmUDOANa-image-1611603373193.png)

[![image-1611603442845.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/shVdlI7wSWU5owqg-image-1611603442845.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/shVdlI7wSWU5owqg-image-1611603442845.png)

Dans le gestionnaire de certificats, on récupère l'empreinte :

[![image-1611603584515.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/sJMLOdDadBdNpiN7-image-1611603584515.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/sJMLOdDadBdNpiN7-image-1611603584515.png)

  
Une fois admin-center installé, on s'y rend et on se connecte via DOMAINE\\ADMIN\_DU\_DOMAINE

[![image-1611604235561.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/58R9Mczi0HWbtbbv-image-1611604235561.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/58R9Mczi0HWbtbbv-image-1611604235561.png)

[![image-1611604167622.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/z9rjYM3eFy3E6Lwp-image-1611604167622.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/z9rjYM3eFy3E6Lwp-image-1611604167622.png)

# Convertir un certificat letsencrypt en .pfx (admin center)

```shell
openssl pkcs12 -export -out /etc/letsencrypt/live/home.khroners.fr/cert.pfx -inkey /etc/letsencrypt/live/home.khroners.fr/privkey.pem -in /etc/letsencrypt/live/home.khroners.fr/cert.pem
```

# Ajouter des serveurs dans Admin Center

On clique sur Ajouter.

[![image-1611604457477.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/BLlRHXURvAXZbkjj-image-1611604457477.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/BLlRHXURvAXZbkjj-image-1611604457477.png)

On ajoute un serveur.

[![image-1611604480508.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/nyBrUcqSDlNt81mr-image-1611604480508.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/nyBrUcqSDlNt81mr-image-1611604480508.png)

On recherche dans Active Directory.

[![image-1611604817220.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/jFgENJyFqvPZYDkT-image-1611604817220.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/jFgENJyFqvPZYDkT-image-1611604817220.png)

[![image-1611605153660.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/ENFaoq2Tty6h51Cs-image-1611605153660.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/ENFaoq2Tty6h51Cs-image-1611605153660.png)

On clique sur un serveur puis on se connecte.

[![image-1611606428574.png](https://docs.khroners.fr/uploads/images/gallery/2021-01/scaled-1680-/det9VAQ5HENNn8wq-image-1611606428574.png)](https://docs.khroners.fr/uploads/images/gallery/2021-01/det9VAQ5HENNn8wq-image-1611606428574.png)

# Résoudre le problème de pare-feu qui se met en Public par défaut

Le problème vient du fait que le service NLA (découverte du réseau) se lance avant le service NETLOGON.

Pour cela, on va créer une dépendance.

Dans l'éditeur de registre (regedit) : HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\NlaSvc

On double clique sur "**DependOnService**" et on rajoute "NetLogon".

[![image-1641590789128.png](https://docs.khroners.fr/uploads/images/gallery/2022-01/scaled-1680-/kueEfeLX9Mn73rl6-image-1641590789128.png)](https://docs.khroners.fr/uploads/images/gallery/2022-01/kueEfeLX9Mn73rl6-image-1641590789128.png)

# Réplication multidirectionnelle avec DFS

La réplication multidirectionnelle via DFS permet de répliquer des dossiers entre différents serveurs. Cela est utile pour avoir les fichiers disponibles localement sur chaque site. Cela peut également servir pour respecter la règle du 3-2-1.

Sur chaque serveur, on installe le rôle.

```Powershell
Install-WindowsFeature "FS-DFS-Replication", "RSAT-DFS-Mgmt-Con"
```

On peut le faire via le GUI si l'on souhaite. Le rôle a le nom de "Réplication DFS".

On ouvre ensuite la console "Gestion du système de fichiers distribués DFS".

Sous "Réplication", on clique sur "Nouveau groupe de réplication...". On choisit "Groupe de réplication multi-usage".

[![image-1657830888909.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/y16GBVhnX6riRi5Q-image-1657830888909.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/y16GBVhnX6riRi5Q-image-1657830888909.png)

On entre un nom, une description.

[![image-1657830907238.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/8UYCvRDLBZnDqzt0-image-1657830907238.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/8UYCvRDLBZnDqzt0-image-1657830907238.png)

On ajoute ensuite les serveurs membres. Dans mon cas, "RN-SRV-WS-AAD01". On y ajoute également le serveur sur lequel nous sommes.

[![image-1657831087737.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/Co1pgGUqCL4khCKb-image-1657831087737.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/Co1pgGUqCL4khCKb-image-1657831087737.png)

On choisit maille pleine.

[![image-1657831100988.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/8xuVJqfXQt3mMVsX-image-1657831100988.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/8xuVJqfXQt3mMVsX-image-1657831100988.png)

On choisit la bande passante (attention aux liaisons VPN bas débit) ou une planification.

[![image-1657831136397.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/rgWqaf5k3BZOwlCk-image-1657831136397.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/rgWqaf5k3BZOwlCk-image-1657831136397.png)

On sélecte le membre principal, dans mon cas "RN-SRV-WDS01". Il sera la source initiale.

[![image-1657831161927.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/JwFcSL6KigsM2lxl-image-1657831161927.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/JwFcSL6KigsM2lxl-image-1657831161927.png)

On spécifie le chemin et les autorisations.

[![image-1657831200756.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/yf3riS85SE9YzjN7-image-1657831200756.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/yf3riS85SE9YzjN7-image-1657831200756.png)

On doit ensuite spécifier le chemin local pour chaque serveur.

[![image-1657831264258.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/c5hhFS11TM89ahzx-image-1657831264258.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/c5hhFS11TM89ahzx-image-1657831264258.png)

# Espace de noms

On installe via le GUI le rôle "**Réplication DFS"** ou via Powershell.

```Powershell
Install-WindowsFeature "FS-DFS-Namespace"
```

Dans la console DFS, on ajoute un espace de nom.

On renseigne le serveur.

[![image-1657832104746.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/HRqlGrQKYkOfkUSg-image-1657832104746.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/HRqlGrQKYkOfkUSg-image-1657832104746.png)

On rentre le nom.

[![image-1657832927610.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/NBBoo28DeLpNzM9t-image-1657832927610.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/NBBoo28DeLpNzM9t-image-1657832927610.png)

On clique sur suivant.

[![image-1657832950319.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/GEj77am6IM6VvSGD-image-1657832950319.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/GEj77am6IM6VvSGD-image-1657832950319.png)

On clique sur "Créer".

On clique droit sur notre espace de noms puis "Nouveau dossier".

On spécifie un nom et le chemin.

[![image-1657833024800.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/iWDAIU5gieJ1plY2-image-1657833024800.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/iWDAIU5gieJ1plY2-image-1657833024800.png)

On peut également se rendre dans "Réplication" et cliquer droit sur un dossier répliqué pour le publier.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/1Pdn7uQ6DoUzLUWK-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/1Pdn7uQ6DoUzLUWK-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/GEJ350rU5jy695Pe-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/GEJ350rU5jy695Pe-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/gqqZNEIjdkkt3cJK-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/gqqZNEIjdkkt3cJK-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/DCKUquW4wigmL64c-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/DCKUquW4wigmL64c-image.png)

Ce qui donne :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/qEDgyOpTqNRKoc5J-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/qEDgyOpTqNRKoc5J-image.png)

Il faut ensuite modifier les autorisations du partage (sauf si vous les avez défini au préalable).

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2022-07/scaled-1680-/jvVw5s7R4aNnqF8N-image.png)](https://docs.khroners.fr/uploads/images/gallery/2022-07/jvVw5s7R4aNnqF8N-image.png)

# AD CS : Autorité de certificat sous Windows en vue de l'authentification EAP-TLS



# Installation de l'autorité de certification racine

Je m'inspire de cette documentation, très complète : [Offline Root CA Setup | docs.mjcb.io](https://docs.mjcb.io/microsoft/windows-server/windows-server-roles-features/adcs/adcs-windows-server-2022/adcs-windows-server-2022-part-2/)

Un livre papier/kindle existe, je le recommande très fortement.

<p class="callout warning">Cette documentation est en cours de rédaction.</p>

J'utilise ici les bonnes pratiques de Microsoft qui consiste à mettre en place 2 serveurs :

- Un serveur Windows Server 2022 qui aura le rôle d'autorité de certification racine, qui sera par la suite éteint,
- Un deuxième serveur Windows Server 2022 qui aura le rôle d'autorité de certification intermédiaire, en ligne en permanence, qui délivrera les certificats clients.

On commence par mettre en place l'autorité de certification racine, qui sera par la suite offline.

A la racine du C:, on ajoute un fichier CAPolicy.inf :

```ini
[Version]
Signature = "$Windows NT$"

[PolicyStatementExtension]
Policies = AllIssuancePolicy,InternalPolicy
Critical = FALSE

; AllIssuancePolicy is set to the OID of 2.5.29.32.0 to ensure all certificate templates are available.
[AllIssuancePolicy]
OID = 2.5.29.32.0

[InternalPolicy]
OID = 1.2.3.4.1455.67.89.5
Notice = "The Khroners Labs Certification Authority is an internal resource. Certificates that are issued by this Certificate Authority are for internal usage only."
URL = http://pki.ad.khroners.fr/cps.html

[Certsrv_Server]
; Renewal information for the Root CA.
RenewalKeyLength = 4096
RenewalValidityPeriod = Years
RenewalValidityPeriodUnits = 10

; Disable support for issuing certificates with the RSASSA-PSS algorithm.
AlternateSignatureAlgorithm = 0

; The CRL publication period is the lifetime of the Root CA.
CRLPeriod = Years
CRLPeriodUnits = 10

; The option for Delta CRL is disabled since this is a Root CA.
CRLDeltaPeriod = Days
CRLDeltaPeriodUnits = 0
```

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/1Bg1gwq28oDZF52C-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/1Bg1gwq28oDZF52C-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/8JTFczsGlTn2ecbe-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/8JTFczsGlTn2ecbe-image.png)

On configure le rôle :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/Gf0pBhMQphF44n49-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/Gf0pBhMQphF44n49-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/tMHeICHCIomUs9JW-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/tMHeICHCIomUs9JW-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/MKpb8LEzEslFQzFE-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/MKpb8LEzEslFQzFE-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/4UEddjodOivDqXhw-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/4UEddjodOivDqXhw-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/QczTJKq6buL8KZcW-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/QczTJKq6buL8KZcW-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/KatyLmsPb1PDqbtZ-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/KatyLmsPb1PDqbtZ-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/unDbUef7xiU5OPAH-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/unDbUef7xiU5OPAH-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/vQSRejmDjOTM2iE1-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/vQSRejmDjOTM2iE1-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-09/scaled-1680-/acfj9JEQTXtgx4gu-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-09/acfj9JEQTXtgx4gu-image.png)

```bash
certutil.exe -setreg CA\DSConfigDN "CN=Configuration,DC=ad,DC=khroners,DC=fr"
certutil.exe -setreg CA\ValidityPeriodUnits 5
certutil.exe -setreg CA\ValidityPeriod "Years"
certutil.exe -setreg CA\CRLPeriodUnits 52
certutil.exe -setreg CA\CRLPeriod "Weeks"
certutil.exe -setreg CA\CRLOverlapPeriodUnits 12
certutil.exe -setreg CA\CRLOverlapPeriod "Hours"
net stop CertSvc
net start CertSvc
```

[Offline Root CA Setup | docs.mjcb.io](https://docs.mjcb.io/microsoft/windows-server/windows-server-roles-features/adcs/adcs-windows-server-2022/adcs-windows-server-2022-part-2/)

# Configuration Radius NPS pour l'authentification 802.1x via EAP-TLS

Cette documentation détaille la configuration du rôle NPS (Network Policy Server) sous Windows Server 2022 afin d'authentifier les utilisateurs ou ordinateurs au réseau Wifi. On peut également l'adapter pour la connexion filaire (non détaillée ici).

Parmi les méthodes d'authentification, le PEAP-TLS est la méthode la plus sécurisée, mais rarement supportée. De plus, elle chiffre la communication de la clé publique, qui n'a pas trop de sens.

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/88B2fNHkYQCazWxz-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/88B2fNHkYQCazWxz-image.png)

Vous trouverez plus d'informations ici : [Protocole EAP (Extensible Authentication Protocol) pour l’accès réseau dans Windows | Microsoft Learn](https://learn.microsoft.com/fr-fr/windows-server/networking/technologies/extensible-authentication-protocol/network-access?tabs=eap-tls%2Cserveruserprompt-peap%2Ceap-sim#authentication-method-configuration-settings)

Après l'installation du rôle NPS, on définit la stratégie réseau comme ceci :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/Q7gFxbWaEv9641MG-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/Q7gFxbWaEv9641MG-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/iyvaW913LjTzhp8o-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/iyvaW913LjTzhp8o-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/Xrz53PKkR6QlOWje-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/Xrz53PKkR6QlOWje-image.png)

Le "TLS" de "EAP-TLS" correspond à "Microsoft: Smart Card or other certificate".

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/dqZlSjZP1jSQGaPx-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/dqZlSjZP1jSQGaPx-image.png)

On clique sur "Microsoft: Smart Card or other certificate" et "Modifier..." :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/QB6P87GRaXV8PhNO-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/QB6P87GRaXV8PhNO-image.png)

Cela correspond au PEAP-TLS (ou également dit PEAP-EAP-TLS).

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/pNzOyhaBQURwkDD4-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/pNzOyhaBQURwkDD4-image.png)

Dans mon cas, j'ai du ajouter l'attribut "Framed-MTU" avec une valeur de 1344, car j'ai l'erreur suivante :

> Authentication failed due to an EAP session timeout; the EAP session with the access client was incomplete.

<p class="callout info">Vous pouvez observer les logs dans l'observateur d'évènements, sous "Affichages Personnalisés" &gt; "Rôles de serveurs" &gt; Services de stratégie et d'accès réseau".</p>

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/3Bb8gDhFXeNsWMPn-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/3Bb8gDhFXeNsWMPn-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/Jhx66XQuu4HvbLVP-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/Jhx66XQuu4HvbLVP-image.png)

On ajoute également le(s) client(s) RADIUS en définissant un secret partagé.

Dans les bornes wifi, on choisit WPA2 Entreprise (ou WPA3 Entreprise si supporté), en renseignant l'adresse IP du serveur NPS et le secret partagé.

# Déploiement du wifi 802.1x PEAP-TLS par GPO

On peut connecter les ordinateurs aux réseaux Wifi par GPO automatiquement.

On crée et lie une GPO à une OU Ordinateurs puis on la modifie.

Sous "Configuration ordinateurs" &gt; "Stratégies" &gt; "Paramètres Windows" &gt; "Paramètres de sécurité" &gt; "Stratégies de réseau sans fil (IEEE 802.11)", on y crée une stratégie.

On ajoute nos réseaux wifi :

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/1fnetH2JveQxEqRb-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/1fnetH2JveQxEqRb-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/scDQcexoY45LP4N8-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/scDQcexoY45LP4N8-image.png)

On choisit "Microsoft: PEAP (Protected EAP)" puis dans ses propriétés "Carte à puce ou autre certificat".

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/JLVayy540sBipDaz-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/JLVayy540sBipDaz-image.png)

[![image.png](https://docs.khroners.fr/uploads/images/gallery/2023-10/scaled-1680-/5UmgfrMBMF7gEYeV-image.png)](https://docs.khroners.fr/uploads/images/gallery/2023-10/5UmgfrMBMF7gEYeV-image.png)

# Audit et sécurisation (hardening) d'AD CS

Il est important que notre PKI soit sécurisée. Il existe différents outils permettant de l'auditer : [Certipy](https://github.com/ly4k/Certipy), [Exegol](https://github.com/ThePorgs/Exegol), [PSPKIAudit](https://github.com/GhostPack/PSPKIAudit) ou encore [Locksmith](https://github.com/TrimarcJake/Locksmith).

Exemple de Certify et Certipy :

```
C:\>certify find /vulnerable

   _____          _   _  __
  / ____|        | | (_)/ _|
 | |     ___ _ __| |_ _| |_ _   _
 | |    / _ \ '__| __| |  _| | | |
 | |___|  __/ |  | |_| | | | |_| |
  \_____\___|_|   \__|_|_|  \__, |
                             __/ |
                            |___./
  v1.0.0

[*] Action: Find certificate templates
[*] Using the search base 'CN=Configuration,DC=ad,DC=khroners,DC=fr'

[*] Listing info about the Enterprise CA 'Khroners Labs Enterprise CA'

    Enterprise CA Name            : Khroners Labs Enterprise CA
    DNS Hostname                  : SRV-CA35-01.ad.khroners.fr
    FullName                      : SRV-CA35-01.ad.khroners.fr\Khroners Labs Enterprise CA
    Flags                         : SUPPORTS_NT_AUTHENTICATION, CA_SERVERTYPE_ADVANCED
    Cert SubjectName              : CN=Khroners Labs Enterprise CA, DC=ad, DC=khroners, DC=fr
    Cert Thumbprint               : 8FD1AEAF57EE974EB726D884775133B4D4C9D270
    Cert Serial                   : 1500000004A03185E3D30CA7C3000000000004
    Cert Start Date               : 02/10/2023 08:09:54
    Cert End Date                 : 02/10/2028 08:19:54
    Cert Chain                    : CN=KhronersLabsCertificateAuthority -> CN=KhronersLabsEnterpriseCA,DC=ad,DC=khroners,DC=fr
    UserSpecifiedSAN              : Disabled
    CA Permissions                :
      Owner: BUILTIN\Administrateurs       S-1-5-32-544

      Access Rights                                     Principal

      Allow  Enroll                                     AUTORITE NT\Utilisateurs authentifiésS-1-5-11
      Allow  ManageCA, ManageCertificates               BUILTIN\Administrateurs       S-1-5-32-544
      Allow  ManageCA, ManageCertificates               AD\Admins du domaine          S-1-5-21-1812995439-3560927909-1751902240-512
      Allow  ManageCA, ManageCertificates               AD\Administrateurs de l'entrepriseS-1-5-21-1812995439-3560927909-1751902240-519
    Enrollment Agent Restrictions : None

[+] No Vulnerable Certificates Templates found!



Certify completed in 00:00:00.5455163
```

```bash
certipy find -u gilles.besson@ad.khroners.fr -password Password -scheme ldap

Certipy v4.8.2 - by Oliver Lyak (ly4k)

[*] Finding certificate templates
[*] Found 36 certificate templates
[*] Finding certificate authorities
[*] Found 1 certificate authority
[*] Found 14 enabled certificate templates
[*] Trying to get CA configuration for 'Khroners Labs Enterprise CA' via CSRA
[!] Got error while trying to get CA configuration for 'Khroners Labs Enterprise CA' via CSRA: CASessionError: code: 0x80070005 - E_ACCESSDENIED - General access denied error.
[*] Trying to get CA configuration for 'Khroners Labs Enterprise CA' via RRP
[!] Failed to connect to remote registry. Service should be starting now. Trying again...
[*] Got CA configuration for 'Khroners Labs Enterprise CA'
[*] Saved BloodHound data to '20231007001536_Certipy.zip'. Drag and drop the file into the BloodHound GUI from @ly4k
[*] Saved text output to '20231007001536_Certipy.txt'
[*] Saved JSON output to '20231007001536_Certipy.json'
```

3 fichiers sont ensuite générés. On peut analyser nous même le txt ou importer dans BloodHound GUI le .zip.

# MDT / WDS via PowerShell : PSD avec support du P2P



# Prérequis

- **Windows ADK** -
  Télécharger et installer la dernière version de Windows ADK.
  	- La plus récente : [https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install)
    - Les anciennes : [https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install#other-adk-downloads](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install#other-adk-downloads)
    
- **MDT** - 
  Télécharger et installer MDT avec le patch.
	- MDT 64 bits : [https://www.microsoft.com/en-us/download/details.aspx?id=54259](https://www.microsoft.com/en-us/download/details.aspx?id=54259)
    - Patch 8456 : [https://support.microsoft.com/en-us/topic/windows-10-deployments-fail-with-microsoft-deployment-toolkit-on-computers-with-bios-type-firmware-70557b0b-6be3-81d2-556f-b313e29e2cb7](https://support.microsoft.com/en-us/topic/windows-10-deployments-fail-with-microsoft-deployment-toolkit-on-computers-with-bios-type-firmware-70557b0b-6be3-81d2-556f-b313e29e2cb7)
    
   ## Notes
   
   Enable-BCDistributed
   
   Publish-BCWebContent -Path C:\PSD -Recurse
   
   [https://stifler.docs.2pintsoftware.com/introduction/technical-overview/2pint-branchcache-administrator-guide](https://stifler.docs.2pintsoftware.com/introduction/technical-overview/2pint-branchcache-administrator-guide)
   [https://techcommunity.microsoft.com/blog/iis-support-blog/setting-up-kerberos-authentication-for-a-website-in-iis/347882](https://techcommunity.microsoft.com/blog/iis-support-blog/setting-up-kerberos-authentication-for-a-website-in-iis/347882)
   [https://www.deploymentresearch.com/configuring-the-branchcache-publication-hash-cache/](https://www.deploymentresearch.com/configuring-the-branchcache-publication-hash-cache/)
   [https://osd.docs.2pintsoftware.com/operations/deploying-computers-with-branchcache](https://osd.docs.2pintsoftware.com/operations/deploying-computers-with-branchcache)
   [https://github.com/2pintsoftware/BranchCache/blob/master/CacheInjection/InjectBCData.ps1](https://github.com/2pintsoftware/BranchCache/blob/master/CacheInjection/InjectBCData.ps1)
   pare-feu port 1337?