<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://fhugonnier.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://fhugonnier.github.io/" rel="alternate" type="text/html" hreflang="fr" /><updated>2026-04-04T20:51:56+00:00</updated><id>https://fhugonnier.github.io/feed.xml</id><title type="html">NOOBS</title><subtitle>Tutoriels IT par Franck Hugonnier — VMware, Windows Server, PowerShell</subtitle><author><name>Franck Hugonnier</name></author><entry><title type="html">Activer le changement de mot de passe en libre-service dans Microsoft 365</title><link href="https://fhugonnier.github.io/2026/03/26/activer-sspr-changement-mot-de-passe-microsoft-365/" rel="alternate" type="text/html" title="Activer le changement de mot de passe en libre-service dans Microsoft 365" /><published>2026-03-26T00:00:00+00:00</published><updated>2026-03-26T00:00:00+00:00</updated><id>https://fhugonnier.github.io/2026/03/26/activer-sspr-changement-mot-de-passe-microsoft-365</id><content type="html" xml:base="https://fhugonnier.github.io/2026/03/26/activer-sspr-changement-mot-de-passe-microsoft-365/"><![CDATA[<p>Comment permettre aux utilisateurs de changer ou réinitialiser leur mot de passe eux-mêmes dans Microsoft 365, sans passer par le helpdesk ? La réponse s’appelle <strong>SSPR</strong> (Self-Service Password Reset). Ce guide couvre l’activation, la configuration des méthodes d’authentification, le Password Writeback pour les environnements hybrides, le déploiement progressif et le dépannage.</p>

<h2 id="le-principe">Le principe</h2>

<p>Par défaut, les utilisateurs peuvent changer leur mot de passe (s’ils connaissent l’ancien) depuis <a href="https://myaccount.microsoft.com">myaccount.microsoft.com</a> → Sécurité → Mot de passe. Le <strong>SSPR</strong> va plus loin : il permet aux utilisateurs de <strong>réinitialiser</strong> un mot de passe oublié, sans intervention de l’administrateur.</p>

<h2 id="activer-le-sspr">Activer le SSPR</h2>

<ol>
  <li>Connectez-vous au <strong>Centre d’administration Microsoft Entra</strong> (<a href="https://entra.microsoft.com">entra.microsoft.com</a>)</li>
  <li>Allez dans <code class="language-plaintext highlighter-rouge">Protection</code> → <code class="language-plaintext highlighter-rouge">Réinitialisation du mot de passe</code></li>
  <li>Sous <strong>Réinitialisation du mot de passe en libre-service activée</strong>, choisissez :
    <ul>
      <li><strong>Tous</strong> : pour tous les utilisateurs</li>
      <li><strong>Sélectionné</strong> : pour un groupe spécifique (recommandé pour commencer)</li>
    </ul>
  </li>
  <li>Configurez les méthodes d’authentification requises</li>
  <li>Cliquez <strong>Enregistrer</strong></li>
</ol>

<h3 id="licences-requises">Licences requises</h3>

<table>
  <thead>
    <tr>
      <th>Fonctionnalité</th>
      <th>Licence minimale</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Changement de mot de passe (connaît l’ancien)</td>
      <td>Tous les plans M365</td>
    </tr>
    <tr>
      <td>Réinitialisation de mot de passe oublié</td>
      <td>Entra ID P1 (inclus dans M365 Business Premium, E3, E5)</td>
    </tr>
    <tr>
      <td>Password Writeback (hybride)</td>
      <td>Entra ID P1 ou P2</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="méthodes-dauthentification">Méthodes d’authentification</h2>

<p>Dans <code class="language-plaintext highlighter-rouge">Entra</code> → <code class="language-plaintext highlighter-rouge">Protection</code> → <code class="language-plaintext highlighter-rouge">Réinitialisation du mot de passe</code> → <code class="language-plaintext highlighter-rouge">Méthodes d'authentification</code>, vous configurez deux choses : le nombre de méthodes requises et les méthodes disponibles.</p>

<h3 id="nombre-de-méthodes-requises">Nombre de méthodes requises</h3>

<p>Vous pouvez exiger <strong>1 ou 2 méthodes</strong> pour qu’un utilisateur puisse réinitialiser son mot de passe. Deux méthodes est recommandé pour plus de sécurité.</p>

<h3 id="méthodes-disponibles">Méthodes disponibles</h3>

<table>
  <thead>
    <tr>
      <th>Méthode</th>
      <th>Description</th>
      <th>Sécurité</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Microsoft Authenticator</td>
      <td>Notification push ou code TOTP</td>
      <td>Recommandée</td>
    </tr>
    <tr>
      <td>Téléphone mobile</td>
      <td>SMS ou appel vocal</td>
      <td>Bonne</td>
    </tr>
    <tr>
      <td>E-mail</td>
      <td>Code envoyé à une adresse alternative (pas l’adresse M365)</td>
      <td>Correcte</td>
    </tr>
    <tr>
      <td>Téléphone professionnel</td>
      <td>Appel vocal uniquement</td>
      <td>Correcte</td>
    </tr>
    <tr>
      <td>Questions de sécurité</td>
      <td>Questions prédéfinies</td>
      <td>Faible (vulnérable à l’ingénierie sociale)</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>Recommandation</strong> : privilégiez <strong>Microsoft Authenticator + téléphone mobile</strong> comme combinaison. Évitez les questions de sécurité seules.</p>
</blockquote>

<h3 id="enregistrement-des-utilisateurs">Enregistrement des utilisateurs</h3>

<p>Dans l’onglet <strong>Inscription</strong>, activez l’option <strong>Demander aux utilisateurs de s’inscrire lors de la connexion</strong>. La prochaine fois qu’ils se connectent, ils seront invités à enregistrer leurs méthodes. Vous pouvez aussi définir un délai (en jours) après lequel ils doivent reconfirmer leurs informations.</p>

<hr />

<h2 id="password-writeback-environnement-hybride">Password Writeback (environnement hybride)</h2>

<p>Si vous synchronisez Microsoft 365 avec un <strong>Active Directory local</strong> via Microsoft Entra Connect, le Password Writeback permet de répercuter les changements de mot de passe du cloud vers l’AD on-premises.</p>

<h3 id="prérequis">Prérequis</h3>

<ul>
  <li><strong>Microsoft Entra Connect</strong> installé et fonctionnel</li>
  <li>Une licence <strong>Entra ID P1 ou P2</strong> pour les utilisateurs concernés</li>
  <li>Un compte de service avec les droits de réinitialisation de mot de passe sur l’AD local</li>
</ul>

<h3 id="activation">Activation</h3>

<ol>
  <li>Sur le serveur Entra Connect, lancez l’assistant de configuration</li>
  <li>Choisissez <strong>Personnaliser les options de synchronisation</strong></li>
  <li>Cochez <strong>Écriture différée du mot de passe</strong> (Password Writeback)</li>
  <li>Terminez l’assistant et laissez la synchronisation s’effectuer</li>
  <li>Côté portail Entra : <code class="language-plaintext highlighter-rouge">Protection</code> → <code class="language-plaintext highlighter-rouge">Réinitialisation du mot de passe</code> → <code class="language-plaintext highlighter-rouge">Intégration locale</code> → vérifiez que <strong>Écrire les mots de passe dans votre annuaire local</strong> est activé</li>
</ol>

<h3 id="permissions-ad-requises">Permissions AD requises</h3>

<p>Le compte de service Entra Connect doit avoir ces permissions sur les OUs concernées :</p>

<ul>
  <li>Réinitialiser le mot de passe</li>
  <li>Modifier le mot de passe</li>
  <li>Écrire <code class="language-plaintext highlighter-rouge">lockoutTime</code></li>
  <li>Écrire <code class="language-plaintext highlighter-rouge">pwdLastSet</code></li>
</ul>

<blockquote>
  <p><strong>Important</strong> : les stratégies de mot de passe de votre AD local (complexité, longueur minimale, historique) s’appliquent toujours. Si le mot de passe choisi ne respecte pas ces règles, le changement échouera.</p>
</blockquote>

<hr />

<h2 id="déploiement-progressif">Déploiement progressif</h2>

<p>L’idée est d’y aller par étapes pour limiter les risques et faciliter le support.</p>

<h3 id="phase-1--préparation">Phase 1 — Préparation</h3>

<ul>
  <li>Vérifiez vos licences (Entra ID P1 minimum pour le SSPR complet)</li>
  <li>En environnement hybride, confirmez que Entra Connect est à jour et que le Password Writeback est activé</li>
  <li>Documentez vos stratégies de mot de passe côté AD local pour anticiper les conflits</li>
</ul>

<h3 id="phase-2--groupe-pilote">Phase 2 — Groupe pilote</h3>

<ul>
  <li>Créez un groupe de sécurité dans Entra ID (par exemple <code class="language-plaintext highlighter-rouge">SSPR-Pilote</code>) avec une dizaine d’utilisateurs volontaires</li>
  <li>Dans <code class="language-plaintext highlighter-rouge">Protection</code> → <code class="language-plaintext highlighter-rouge">Réinitialisation du mot de passe</code>, sélectionnez <strong>Sélectionné</strong> et associez ce groupe</li>
  <li>Faites-leur tester le changement et la réinitialisation, puis recueillez les retours</li>
</ul>

<h3 id="phase-3--extension-progressive">Phase 3 — Extension progressive</h3>

<ul>
  <li>Ajoutez progressivement d’autres groupes (par service, par site…)</li>
  <li>Envoyez un e-mail explicatif avec un guide pas-à-pas pour l’enregistrement</li>
  <li>Prévoyez un support helpdesk renforcé pendant les premières semaines</li>
</ul>

<h3 id="phase-4--déploiement-global">Phase 4 — Déploiement global</h3>

<ul>
  <li>Passez le SSPR sur <strong>Tous</strong></li>
  <li>Surveillez les rapports dans <code class="language-plaintext highlighter-rouge">Entra</code> → <code class="language-plaintext highlighter-rouge">Protection</code> → <code class="language-plaintext highlighter-rouge">Réinitialisation du mot de passe</code> → <code class="language-plaintext highlighter-rouge">Journaux d'audit</code> et <code class="language-plaintext highlighter-rouge">Utilisation et insights</code></li>
</ul>

<hr />

<h2 id="dépannage-des-erreurs-courantes">Dépannage des erreurs courantes</h2>

<h3 id="votre-compte-nest-pas-activé-pour-la-réinitialisation-du-mot-de-passe">“Votre compte n’est pas activé pour la réinitialisation du mot de passe”</h3>

<p><strong>Causes</strong> : l’utilisateur n’est pas membre du groupe ciblé, le SSPR est désactivé, ou il manque la licence Entra ID P1/P2.</p>

<p><strong>Solution</strong> : vérifiez l’appartenance au groupe, l’état du SSPR et les licences dans le portail Entra.</p>

<h3 id="votre-mot-de-passe-ne-respecte-pas-les-exigences">“Votre mot de passe ne respecte pas les exigences”</h3>

<p><strong>Causes</strong> : en environnement hybride, le mot de passe ne respecte pas la stratégie AD local (longueur, complexité, historique).</p>

<p><strong>Solution</strong> : alignez les exigences entre Entra ID et votre AD local. Vérifiez les GPO : <code class="language-plaintext highlighter-rouge">Default Domain Policy</code> → <code class="language-plaintext highlighter-rouge">Computer Configuration</code> → <code class="language-plaintext highlighter-rouge">Policies</code> → <code class="language-plaintext highlighter-rouge">Windows Settings</code> → <code class="language-plaintext highlighter-rouge">Security Settings</code> → <code class="language-plaintext highlighter-rouge">Account Policies</code> → <code class="language-plaintext highlighter-rouge">Password Policy</code>.</p>

<h3 id="erreur-de-writeback-ou-on-premises-writeback-failed">“Erreur de writeback” ou “On-premises writeback failed”</h3>

<p><strong>Causes</strong> : le service Entra Connect Sync ne tourne pas, le compte de service n’a pas les permissions AD suffisantes, ou un pare-feu bloque le port 443 sortant.</p>

<p><strong>Solutions</strong> :</p>

<ul>
  <li>Vérifiez que le service <strong>Microsoft Azure AD Sync</strong> est démarré sur le serveur</li>
  <li>Relancez l’assistant Entra Connect et revalidez les identifiants</li>
  <li>Vérifiez les permissions AD du compte de service avec <code class="language-plaintext highlighter-rouge">dsacls</code> ou via la console AD (onglet Sécurité de l’OU)</li>
  <li>Consultez les journaux : <code class="language-plaintext highlighter-rouge">Observateur d'événements</code> → <code class="language-plaintext highlighter-rouge">Applications and Services Logs</code> → <code class="language-plaintext highlighter-rouge">Azure AD Connect</code></li>
</ul>

<h3 id="lutilisateur-na-pas-enregistré-de-méthodes-dauthentification">“L’utilisateur n’a pas enregistré de méthodes d’authentification”</h3>

<p><strong>Causes</strong> : l’inscription obligatoire n’est pas activée, ou l’utilisateur a ignoré l’invite.</p>

<p><strong>Solutions</strong> :</p>

<ul>
  <li>Activez <strong>Demander aux utilisateurs de s’inscrire lors de la connexion</strong> dans l’onglet Inscription</li>
  <li>Pré-remplissez les informations via PowerShell :</li>
</ul>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Update-MgUser</span><span class="w"> </span><span class="nt">-UserId</span><span class="w"> </span><span class="s2">"user@domaine.com"</span><span class="w"> </span><span class="nt">-MobilePhone</span><span class="w"> </span><span class="s2">"+33612345678"</span><span class="w">
</span></code></pre></div></div>

<h3 id="le-sspr-fonctionne-dans-le-cloud-mais-pas-sur-lécran-de-connexion-windows">“Le SSPR fonctionne dans le cloud mais pas sur l’écran de connexion Windows”</h3>

<p><strong>Causes</strong> : la réinitialisation depuis l’écran de verrouillage nécessite Windows 10/11 joint à Entra ID, et une connexion Internet.</p>

<p><strong>Solutions</strong> :</p>

<ul>
  <li>Vérifiez le type de jointure de la machine :</li>
</ul>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">dsregcmd</span><span class="w"> </span><span class="nx">/status</span><span class="w">
</span></code></pre></div></div>

<p>Cherchez <code class="language-plaintext highlighter-rouge">AzureAdJoined : YES</code> ou <code class="language-plaintext highlighter-rouge">DomainJoined : YES</code> + <code class="language-plaintext highlighter-rouge">AzureAdJoined : YES</code>.</p>

<ul>
  <li>Assurez-vous que la connectivité réseau est disponible à l’écran de connexion</li>
</ul>

<h3 id="problèmes-de-synchronisation">Problèmes de synchronisation</h3>

<p>Si les changements ne se propagent pas, forcez une synchronisation manuelle sur le serveur Entra Connect :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Synchronisation Delta (rapide)</span><span class="w">
</span><span class="n">Start-ADSyncSyncCycle</span><span class="w"> </span><span class="nt">-PolicyType</span><span class="w"> </span><span class="nx">Delta</span><span class="w">

</span><span class="c"># Synchronisation complète (plus longue)</span><span class="w">
</span><span class="n">Start-ADSyncSyncCycle</span><span class="w"> </span><span class="nt">-PolicyType</span><span class="w"> </span><span class="nx">Initial</span><span class="w">
</span></code></pre></div></div>

<hr />

<h2 id="outils-de-diagnostic">Outils de diagnostic</h2>

<table>
  <thead>
    <tr>
      <th>Outil</th>
      <th>Chemin</th>
      <th>Usage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Journaux d’audit SSPR</td>
      <td>Entra → Protection → Réinitialisation du mot de passe → Journaux d’audit</td>
      <td>Filtrer par “Reset password” ou “Change password”</td>
    </tr>
    <tr>
      <td>Rapport d’inscription</td>
      <td>Entra → Protection → Réinitialisation du mot de passe → Utilisation et insights</td>
      <td>Voir combien d’utilisateurs ont enregistré leurs méthodes</td>
    </tr>
    <tr>
      <td>Entra Connect Health</td>
      <td>Portail Entra (licence P1/P2)</td>
      <td>Monitoring détaillé de la synchronisation</td>
    </tr>
    <tr>
      <td>Event Viewer</td>
      <td>Sur le serveur Entra Connect : source “ADSync” et “PasswordResetService”</td>
      <td>Debug des erreurs de writeback</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="notifications">Notifications</h2>

<p>Pensez à activer les notifications dans l’onglet <strong>Notifications</strong> du SSPR :</p>

<ul>
  <li><strong>Notifier les utilisateurs lors de la réinitialisation</strong> : l’utilisateur reçoit un e-mail confirmant le changement</li>
  <li><strong>Notifier les administrateurs lors de la réinitialisation par un autre admin</strong> : alerte si un admin réinitialise le mot de passe d’un autre admin</li>
</ul>

<p>Ces notifications sont importantes pour détecter des réinitialisations non autorisées.</p>

<h2 id="récapitulatif">Récapitulatif</h2>

<table>
  <thead>
    <tr>
      <th>Action</th>
      <th>Où</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Activer le SSPR</td>
      <td>Entra → Protection → Réinitialisation du mot de passe</td>
    </tr>
    <tr>
      <td>Configurer les méthodes</td>
      <td>Même endroit → Méthodes d’authentification</td>
    </tr>
    <tr>
      <td>Activer le Writeback</td>
      <td>Assistant Entra Connect + Entra → Intégration locale</td>
    </tr>
    <tr>
      <td>Tester</td>
      <td><a href="https://mysignins.microsoft.com">mysignins.microsoft.com</a></td>
    </tr>
    <tr>
      <td>Surveiller</td>
      <td>Entra → Journaux d’audit + Utilisation et insights</td>
    </tr>
  </tbody>
</table>]]></content><author><name>Franck Hugonnier</name></author><category term="office365" /><category term="office365" /><category term="entra" /><category term="sspr" /><category term="mot-de-passe" /><category term="active-directory" /><category term="powershell" /><summary type="html"><![CDATA[Comment permettre aux utilisateurs de changer ou réinitialiser leur mot de passe eux-mêmes dans Microsoft 365, sans passer par le helpdesk ? La réponse s’appelle SSPR (Self-Service Password Reset). Ce guide couvre l’activation, la configuration des méthodes d’authentification, le Password Writeback pour les environnements hybrides, le déploiement progressif et le dépannage.]]></summary></entry><entry><title type="html">Configurer un VPN IPsec IKEv2 avec LDAP Synology sur FortiGate 40</title><link href="https://fhugonnier.github.io/2026/03/26/configurer-vpn-ipsec-ikev2-ldap-fortigate-40/" rel="alternate" type="text/html" title="Configurer un VPN IPsec IKEv2 avec LDAP Synology sur FortiGate 40" /><published>2026-03-26T00:00:00+00:00</published><updated>2026-03-26T00:00:00+00:00</updated><id>https://fhugonnier.github.io/2026/03/26/configurer-vpn-ipsec-ikev2-ldap-fortigate-40</id><content type="html" xml:base="https://fhugonnier.github.io/2026/03/26/configurer-vpn-ipsec-ikev2-ldap-fortigate-40/"><![CDATA[<p>Comment mettre en place un VPN IPsec IKEv2 sur un FortiGate 40 avec authentification LDAP hébergé sur un <strong>NAS Synology</strong> (paquet LDAP Server) ? Ce guide couvre la configuration complète en <strong>CLI</strong> et en <strong>interface graphique</strong>, avec le diagnostic en cas de problème.</p>

<h2 id="architecture">Architecture</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Client (Windows/macOS/FortiClient)
        │
        │  IKEv2 + EAP (user/pass)
        ▼
   ┌──────────┐        ┌──────────────────┐
   │ FortiGate │───────▶│ NAS Synology     │
   │    40     │  LDAP  │ Paquet LDAP Server│
   │  wan1     │◀───────│ 192.168.1.10     │
   └──────────┘        └──────────────────┘
        │
        │  Tunnel IPsec
        │  10.10.10.x → 192.168.1.0/24
        ▼
   Réseau interne
</code></pre></div></div>

<p>Le principe : le client VPN se connecte au FortiGate en IKEv2, s’authentifie avec son login/mot de passe LDAP (stocké sur le NAS Synology), et accède au réseau interne à travers un tunnel chiffré.</p>

<h2 id="prérequis-côté-synology">Prérequis côté Synology</h2>

<p>Avant de configurer le FortiGate, assurez-vous que le paquet <strong>LDAP Server</strong> est installé et configuré sur votre NAS Synology.</p>

<h3 id="vérifier-la-configuration-ldap-server-sur-le-nas">Vérifier la configuration LDAP Server sur le NAS</h3>

<p>Ouvrez <strong>LDAP Server</strong> sur le DSM de votre Synology et notez ces informations :</p>

<table>
  <thead>
    <tr>
      <th>Information</th>
      <th>Où la trouver</th>
      <th>Exemple</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>FQDN ou IP du NAS</td>
      <td>Paramètres réseau du NAS</td>
      <td>192.168.1.10</td>
    </tr>
    <tr>
      <td>Base DN</td>
      <td>LDAP Server → Paramètres</td>
      <td>dc=mondomaine,dc=com</td>
    </tr>
    <tr>
      <td>Port LDAP</td>
      <td>LDAP Server → Paramètres</td>
      <td>389 (LDAP) ou 636 (LDAPS)</td>
    </tr>
    <tr>
      <td>Compte Bind DN</td>
      <td>Créé dans LDAP Server</td>
      <td>uid=ldap-bind,cn=users,dc=mondomaine,dc=com</td>
    </tr>
  </tbody>
</table>

<h3 id="structure-ldap-synology-vs-active-directory">Structure LDAP Synology vs Active Directory</h3>

<p>Le paquet LDAP Server de Synology utilise un schéma LDAP standard (pas le schéma Active Directory). Les principales différences :</p>

<table>
  <thead>
    <tr>
      <th>Élément</th>
      <th>Active Directory</th>
      <th>Synology LDAP Server</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Identifiant utilisateur</td>
      <td>sAMAccountName</td>
      <td>uid</td>
    </tr>
    <tr>
      <td>Base des utilisateurs</td>
      <td>CN=Users,DC=…</td>
      <td>cn=users,dc=…</td>
    </tr>
    <tr>
      <td>Base des groupes</td>
      <td>OU=Groups,DC=…</td>
      <td>cn=groups,dc=…</td>
    </tr>
    <tr>
      <td>Classe d’objet utilisateur</td>
      <td>user</td>
      <td>posixAccount</td>
    </tr>
    <tr>
      <td>Classe d’objet groupe</td>
      <td>group</td>
      <td>posixGroup</td>
    </tr>
    <tr>
      <td>Port sécurisé</td>
      <td>636 (LDAPS)</td>
      <td>636 (LDAPS)</td>
    </tr>
    <tr>
      <td>Bind DN</td>
      <td>CN=user,OU=…</td>
      <td>uid=user,cn=users,dc=…</td>
    </tr>
  </tbody>
</table>

<h3 id="créer-un-compte-de-service-ldap-sur-le-nas">Créer un compte de service LDAP sur le NAS</h3>

<p>Dans <strong>LDAP Server</strong> → <strong>Utilisateurs</strong>, créez un compte dédié pour le FortiGate (ne pas utiliser le compte admin) :</p>

<ul>
  <li><strong>Nom</strong> : ldap-bind</li>
  <li><strong>Mot de passe</strong> : un mot de passe complexe</li>
  <li>Ce compte servira uniquement au FortiGate pour interroger l’annuaire</li>
</ul>

<h3 id="créer-un-groupe-pour-les-utilisateurs-vpn">Créer un groupe pour les utilisateurs VPN</h3>

<p>Dans <strong>LDAP Server</strong> → <strong>Groupes</strong>, créez un groupe :</p>

<ul>
  <li><strong>Nom</strong> : vpn-users</li>
  <li>Ajoutez les utilisateurs autorisés à se connecter au VPN</li>
</ul>

<hr />

<h2 id="partie-1--configuration-en-cli">Partie 1 — Configuration en CLI</h2>

<h3 id="1-configurer-le-serveur-ldap-synology">1. Configurer le serveur LDAP (Synology)</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config user ldap
    edit "SYNOLOGY-LDAP"
        set server "192.168.1.10"
        set cnid "uid"
        set dn "dc=mondomaine,dc=com"
        set type regular
        set username "uid=ldap-bind,cn=users,dc=mondomaine,dc=com"
        set password "MotDePasseCompte"
        set port 389
    next
end
</code></pre></div></div>

<blockquote>
  <p><strong>Différences clés avec Active Directory</strong> : le <code class="language-plaintext highlighter-rouge">cnid</code> est <code class="language-plaintext highlighter-rouge">uid</code> (pas <code class="language-plaintext highlighter-rouge">sAMAccountName</code>), et le format du <code class="language-plaintext highlighter-rouge">username</code> (Bind DN) suit la syntaxe LDAP standard <code class="language-plaintext highlighter-rouge">uid=xxx,cn=users,dc=xxx</code> au lieu du format AD <code class="language-plaintext highlighter-rouge">CN=xxx,OU=xxx,DC=xxx</code>.</p>
</blockquote>

<p>Pour activer LDAPS (chiffré) si votre NAS le supporte :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config user ldap
    edit "SYNOLOGY-LDAP"
        set secure ldaps
        set port 636
    next
end
</code></pre></div></div>

<h3 id="2-créer-un-groupe-dutilisateurs-lié-au-ldap-synology">2. Créer un groupe d’utilisateurs lié au LDAP Synology</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config user group
    edit "VPN-IPSEC-Users"
        set member "SYNOLOGY-LDAP"
        config match
            edit 1
                set server-name "SYNOLOGY-LDAP"
                set group-name "cn=vpn-users,cn=groups,dc=mondomaine,dc=com"
            next
        end
    next
end
</code></pre></div></div>

<blockquote>
  <p><strong>Attention</strong> : le DN du groupe suit la structure Synology <code class="language-plaintext highlighter-rouge">cn=vpn-users,cn=groups,dc=...</code> et non <code class="language-plaintext highlighter-rouge">CN=VPN-Users,OU=Groups,DC=...</code> comme en Active Directory.</p>
</blockquote>

<h3 id="3-phase-1--tunnel-ikev2">3. Phase 1 — Tunnel IKEv2</h3>

<h4 id="variante-avec-certificat">Variante avec certificat</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config vpn ipsec phase1-interface
    edit "VPN-IKEv2-RemoteAccess"
        set type dynamic
        set interface "wan1"
        set ike-version 2
        set authmethod signature
        set mode aggressive
        set peertype any
        set net-device disable
        set mode-cfg enable
        set proposal aes256-sha256 aes256-sha512
        set dpd on-idle
        set dpd-retryinterval 30
        set certificate "Fortinet_Factory"
        set xauthtype auto
        set authusrgrp "VPN-IPSEC-Users"
        set ipv4-start-ip 10.10.10.1
        set ipv4-end-ip 10.10.10.50
        set ipv4-netmask 255.255.255.0
        set dns-mode auto
        set ipv4-split-include "LAN-interne"
        set keylife 86400
        set nattraversal enable
    next
end
</code></pre></div></div>

<h4 id="variante-avec-psk-pre-shared-key--eap">Variante avec PSK (Pre-Shared Key) + EAP</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config vpn ipsec phase1-interface
    edit "VPN-IKEv2-PSK"
        set type dynamic
        set interface "wan1"
        set ike-version 2
        set peertype any
        set net-device disable
        set mode-cfg enable
        set authmethod psk
        set psksecret "VotreCléPartagéeComplexe!"
        set proposal aes256-sha256
        set dpd on-idle
        set dpd-retryinterval 30
        set xauthtype auto
        set authusrgrp "VPN-IPSEC-Users"
        set ipv4-start-ip 10.10.10.1
        set ipv4-end-ip 10.10.10.50
        set ipv4-netmask 255.255.255.0
        set dns-mode auto
        set ipv4-split-include "LAN-interne"
        set nattraversal enable
        set keylife 86400
    next
end
</code></pre></div></div>

<h3 id="4-phase-2--paramètres-de-chiffrement-du-tunnel">4. Phase 2 — Paramètres de chiffrement du tunnel</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config vpn ipsec phase2-interface
    edit "VPN-IKEv2-P2"
        set phase1name "VPN-IKEv2-RemoteAccess"
        set proposal aes256-sha256
        set pfs enable
        set dhgrp 14
        set keylifeseconds 3600
    next
end
</code></pre></div></div>

<h3 id="5-définir-les-objets-réseau">5. Définir les objets réseau</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config firewall address
    edit "LAN-interne"
        set subnet 192.168.1.0 255.255.255.0
    next
end

config firewall address
    edit "VPN-Pool"
        set type iprange
        set start-ip 10.10.10.1
        set end-ip 10.10.10.50
    next
end
</code></pre></div></div>

<h3 id="6-politiques-de-pare-feu">6. Politiques de pare-feu</h3>

<h4 id="accès-vpn-vers-le-lan">Accès VPN vers le LAN</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config firewall policy
    edit 0
        set name "VPN-IPsec-to-LAN"
        set srcintf "VPN-IKEv2-RemoteAccess"
        set dstintf "internal"
        set srcaddr "VPN-Pool"
        set dstaddr "LAN-interne"
        set action accept
        set schedule "always"
        set service "ALL"
        set groups "VPN-IPSEC-Users"
        set logtraffic all
    next
end
</code></pre></div></div>

<h4 id="accès-vpn-vers-internet-optionnel">Accès VPN vers Internet (optionnel)</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config firewall policy
    edit 0
        set name "VPN-IPsec-to-WAN"
        set srcintf "VPN-IKEv2-RemoteAccess"
        set dstintf "wan1"
        set srcaddr "VPN-Pool"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set groups "VPN-IPSEC-Users"
        set nat enable
        set logtraffic all
    next
end
</code></pre></div></div>

<hr />

<h2 id="partie-2--configuration-en-interface-graphique">Partie 2 — Configuration en interface graphique</h2>

<h3 id="étape-1--configurer-le-serveur-ldap-synology">Étape 1 — Configurer le serveur LDAP Synology</h3>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">User &amp; Authentication</code> → <code class="language-plaintext highlighter-rouge">LDAP Servers</code> → <code class="language-plaintext highlighter-rouge">Create New</code></p>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Name</td>
      <td>SYNOLOGY-LDAP</td>
    </tr>
    <tr>
      <td>Server IP/Name</td>
      <td>192.168.1.10</td>
    </tr>
    <tr>
      <td>Server Port</td>
      <td>389 (LDAP) ou 636 (LDAPS)</td>
    </tr>
    <tr>
      <td>Common Name Identifier</td>
      <td><strong>uid</strong></td>
    </tr>
    <tr>
      <td>Distinguished Name</td>
      <td>dc=mondomaine,dc=com</td>
    </tr>
    <tr>
      <td>Bind Type</td>
      <td>Regular</td>
    </tr>
    <tr>
      <td>Username</td>
      <td>uid=ldap-bind,cn=users,dc=mondomaine,dc=com</td>
    </tr>
    <tr>
      <td>Password</td>
      <td>(mot de passe du compte de service)</td>
    </tr>
    <tr>
      <td>Secure Connection</td>
      <td>Cocher si LDAPS (port 636)</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>Point crucial</strong> : le champ <strong>Common Name Identifier</strong> doit être <code class="language-plaintext highlighter-rouge">uid</code> et non <code class="language-plaintext highlighter-rouge">sAMAccountName</code>. C’est la différence fondamentale avec Active Directory. Si vous mettez <code class="language-plaintext highlighter-rouge">sAMAccountName</code>, l’authentification échouera systématiquement.</p>
</blockquote>

<p>Cliquez sur <strong>Test Connectivity</strong> puis sur <strong>Test User Credentials</strong> avec un compte LDAP existant pour valider. Cliquez <strong>OK</strong>.</p>

<h3 id="étape-2--créer-le-groupe-dutilisateurs">Étape 2 — Créer le groupe d’utilisateurs</h3>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">User &amp; Authentication</code> → <code class="language-plaintext highlighter-rouge">User Groups</code> → <code class="language-plaintext highlighter-rouge">Create New</code></p>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Name</td>
      <td>VPN-IPSEC-Users</td>
    </tr>
    <tr>
      <td>Type</td>
      <td>Firewall</td>
    </tr>
    <tr>
      <td>Remote Groups → Add</td>
      <td> </td>
    </tr>
    <tr>
      <td>→ Remote Server</td>
      <td>SYNOLOGY-LDAP</td>
    </tr>
    <tr>
      <td>→ Groups</td>
      <td>Parcourez l’arborescence LDAP pour sélectionner <code class="language-plaintext highlighter-rouge">cn=vpn-users,cn=groups,dc=mondomaine,dc=com</code></td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>Astuce</strong> : si vous ne voyez pas les groupes en parcourant l’arborescence, vérifiez que le compte Bind DN a bien les droits de lecture sur <code class="language-plaintext highlighter-rouge">cn=groups</code> dans les paramètres LDAP Server du Synology.</p>
</blockquote>

<p>Cliquez <strong>OK</strong>.</p>

<h3 id="étape-3--créer-lobjet-adresse-du-réseau-lan">Étape 3 — Créer l’objet adresse du réseau LAN</h3>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">Policy &amp; Objects</code> → <code class="language-plaintext highlighter-rouge">Addresses</code> → <code class="language-plaintext highlighter-rouge">Create New</code></p>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Name</td>
      <td>LAN-interne</td>
    </tr>
    <tr>
      <td>Type</td>
      <td>Subnet</td>
    </tr>
    <tr>
      <td>Subnet</td>
      <td>192.168.1.0/24</td>
    </tr>
    <tr>
      <td>Interface</td>
      <td>internal</td>
    </tr>
  </tbody>
</table>

<p>Cliquez <strong>OK</strong>.</p>

<h3 id="étape-4--créer-le-tunnel-vpn-ipsec">Étape 4 — Créer le tunnel VPN IPsec</h3>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">VPN</code> → <code class="language-plaintext highlighter-rouge">IPsec Tunnels</code> → <code class="language-plaintext highlighter-rouge">Create New</code> → <code class="language-plaintext highlighter-rouge">IPsec Tunnel</code></p>

<h4 id="4a-assistant--étape-1">4a. Assistant — Étape 1</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Name</td>
      <td>VPN-IKEv2-RemoteAccess</td>
    </tr>
    <tr>
      <td>Template Type</td>
      <td>Remote Access</td>
    </tr>
    <tr>
      <td>Remote Device Type</td>
      <td>Client-based (FortiClient, Windows natif…)</td>
    </tr>
  </tbody>
</table>

<p>Cliquez <strong>Next</strong>.</p>

<h4 id="4b-assistant--étape-2--authentication">4b. Assistant — Étape 2 : Authentication</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Incoming Interface</td>
      <td>wan1</td>
    </tr>
    <tr>
      <td>Authentication Method</td>
      <td>Pre-shared Key</td>
    </tr>
    <tr>
      <td>Pre-shared Key</td>
      <td>(entrez une clé complexe)</td>
    </tr>
    <tr>
      <td>User Group</td>
      <td>VPN-IPSEC-Users</td>
    </tr>
  </tbody>
</table>

<p>Cliquez <strong>Next</strong>.</p>

<h4 id="4c-assistant--étape-3--policy--routing">4c. Assistant — Étape 3 : Policy &amp; Routing</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Local Interface</td>
      <td>internal</td>
    </tr>
    <tr>
      <td>Local Address</td>
      <td>LAN-interne (192.168.1.0/24)</td>
    </tr>
    <tr>
      <td>Client Address Range</td>
      <td>Start: 10.10.10.1 — End: 10.10.10.50</td>
    </tr>
    <tr>
      <td>Subnet Mask</td>
      <td>255.255.255.0</td>
    </tr>
    <tr>
      <td>DNS Server</td>
      <td>192.168.1.10 (IP du NAS ou de votre DNS)</td>
    </tr>
    <tr>
      <td>Enable Split Tunneling</td>
      <td>Cocher</td>
    </tr>
    <tr>
      <td>Accessible Networks</td>
      <td>LAN-interne</td>
    </tr>
  </tbody>
</table>

<p>Cliquez <strong>Next</strong> puis <strong>Finish</strong>.</p>

<h3 id="étape-5--forcer-ikev2-sur-le-tunnel">Étape 5 — Forcer IKEv2 sur le tunnel</h3>

<p>L’assistant crée le tunnel en IKEv1 par défaut. Il faut le modifier manuellement.</p>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">VPN</code> → <code class="language-plaintext highlighter-rouge">IPsec Tunnels</code> → clic sur <code class="language-plaintext highlighter-rouge">VPN-IKEv2-RemoteAccess</code> → <code class="language-plaintext highlighter-rouge">Edit</code></p>

<h4 id="onglet-network--phase-1">Onglet Network / Phase 1</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur à modifier</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>IKE Version</td>
      <td>Changer de 1 → <strong>2</strong></td>
    </tr>
    <tr>
      <td>NAT Traversal</td>
      <td>Enable</td>
    </tr>
    <tr>
      <td>Dead Peer Detection</td>
      <td>On Idle</td>
    </tr>
  </tbody>
</table>

<h4 id="phase-1-proposal-encryption">Phase 1 Proposal (Encryption)</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Encryption</td>
      <td>AES256</td>
    </tr>
    <tr>
      <td>Authentication</td>
      <td>SHA256</td>
    </tr>
    <tr>
      <td>Diffie-Hellman Group</td>
      <td>14 (2048-bit)</td>
    </tr>
    <tr>
      <td>Key Lifetime (seconds)</td>
      <td>86400</td>
    </tr>
  </tbody>
</table>

<h4 id="phase-2-selectors--edit">Phase 2 Selectors → Edit</h4>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Encryption</td>
      <td>AES256</td>
    </tr>
    <tr>
      <td>Authentication</td>
      <td>SHA256</td>
    </tr>
    <tr>
      <td>Enable PFS</td>
      <td>Cocher</td>
    </tr>
    <tr>
      <td>DH Group</td>
      <td>14</td>
    </tr>
    <tr>
      <td>Key Lifetime</td>
      <td>3600</td>
    </tr>
  </tbody>
</table>

<p>Cliquez <strong>OK</strong>.</p>

<h3 id="étape-6--vérifier-les-politiques-de-pare-feu">Étape 6 — Vérifier les politiques de pare-feu</h3>

<p><strong>Chemin</strong> : <code class="language-plaintext highlighter-rouge">Policy &amp; Objects</code> → <code class="language-plaintext highlighter-rouge">Firewall Policy</code></p>

<p>L’assistant a normalement créé la règle automatiquement. Vérifiez que l’interface source est bien <code class="language-plaintext highlighter-rouge">VPN-IKEv2-RemoteAccess</code>, la destination <code class="language-plaintext highlighter-rouge">LAN-interne</code>, et que le groupe <code class="language-plaintext highlighter-rouge">VPN-IPSEC-Users</code> est bien assigné.</p>

<hr />

<h2 id="partie-3--configuration-côté-client">Partie 3 — Configuration côté client</h2>

<h3 id="windows-client-natif">Windows (client natif)</h3>

<p><code class="language-plaintext highlighter-rouge">Paramètres</code> → <code class="language-plaintext highlighter-rouge">Réseau</code> → <code class="language-plaintext highlighter-rouge">VPN</code> → <code class="language-plaintext highlighter-rouge">Ajouter une connexion VPN</code></p>

<table>
  <thead>
    <tr>
      <th>Champ</th>
      <th>Valeur</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Fournisseur</td>
      <td>Windows (intégré)</td>
    </tr>
    <tr>
      <td>Type</td>
      <td>IKEv2</td>
    </tr>
    <tr>
      <td>Adresse serveur</td>
      <td>IP publique ou FQDN du FortiGate</td>
    </tr>
    <tr>
      <td>Type d’authentification</td>
      <td>Nom d’utilisateur + mot de passe</td>
    </tr>
  </tbody>
</table>

<p>Pour forcer les bons algorithmes de chiffrement via PowerShell :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Add-VpnConnection</span><span class="w"> </span><span class="nt">-Name</span><span class="w"> </span><span class="s2">"VPN-Bureau"</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-ServerAddress</span><span class="w"> </span><span class="s2">"vpn.mondomaine.com"</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-TunnelType</span><span class="w"> </span><span class="nx">IKEv2</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-AuthenticationMethod</span><span class="w"> </span><span class="nx">EAP</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-EncryptionLevel</span><span class="w"> </span><span class="nx">Maximum</span><span class="w">

</span><span class="n">Set-VpnConnectionIPsecConfiguration</span><span class="w"> </span><span class="nt">-ConnectionName</span><span class="w"> </span><span class="s2">"VPN-Bureau"</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-AuthenticationTransformConstants</span><span class="w"> </span><span class="nx">SHA256128</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-CipherTransformConstants</span><span class="w"> </span><span class="nx">AES256</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-DHGroup</span><span class="w"> </span><span class="nx">Group14</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-IntegrityCheckMethod</span><span class="w"> </span><span class="nx">SHA256</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-PfsGroup</span><span class="w"> </span><span class="nx">PFS2048</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-EncryptionMethod</span><span class="w"> </span><span class="nx">AES256</span><span class="w">
</span></code></pre></div></div>

<h3 id="macos">macOS</h3>

<p><code class="language-plaintext highlighter-rouge">Préférences Système</code> → <code class="language-plaintext highlighter-rouge">Réseau</code> → <code class="language-plaintext highlighter-rouge">+</code> → <code class="language-plaintext highlighter-rouge">VPN</code> → <code class="language-plaintext highlighter-rouge">IKEv2</code></p>

<p>Renseignez l’adresse du serveur, l’identifiant distant (IP ou FQDN du FortiGate) et le type d’authentification par identifiant/mot de passe.</p>

<hr />

<h2 id="partie-4--diagnostic-et-vérification">Partie 4 — Diagnostic et vérification</h2>

<h3 id="tester-lauthentification-ldap-synology">Tester l’authentification LDAP Synology</h3>

<p>C’est la <strong>première chose à vérifier</strong>. Si le LDAP ne répond pas, rien ne fonctionnera.</p>

<p>En CLI :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>diagnose test authserver ldap SYNOLOGY-LDAP utilisateur motdepasse
</code></pre></div></div>

<p>En GUI : <code class="language-plaintext highlighter-rouge">User &amp; Authentication</code> → <code class="language-plaintext highlighter-rouge">LDAP Servers</code> → clic sur <code class="language-plaintext highlighter-rouge">SYNOLOGY-LDAP</code> → <strong>Test User Credentials</strong>.</p>

<h3 id="problèmes-fréquents-avec-le-ldap-synology">Problèmes fréquents avec le LDAP Synology</h3>

<table>
  <thead>
    <tr>
      <th>Symptôme</th>
      <th>Cause probable</th>
      <th>Solution</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>“Connection failed”</td>
      <td>Port bloqué ou NAS injoignable</td>
      <td>Vérifiez le pare-feu du NAS (port 389 ou 636 ouvert)</td>
    </tr>
    <tr>
      <td>“Invalid credentials”</td>
      <td>Mauvais Bind DN</td>
      <td>Vérifiez le format : <code class="language-plaintext highlighter-rouge">uid=xxx,cn=users,dc=xxx,dc=xxx</code></td>
    </tr>
    <tr>
      <td>“User not found”</td>
      <td>cnid incorrect</td>
      <td>Le cnid doit être <code class="language-plaintext highlighter-rouge">uid</code>, pas <code class="language-plaintext highlighter-rouge">sAMAccountName</code></td>
    </tr>
    <tr>
      <td>“No matching group”</td>
      <td>Mauvais DN de groupe</td>
      <td>Vérifiez : <code class="language-plaintext highlighter-rouge">cn=vpn-users,cn=groups,dc=xxx,dc=xxx</code></td>
    </tr>
    <tr>
      <td>Timeout</td>
      <td>LDAPS sans certificat valide</td>
      <td>Testez d’abord en LDAP (389) puis passez en LDAPS</td>
    </tr>
  </tbody>
</table>

<h3 id="monitorer-les-tunnels-actifs">Monitorer les tunnels actifs</h3>

<p>En CLI :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>diagnose vpn ike gateway list
diagnose vpn tunnel list
get vpn ipsec tunnel summary
</code></pre></div></div>

<p>En GUI : <code class="language-plaintext highlighter-rouge">Monitor</code> → <code class="language-plaintext highlighter-rouge">IPsec Monitor</code></p>

<h3 id="debug-ikev2-en-temps-réel">Debug IKEv2 en temps réel</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>diagnose debug application ike -1
diagnose debug enable
</code></pre></div></div>

<p>Pour arrêter :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>diagnose debug disable
diagnose debug reset
</code></pre></div></div>

<h3 id="consulter-les-logs">Consulter les logs</h3>

<p>En GUI : <code class="language-plaintext highlighter-rouge">Log &amp; Report</code> → <code class="language-plaintext highlighter-rouge">Events</code> → <code class="language-plaintext highlighter-rouge">VPN Events</code></p>

<hr />

<h2 id="points-importants-pour-le-fortigate-40">Points importants pour le FortiGate 40</h2>

<ul>
  <li><strong>Nombre de tunnels</strong> : le modèle 40 supporte un nombre limité de tunnels simultanés. Vérifiez avec <code class="language-plaintext highlighter-rouge">get system status</code>.</li>
  <li><strong>Performance crypto</strong> : privilégiez AES256-SHA256 plutôt que des suites plus lourdes.</li>
  <li><strong>FortiOS minimum</strong> : IKEv2 avec mode-cfg et EAP nécessite au minimum FortiOS 5.6+. Idéalement, passez en 7.x.</li>
  <li><strong>NAT-T</strong> : activez toujours <code class="language-plaintext highlighter-rouge">nattraversal enable</code> car la majorité des clients sont derrière du NAT.</li>
  <li><strong>Pare-feu du NAS</strong> : n’oubliez pas d’ouvrir le port LDAP (389 ou 636) dans le pare-feu du Synology, pas seulement celui du FortiGate.</li>
</ul>

<h2 id="les-causes-déchec-les-plus-fréquentes">Les causes d’échec les plus fréquentes</h2>

<ol>
  <li><strong>cnid incorrect</strong> : <code class="language-plaintext highlighter-rouge">uid</code> pour Synology LDAP Server, jamais <code class="language-plaintext highlighter-rouge">sAMAccountName</code></li>
  <li><strong>Format du Bind DN</strong> : <code class="language-plaintext highlighter-rouge">uid=user,cn=users,dc=xxx</code> et non <code class="language-plaintext highlighter-rouge">CN=user,OU=xxx,DC=xxx</code></li>
  <li><strong>Format du groupe</strong> : <code class="language-plaintext highlighter-rouge">cn=groupe,cn=groups,dc=xxx</code> et non <code class="language-plaintext highlighter-rouge">CN=groupe,OU=Groups,DC=xxx</code></li>
  <li><strong>Version IKE</strong> : client et FortiGate doivent être sur IKEv2 tous les deux</li>
  <li><strong>Algorithmes de chiffrement</strong> : les proposals Phase 1 et Phase 2 doivent correspondre</li>
  <li><strong>Pare-feu du NAS</strong> : le port LDAP doit être ouvert sur le Synology</li>
  <li><strong>Ports UDP</strong> : les ports 500 et 4500 doivent être ouverts sur le réseau du client</li>
</ol>]]></content><author><name>Franck Hugonnier</name></author><category term="reseau" /><category term="fortigate" /><category term="vpn" /><category term="ipsec" /><category term="ikev2" /><category term="ldap" /><category term="synology" /><category term="fortinet" /><summary type="html"><![CDATA[Comment mettre en place un VPN IPsec IKEv2 sur un FortiGate 40 avec authentification LDAP hébergé sur un NAS Synology (paquet LDAP Server) ? Ce guide couvre la configuration complète en CLI et en interface graphique, avec le diagnostic en cas de problème.]]></summary></entry><entry><title type="html">Bienvenue sur le nouveau NOOBS</title><link href="https://fhugonnier.github.io/2026/03/25/bienvenue-nouveau-noobs/" rel="alternate" type="text/html" title="Bienvenue sur le nouveau NOOBS" /><published>2026-03-25T00:00:00+00:00</published><updated>2026-03-25T00:00:00+00:00</updated><id>https://fhugonnier.github.io/2026/03/25/bienvenue-nouveau-noobs</id><content type="html" xml:base="https://fhugonnier.github.io/2026/03/25/bienvenue-nouveau-noobs/"><![CDATA[<p>Le blog NOOBS a fait peau neuve ! Après plusieurs années sur WordPress.com, le site migre vers <strong>GitHub Pages</strong> avec un tout nouveau design <strong>Terminal Dark</strong>.</p>

<h2 id="ce-qui-change">Ce qui change</h2>

<ul>
  <li><strong>Design sombre</strong> inspiré de GitHub, pensé pour les développeurs et sysadmins</li>
  <li><strong>Performance</strong> — pages statiques ultra rapides, pas de base de données</li>
  <li><strong>Hébergement gratuit</strong> sur GitHub Pages avec HTTPS automatique</li>
  <li><strong>Code source ouvert</strong> — le site est un dépôt Git</li>
</ul>

<h2 id="ce-qui-ne-change-pas">Ce qui ne change pas</h2>

<p>Le contenu reste le même : des tutoriels IT concrets sur VMware, Windows Server, PowerShell, Active Directory et plus encore.</p>

<h2 id="un-exemple-de-code">Un exemple de code</h2>

<p>Voici comment récupérer votre licence Windows 10 en PowerShell :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">powershell</span><span class="w"> </span><span class="s2">"(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey"</span><span class="w">
</span></code></pre></div></div>

<p>Restez connectés, de nouveaux tutos arrivent bientôt !</p>]]></content><author><name>Franck Hugonnier</name></author><category term="general" /><category term="noobs" /><category term="migration" /><category term="jekyll" /><summary type="html"><![CDATA[Le blog NOOBS a fait peau neuve ! Après plusieurs années sur WordPress.com, le site migre vers GitHub Pages avec un tout nouveau design Terminal Dark.]]></summary></entry><entry><title type="html">Migrer son blog WordPress vers GitHub Pages avec Jekyll</title><link href="https://fhugonnier.github.io/2026/03/25/migrer-wordpress-vers-github-pages-jekyll/" rel="alternate" type="text/html" title="Migrer son blog WordPress vers GitHub Pages avec Jekyll" /><published>2026-03-25T00:00:00+00:00</published><updated>2026-03-25T00:00:00+00:00</updated><id>https://fhugonnier.github.io/2026/03/25/migrer-wordpress-vers-github-pages-jekyll</id><content type="html" xml:base="https://fhugonnier.github.io/2026/03/25/migrer-wordpress-vers-github-pages-jekyll/"><![CDATA[<p>Après plusieurs années sur WordPress.com, j’ai décidé de migrer mon blog <strong>NOOBS</strong> vers <strong>GitHub Pages</strong>. Pourquoi ? Parce que le plan gratuit WordPress.com est devenu trop limité : pas de CSS personnalisé, pas de plugins, des pubs imposées. GitHub Pages offre un hébergement <strong>100% gratuit</strong>, un contrôle total du design, et une vitesse imbattable.</p>

<p>Voici le guide complet de ma migration, étape par étape.</p>

<h2 id="pourquoi-quitter-wordpresscom-">Pourquoi quitter WordPress.com ?</h2>

<p>Après 61 articles et plusieurs années sur WordPress.com (plan gratuit), voici les limitations qui m’ont poussé à partir :</p>

<ul>
  <li><strong>Pas de CSS personnalisé</strong> — impossible de personnaliser le design sans payer</li>
  <li><strong>Thème Greyzed vieillissant</strong> — peu de thèmes sombres modernes disponibles</li>
  <li><strong>Publicités imposées</strong> — WordPress affiche ses pubs sur votre site gratuit</li>
  <li><strong>Pas de plugins</strong> — aucune extension possible en plan gratuit</li>
  <li><strong>Performance moyenne</strong> — pages dynamiques plus lentes que du statique</li>
</ul>

<h2 id="pourquoi-github-pages--jekyll-">Pourquoi GitHub Pages + Jekyll ?</h2>

<ul>
  <li><strong>Gratuit</strong> — hébergement, SSL, même avec un domaine personnalisé</li>
  <li><strong>Ultra rapide</strong> — pages statiques, pas de base de données</li>
  <li><strong>Contrôle total</strong> — HTML, CSS, JavaScript, tout est à vous</li>
  <li><strong>Markdown</strong> — écriture des articles en Markdown, coloration syntaxique native</li>
  <li><strong>Git</strong> — versioning de tout votre site, backup automatique</li>
  <li><strong>Communauté</strong> — des centaines de thèmes Jekyll disponibles</li>
</ul>

<h2 id="prérequis">Prérequis</h2>

<p>Avant de commencer, installez ces outils :</p>

<ul>
  <li><strong>Git</strong> — <a href="https://git-scm.com/downloads">git-scm.com</a></li>
  <li><strong>Ruby</strong> (3.0+) — <a href="https://rubyinstaller.org/">rubyinstaller.org</a> (Windows) ou via Homebrew (Mac)</li>
  <li><strong>Jekyll</strong> — installé via Ruby</li>
  <li><strong>VS Code</strong> — <a href="https://code.visualstudio.com/">code.visualstudio.com</a></li>
</ul>

<h3 id="installation-sur-mac">Installation sur Mac</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Installer Homebrew (si pas déjà fait)</span>
/bin/bash <span class="nt">-c</span> <span class="s2">"</span><span class="si">$(</span>curl <span class="nt">-fsSL</span> https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh<span class="si">)</span><span class="s2">"</span>

<span class="c"># Installer Ruby via Homebrew (PAS le Ruby système !)</span>
brew <span class="nb">install </span>ruby

<span class="c"># Ajouter au PATH</span>
<span class="nb">echo</span> <span class="s1">'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"'</span> <span class="o">&gt;&gt;</span> ~/.zshrc
<span class="nb">echo</span> <span class="s1">'export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH"'</span> <span class="o">&gt;&gt;</span> ~/.zshrc
<span class="nb">source</span> ~/.zshrc

<span class="c"># Vérifier</span>
ruby <span class="nt">--version</span>   <span class="c"># Doit afficher 3.x ou 4.x</span>
which ruby       <span class="c"># Doit afficher /opt/homebrew/...</span>

<span class="c"># Installer Jekyll</span>
gem <span class="nb">install </span>jekyll bundler
</code></pre></div></div>

<blockquote>
  <p><strong>Attention</strong> : n’utilisez jamais <code class="language-plaintext highlighter-rouge">sudo gem install</code> sur Mac. Si vous avez une erreur de permissions sur <code class="language-plaintext highlighter-rouge">/Library/Ruby/Gems/</code>, c’est que vous utilisez le Ruby système. Installez Ruby via Homebrew comme indiqué ci-dessus.</p>
</blockquote>

<h3 id="installation-sur-windows">Installation sur Windows</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Téléchargez Ruby+Devkit depuis rubyinstaller.org</span>
<span class="c"># Après installation :</span>
gem <span class="nb">install </span>jekyll bundler
jekyll <span class="nt">--version</span>
</code></pre></div></div>

<h2 id="étape-1--créer-le-dépôt-github">Étape 1 — Créer le dépôt GitHub</h2>

<ol>
  <li>Créez un compte sur <a href="https://github.com">github.com</a> si nécessaire</li>
  <li>Créez un nouveau dépôt nommé <code class="language-plaintext highlighter-rouge">votre-username.github.io</code></li>
  <li>Clonez-le en local :</li>
</ol>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/votre-username/votre-username.github.io.git
<span class="nb">cd </span>votre-username.github.io
</code></pre></div></div>

<blockquote>
  <p>Le nom du dépôt <strong>doit</strong> être <code class="language-plaintext highlighter-rouge">votre-username.github.io</code> pour que GitHub Pages s’active automatiquement.</p>
</blockquote>

<h2 id="étape-2--initialiser-jekyll">Étape 2 — Initialiser Jekyll</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd </span>votre-username.github.io
jekyll new <span class="nb">.</span> <span class="nt">--force</span>
bundle <span class="nb">install
</span>bundle <span class="nb">exec </span>jekyll serve
</code></pre></div></div>

<p>Ouvrez <code class="language-plaintext highlighter-rouge">http://localhost:4000</code> — vous verrez le thème par défaut (Minima).</p>

<h2 id="étape-3--exporter-depuis-wordpress">Étape 3 — Exporter depuis WordPress</h2>

<ol>
  <li>Connectez-vous sur <a href="https://wordpress.com/export/">wordpress.com/export</a></li>
  <li>Sélectionnez <strong>“Tout le contenu”</strong></li>
  <li>Téléchargez le fichier <code class="language-plaintext highlighter-rouge">.xml</code></li>
  <li>Placez-le dans votre projet :</li>
</ol>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cp</span> ~/Downloads/<span class="k">*</span>.xml export.xml
</code></pre></div></div>

<h2 id="étape-4--importer-les-articles">Étape 4 — Importer les articles</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Installer l'importeur</span>
gem <span class="nb">install </span>jekyll-import open_uri_redirections

<span class="c"># Lancer l'import</span>
ruby <span class="nt">-e</span> <span class="s2">"require 'jekyll-import';
JekyllImport::Importers::WordpressDotCom.run({
  'source' =&gt; 'export.xml',
  'no_fetch_images' =&gt; false,
  'assets_folder' =&gt; 'assets/images'
})"</span>
</code></pre></div></div>

<p>L’importeur va :</p>
<ul>
  <li>Créer un fichier <code class="language-plaintext highlighter-rouge">.md</code> par article dans <code class="language-plaintext highlighter-rouge">_posts/</code></li>
  <li>Télécharger les images dans <code class="language-plaintext highlighter-rouge">assets/images/</code></li>
  <li>Conserver les catégories et tags</li>
</ul>

<blockquote>
  <p><strong>Note</strong> : certaines images externes (hotlinkées depuis d’autres sites) peuvent renvoyer des erreurs 404. C’est normal — ces images n’étaient pas hébergées sur votre WordPress. Vous pouvez les ignorer ou les supprimer des articles concernés.</p>
</blockquote>

<h3 id="nettoyer-les-images-cassées">Nettoyer les images cassées</h3>

<p>Après l’import, supprimez les références aux images dont les liens sont morts :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Exemple : supprimer les liens vers un site externe disparu</span>
find _posts/ <span class="nt">-name</span> <span class="s2">"*.md"</span> <span class="nt">-o</span> <span class="nt">-name</span> <span class="s2">"*.html"</span> | xargs <span class="nb">sed</span> <span class="nt">-i</span> <span class="s1">''</span> <span class="s1">'/site-disparu\.com/d'</span>
</code></pre></div></div>

<h2 id="étape-5--personnaliser-le-thème">Étape 5 — Personnaliser le thème</h2>

<p>Le thème Minima par défaut est basique. Pour le remplacer par un thème personnalisé :</p>

<h3 id="supprimer-minima">Supprimer Minima</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">rm</span> <span class="nt">-f</span> assets/main.scss index.md index.markdown about.md about.markdown 404.html
</code></pre></div></div>

<p>Supprimez aussi la ligne <code class="language-plaintext highlighter-rouge">theme: minima</code> dans <code class="language-plaintext highlighter-rouge">_config.yml</code>.</p>

<h3 id="créer-votre-propre-thème">Créer votre propre thème</h3>

<p>Créez cette structure :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>_layouts/
  default.html     → Layout principal
  post.html        → Template d'article
  page.html        → Template de page
_includes/
  header.html      → Navigation
  footer.html      → Pied de page
assets/
  css/style.css    → Votre CSS personnalisé
</code></pre></div></div>

<p>Le layout <code class="language-plaintext highlighter-rouge">default.html</code> est le squelette de toutes vos pages :</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;!DOCTYPE html&gt;</span>
<span class="nt">&lt;html</span> <span class="na">lang=</span><span class="s">"fr"</span><span class="nt">&gt;</span>
<span class="nt">&lt;head&gt;</span>
  <span class="nt">&lt;meta</span> <span class="na">charset=</span><span class="s">"UTF-8"</span><span class="nt">&gt;</span>
  <span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"viewport"</span> <span class="na">content=</span><span class="s">"width=device-width, initial-scale=1.0"</span><span class="nt">&gt;</span>
  <span class="nt">&lt;title&gt;</span>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title }}<span class="nt">&lt;/title&gt;</span>
  <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"stylesheet"</span> <span class="na">href=</span><span class="s">"{{ '/assets/css/style.css' | relative_url }}"</span><span class="nt">&gt;</span>
<span class="nt">&lt;/head&gt;</span>
<span class="nt">&lt;body&gt;</span>
  {% include header.html %}
  <span class="nt">&lt;main</span> <span class="na">class=</span><span class="s">"container"</span><span class="nt">&gt;</span>
    {{ content }}
  <span class="nt">&lt;/main&gt;</span>
  {% include footer.html %}
<span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</code></pre></div></div>

<h2 id="étape-6--configurer-jekyll">Étape 6 — Configurer Jekyll</h2>

<p>Voici un exemple de <code class="language-plaintext highlighter-rouge">_config.yml</code> complet :</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">title</span><span class="pi">:</span> <span class="s">NOOBS</span>
<span class="na">description</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Tutoriels</span><span class="nv"> </span><span class="s">IT</span><span class="nv"> </span><span class="s">—</span><span class="nv"> </span><span class="s">VMware,</span><span class="nv"> </span><span class="s">Windows</span><span class="nv"> </span><span class="s">Server,</span><span class="nv"> </span><span class="s">PowerShell"</span>
<span class="na">url</span><span class="pi">:</span> <span class="s2">"</span><span class="s">https://votre-username.github.io"</span>
<span class="na">baseurl</span><span class="pi">:</span> <span class="s2">"</span><span class="s">"</span>
<span class="na">author</span><span class="pi">:</span>
  <span class="na">name</span><span class="pi">:</span> <span class="s">Votre Nom</span>
<span class="na">lang</span><span class="pi">:</span> <span class="s">fr</span>

<span class="na">permalink</span><span class="pi">:</span> <span class="s">/:year/:month/:day/:title/</span>

<span class="na">paginate</span><span class="pi">:</span> <span class="m">9</span>
<span class="na">paginate_path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">/page/:num/"</span>

<span class="na">markdown</span><span class="pi">:</span> <span class="s">kramdown</span>
<span class="na">highlighter</span><span class="pi">:</span> <span class="s">rouge</span>

<span class="na">plugins</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">jekyll-feed</span>
  <span class="pi">-</span> <span class="s">jekyll-seo-tag</span>
  <span class="pi">-</span> <span class="s">jekyll-paginate</span>
  <span class="pi">-</span> <span class="s">jekyll-sitemap</span>

<span class="na">exclude</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">Gemfile</span>
  <span class="pi">-</span> <span class="s">Gemfile.lock</span>
  <span class="pi">-</span> <span class="s">README.md</span>
  <span class="pi">-</span> <span class="s">export.xml</span>
</code></pre></div></div>

<h2 id="étape-7--déployer-sur-github-pages">Étape 7 — Déployer sur GitHub Pages</h2>

<h3 id="tester-en-local">Tester en local</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle <span class="nb">exec </span>jekyll serve <span class="nt">--livereload</span>
</code></pre></div></div>

<p>Vérifiez que tout fonctionne sur <code class="language-plaintext highlighter-rouge">http://localhost:4000</code>.</p>

<h3 id="pousser-sur-github">Pousser sur GitHub</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"export.xml"</span> <span class="o">&gt;&gt;</span> .gitignore
git add <span class="nb">.</span>
git commit <span class="nt">-m</span> <span class="s2">"Migration vers Jekyll"</span>
git push origin main
</code></pre></div></div>

<blockquote>
  <p><strong>Important</strong> : GitHub ne supporte plus l’authentification par mot de passe. Vous devez créer un <strong>Personal Access Token</strong> sur <a href="https://github.com/settings/tokens">github.com/settings/tokens</a> et l’utiliser comme mot de passe.</p>
</blockquote>

<h3 id="activer-github-pages">Activer GitHub Pages</h3>

<ol>
  <li>Allez sur votre dépôt → <strong>Settings</strong> → <strong>Pages</strong></li>
  <li>Source : <strong>Deploy from a branch</strong></li>
  <li>Branch : <strong>main</strong> / dossier <strong>root</strong></li>
  <li>Cliquez <strong>Save</strong></li>
</ol>

<p>Votre site sera en ligne sur <code class="language-plaintext highlighter-rouge">https://votre-username.github.io</code> en 1-2 minutes.</p>

<h2 id="étape-8--domaine-personnalisé-optionnel">Étape 8 — Domaine personnalisé (optionnel)</h2>

<p>Vous pouvez connecter un domaine personnalisé gratuitement :</p>

<ol>
  <li>Achetez un domaine (~12€/an chez OVH, Gandi, etc.)</li>
  <li>Dans Settings → Pages → <strong>Custom domain</strong>, entrez votre domaine</li>
  <li>Configurez les DNS chez votre registrar :</li>
</ol>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>A     @     185.199.108.153
A     @     185.199.109.153
A     @     185.199.110.153
A     @     185.199.111.153
CNAME www   votre-username.github.io
</code></pre></div></div>

<p>Le SSL (HTTPS) est automatique et gratuit. Cochez <strong>“Enforce HTTPS”</strong>.</p>

<h2 id="workflow-quotidien">Workflow quotidien</h2>

<p>Publier un article sur Jekyll, c’est simple :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># 1. Créer l'article</span>
<span class="nb">touch </span>_posts/2026-03-25-mon-nouveau-tuto.md

<span class="c"># 2. Écrire en Markdown avec le front matter</span>
<span class="c"># ---</span>
<span class="c"># layout: post</span>
<span class="c"># title: "Mon super tuto"</span>
<span class="c"># date: 2026-03-25</span>
<span class="c"># categories: [vmware]</span>
<span class="c"># ---</span>
<span class="c"># Contenu de l'article en Markdown...</span>

<span class="c"># 3. Tester</span>
bundle <span class="nb">exec </span>jekyll serve <span class="nt">--livereload</span>

<span class="c"># 4. Publier</span>
git add <span class="nb">.</span>
git commit <span class="nt">-m</span> <span class="s2">"Nouveau tuto: mon sujet"</span>
git push
</code></pre></div></div>

<p>C’est tout. Pas de tableau de bord, pas de base de données, pas de mise à jour de sécurité. Juste du Markdown et un <code class="language-plaintext highlighter-rouge">git push</code>.</p>

<h2 id="les-pièges-à-éviter">Les pièges à éviter</h2>

<p>Voici les problèmes que j’ai rencontrés pendant ma migration :</p>

<ol>
  <li><strong>Ruby système sur Mac</strong> — N’utilisez jamais <code class="language-plaintext highlighter-rouge">/usr/bin/ruby</code>. Installez Ruby via Homebrew.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">gem install</code> avec permission denied</strong> — Ne faites JAMAIS <code class="language-plaintext highlighter-rouge">sudo gem install</code>. Corrigez le PATH.</li>
  <li><strong>Bundler cassé après mise à jour Ruby</strong> — Relancez <code class="language-plaintext highlighter-rouge">brew unlink ruby &amp;&amp; brew link ruby --force</code> puis <code class="language-plaintext highlighter-rouge">gem install bundler</code>.</li>
  <li><strong><code class="language-plaintext highlighter-rouge">theme: minima</code> dans _config.yml</strong> — Si vous utilisez votre propre thème, supprimez cette ligne sinon page blanche.</li>
  <li><strong>Fichiers fantômes</strong> — Supprimez <code class="language-plaintext highlighter-rouge">index.markdown</code>, <code class="language-plaintext highlighter-rouge">about.markdown</code> et <code class="language-plaintext highlighter-rouge">404.html</code> du thème par défaut.</li>
  <li><strong>Images externes en 404</strong> — Certaines images hotlinkées depuis d’autres sites peuvent avoir disparu. Nettoyez les références.</li>
  <li><strong>Authentification GitHub</strong> — Utilisez un Personal Access Token, pas votre mot de passe.</li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>La migration WordPress → GitHub Pages m’a pris environ une heure. Le résultat : un blog <strong>plus rapide</strong>, <strong>plus beau</strong>, <strong>entièrement personnalisable</strong>, et <strong>100% gratuit</strong>. Si vous avez un blog technique, je recommande cette solution sans hésiter.</p>

<p>Le code source de ce blog est disponible sur <a href="https://github.com/fhugonnier/fhugonnier.github.io">GitHub</a>.</p>]]></content><author><name>Franck Hugonnier</name></author><category term="tutoriels" /><category term="wordpress" /><category term="github" /><category term="jekyll" /><category term="migration" /><category term="blog" /><summary type="html"><![CDATA[Après plusieurs années sur WordPress.com, j’ai décidé de migrer mon blog NOOBS vers GitHub Pages. Pourquoi ? Parce que le plan gratuit WordPress.com est devenu trop limité : pas de CSS personnalisé, pas de plugins, des pubs imposées. GitHub Pages offre un hébergement 100% gratuit, un contrôle total du design, et une vitesse imbattable.]]></summary></entry><entry><title type="html">Modifier les limites de réservation des salles dans Office 365 en PowerShell</title><link href="https://fhugonnier.github.io/2026/03/12/modifier-limites-reservation-salles-office365-powershell/" rel="alternate" type="text/html" title="Modifier les limites de réservation des salles dans Office 365 en PowerShell" /><published>2026-03-12T00:00:00+00:00</published><updated>2026-03-12T00:00:00+00:00</updated><id>https://fhugonnier.github.io/2026/03/12/modifier-limites-reservation-salles-office365-powershell</id><content type="html" xml:base="https://fhugonnier.github.io/2026/03/12/modifier-limites-reservation-salles-office365-powershell/"><![CDATA[<p>Quand vous gérez des salles de réunion ou des équipements dans Office 365, vous allez vite tomber sur un problème : les limites de réservation par défaut sont trop restrictives. Impossible de réserver une salle plus de 24h, pas plus de 180 jours à l’avance… Voici comment modifier ces limites en PowerShell, sur une seule ressource ou sur toutes d’un coup.</p>

<h2 id="se-connecter-à-exchange-online">Se connecter à Exchange Online</h2>

<p>Avant toute chose, il faut se connecter à Exchange Online. Si vous n’avez pas encore le module, installez-le :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Installer le module Exchange Online (une seule fois)</span><span class="w">
</span><span class="n">Install-Module</span><span class="w"> </span><span class="nx">ExchangeOnlineManagement</span><span class="w">

</span><span class="c"># Se connecter</span><span class="w">
</span><span class="n">Connect-ExchangeOnline</span><span class="w"> </span><span class="nt">-UserPrincipalName</span><span class="w"> </span><span class="nx">admin</span><span class="err">@</span><span class="nx">votredomaine.com</span><span class="w">
</span></code></pre></div></div>

<h2 id="vérifier-la-configuration-actuelle">Vérifier la configuration actuelle</h2>

<p>Avant de modifier quoi que ce soit, vérifiez les paramètres actuels de votre ressource :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-CalendarProcessing</span><span class="w"> </span><span class="nt">-Identity</span><span class="w"> </span><span class="s2">"NomDeLaRessource"</span><span class="w"> </span><span class="o">|</span><span class="w"> 
    </span><span class="n">Select-Object</span><span class="w"> </span><span class="nx">MaximumDurationInMinutes</span><span class="p">,</span><span class="w"> </span><span class="nx">BookingWindowInDays</span><span class="p">,</span><span class="w"> </span><span class="nx">MaximumConflictInstances</span><span class="w">
</span></code></pre></div></div>

<p>Remplacez <code class="language-plaintext highlighter-rouge">"NomDeLaRessource"</code> par l’alias, l’email ou le nom complet de la boîte de ressources.</p>

<h2 id="les-paramètres-clés">Les paramètres clés</h2>

<p>Voici les paramètres que vous pouvez modifier sur le traitement calendrier d’une ressource :</p>

<table>
  <thead>
    <tr>
      <th>Paramètre</th>
      <th>Description</th>
      <th>Valeur par défaut</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">MaximumDurationInMinutes</code></td>
      <td>Durée maximale d’une réservation</td>
      <td>1440 (24h)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">BookingWindowInDays</code></td>
      <td>Combien de jours à l’avance on peut réserver</td>
      <td>180</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">MaximumConflictInstances</code></td>
      <td>Nombre de conflits tolérés (réunions récurrentes)</td>
      <td>0</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">PercentageAllowedDegradation</code></td>
      <td>% de dégradation des récurrents autorisé</td>
      <td>0</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">AllowConflicts</code></td>
      <td>Autoriser les réservations en conflit</td>
      <td>$false</td>
    </tr>
  </tbody>
</table>

<h2 id="modifier-une-seule-ressource">Modifier une seule ressource</h2>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Set-CalendarProcessing</span><span class="w"> </span><span class="nt">-Identity</span><span class="w"> </span><span class="s2">"NomDeLaRessource"</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-MaximumDurationInMinutes</span><span class="w"> </span><span class="nx">1440</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-MaximumConflictInstances</span><span class="w"> </span><span class="nx">5</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-BookingWindowInDays</span><span class="w"> </span><span class="nx">365</span><span class="w"> </span><span class="se">`
</span><span class="w">    </span><span class="nt">-AllowConflicts</span><span class="w"> </span><span class="bp">$false</span><span class="w">
</span></code></pre></div></div>

<p>Dans cet exemple :</p>
<ul>
  <li>La durée max d’une réservation est de <strong>24 heures</strong> (1440 minutes)</li>
  <li>On peut réserver jusqu’à <strong>1 an</strong> à l’avance (365 jours)</li>
  <li>Les réunions récurrentes tolèrent jusqu’à <strong>5 conflits</strong></li>
  <li>Les conflits directs restent <strong>interdits</strong></li>
</ul>

<h2 id="modifier-toutes-les-ressources-dun-coup">Modifier TOUTES les ressources d’un coup</h2>

<p>C’est là que ça devient intéressant. Si vous avez 50 salles de réunion, pas question de le faire une par une. Voici la commande qui applique les mêmes paramètres à <strong>toutes les boîtes aux lettres de ressources</strong> (salles + équipements) :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-RecipientTypeDetails</span><span class="w"> </span><span class="nx">RoomMailbox</span><span class="p">,</span><span class="nx">EquipmentMailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="w"> </span><span class="nx">Unlimited</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ForEach-Object</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="n">Set-CalendarProcessing</span><span class="w"> </span><span class="nt">-Identity</span><span class="w"> </span><span class="bp">$_</span><span class="o">.</span><span class="nf">Identity</span><span class="w"> </span><span class="se">`
</span><span class="w">        </span><span class="nt">-MaximumDurationInMinutes</span><span class="w"> </span><span class="nx">1440</span><span class="w"> </span><span class="se">`
</span><span class="w">        </span><span class="nt">-MaximumConflictInstances</span><span class="w"> </span><span class="nx">5</span><span class="w"> </span><span class="se">`
</span><span class="w">        </span><span class="nt">-BookingWindowInDays</span><span class="w"> </span><span class="nx">365</span><span class="w"> </span><span class="se">`
</span><span class="w">        </span><span class="nt">-AllowConflicts</span><span class="w"> </span><span class="bp">$false</span><span class="w">

    </span><span class="n">Write-Host</span><span class="w"> </span><span class="s2">"Mis à jour : </span><span class="si">$(</span><span class="bp">$_</span><span class="o">.</span><span class="nf">DisplayName</span><span class="si">)</span><span class="s2">"</span><span class="w"> </span><span class="nt">-ForegroundColor</span><span class="w"> </span><span class="nx">Green</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Le paramètre <code class="language-plaintext highlighter-rouge">-ResultSize Unlimited</code> est important : sans lui, Exchange ne retourne que les 1000 premiers résultats.</p>

<h3 id="tester-avant-dappliquer-dry-run">Tester avant d’appliquer (dry-run)</h3>

<p>Avant de lancer la modification en masse, affichez d’abord la liste des ressources concernées :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-RecipientTypeDetails</span><span class="w"> </span><span class="nx">RoomMailbox</span><span class="p">,</span><span class="nx">EquipmentMailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="w"> </span><span class="nx">Unlimited</span><span class="w"> </span><span class="o">|</span><span class="w"> 
    </span><span class="n">Select-Object</span><span class="w"> </span><span class="nx">DisplayName</span><span class="p">,</span><span class="w"> </span><span class="nx">Identity</span><span class="w">
</span></code></pre></div></div>

<p>Ça vous permettra de vérifier que vous ne touchez pas à une ressource par erreur.</p>

<h3 id="version-avec-gestion-derreurs-recommandée-en-production">Version avec gestion d’erreurs (recommandée en production)</h3>

<p>En environnement de production, utilisez toujours un <code class="language-plaintext highlighter-rouge">try/catch</code> pour éviter qu’une erreur sur une ressource n’arrête tout le script :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-RecipientTypeDetails</span><span class="w"> </span><span class="nx">RoomMailbox</span><span class="p">,</span><span class="nx">EquipmentMailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="w"> </span><span class="nx">Unlimited</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ForEach-Object</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="kr">try</span><span class="w"> </span><span class="p">{</span><span class="w">
        </span><span class="n">Set-CalendarProcessing</span><span class="w"> </span><span class="nt">-Identity</span><span class="w"> </span><span class="bp">$_</span><span class="o">.</span><span class="nf">Identity</span><span class="w"> </span><span class="se">`
</span><span class="w">            </span><span class="nt">-MaximumDurationInMinutes</span><span class="w"> </span><span class="nx">1440</span><span class="w"> </span><span class="se">`
</span><span class="w">            </span><span class="nt">-MaximumConflictInstances</span><span class="w"> </span><span class="nx">5</span><span class="w"> </span><span class="se">`
</span><span class="w">            </span><span class="nt">-BookingWindowInDays</span><span class="w"> </span><span class="nx">365</span><span class="w"> </span><span class="se">`
</span><span class="w">            </span><span class="nt">-AllowConflicts</span><span class="w"> </span><span class="bp">$false</span><span class="w">

        </span><span class="n">Write-Host</span><span class="w"> </span><span class="s2">"Mis à jour : </span><span class="si">$(</span><span class="bp">$_</span><span class="o">.</span><span class="nf">DisplayName</span><span class="si">)</span><span class="s2">"</span><span class="w"> </span><span class="nt">-ForegroundColor</span><span class="w"> </span><span class="nx">Green</span><span class="w">
    </span><span class="p">}</span><span class="w"> </span><span class="kr">catch</span><span class="w"> </span><span class="p">{</span><span class="w">
        </span><span class="n">Write-Host</span><span class="w"> </span><span class="s2">"Erreur sur : </span><span class="si">$(</span><span class="bp">$_</span><span class="o">.</span><span class="nf">DisplayName</span><span class="si">)</span><span class="s2"> - </span><span class="si">$(</span><span class="bp">$_</span><span class="o">.</span><span class="nf">Exception</span><span class="o">.</span><span class="nf">Message</span><span class="si">)</span><span class="s2">"</span><span class="w"> </span><span class="nt">-ForegroundColor</span><span class="w"> </span><span class="nx">Red</span><span class="w">
    </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Si une salle pose problème (permissions manquantes, boîte corrompue…), le script continue avec les suivantes au lieu de s’arrêter.</p>

<h2 id="vérifier-les-modifications">Vérifier les modifications</h2>

<p>Après avoir appliqué les changements, vérifiez que tout est bon :</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-RecipientTypeDetails</span><span class="w"> </span><span class="nx">RoomMailbox</span><span class="p">,</span><span class="nx">EquipmentMailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="w"> </span><span class="nx">Unlimited</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ForEach-Object</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nv">$config</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Get-CalendarProcessing</span><span class="w"> </span><span class="nt">-Identity</span><span class="w"> </span><span class="bp">$_</span><span class="o">.</span><span class="nf">Identity</span><span class="w">
    </span><span class="p">[</span><span class="n">PSCustomObject</span><span class="p">]@{</span><span class="w">
        </span><span class="nx">Salle</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="bp">$_</span><span class="err">.</span><span class="nx">DisplayName</span><span class="w">
        </span><span class="nx">DureeMax</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"</span><span class="si">$(</span><span class="nv">$config</span><span class="o">.</span><span class="nf">MaximumDurationInMinutes</span><span class="si">)</span><span class="s2"> min"</span><span class="w">
        </span><span class="nx">FenetreReservation</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"</span><span class="si">$(</span><span class="nv">$config</span><span class="o">.</span><span class="nf">BookingWindowInDays</span><span class="si">)</span><span class="s2"> jours"</span><span class="w">
        </span><span class="nx">ConflitsMax</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">$config</span><span class="err">.</span><span class="nx">MaximumConflictInstances</span><span class="w">
    </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Format-Table</span><span class="w"> </span><span class="nt">-AutoSize</span><span class="w">
</span></code></pre></div></div>

<p>Cette commande affiche un tableau propre avec les paramètres de chaque ressource.</p>

<h2 id="récapitulatif">Récapitulatif</h2>

<table>
  <thead>
    <tr>
      <th>Action</th>
      <th>Commande</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Voir la config d’une salle</td>
      <td><code class="language-plaintext highlighter-rouge">Get-CalendarProcessing -Identity "Salle"</code></td>
    </tr>
    <tr>
      <td>Modifier une salle</td>
      <td><code class="language-plaintext highlighter-rouge">Set-CalendarProcessing -Identity "Salle" -BookingWindowInDays 365</code></td>
    </tr>
    <tr>
      <td>Lister toutes les ressources</td>
      <td><code class="language-plaintext highlighter-rouge">Get-Mailbox -RecipientTypeDetails RoomMailbox,EquipmentMailbox</code></td>
    </tr>
    <tr>
      <td>Modifier toutes les salles</td>
      <td>Boucle <code class="language-plaintext highlighter-rouge">ForEach-Object</code> (voir ci-dessus)</td>
    </tr>
  </tbody>
</table>

<p>Pensez à toujours tester sur une seule ressource avant de déployer en masse, et à utiliser le <code class="language-plaintext highlighter-rouge">try/catch</code> en production.</p>]]></content><author><name>Franck Hugonnier</name></author><category term="office365" /><category term="powershell" /><category term="office365" /><category term="exchange" /><category term="salles" /><category term="ressources" /><summary type="html"><![CDATA[Quand vous gérez des salles de réunion ou des équipements dans Office 365, vous allez vite tomber sur un problème : les limites de réservation par défaut sont trop restrictives. Impossible de réserver une salle plus de 24h, pas plus de 180 jours à l’avance… Voici comment modifier ces limites en PowerShell, sur une seule ressource ou sur toutes d’un coup.]]></summary></entry><entry><title type="html">Windows et Office liens officiels</title><link href="https://fhugonnier.github.io/2024/06/24/windows-et-office-liens-officiels/" rel="alternate" type="text/html" title="Windows et Office liens officiels" /><published>2024-06-24T07:52:22+00:00</published><updated>2024-06-24T07:52:22+00:00</updated><id>https://fhugonnier.github.io/2024/06/24/windows-et-office-liens-officiels</id><content type="html" xml:base="https://fhugonnier.github.io/2024/06/24/windows-et-office-liens-officiels/"><![CDATA[<p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><br />
<!-- wp:paragraph --><html><body></p>
<p>merci massgrave</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:table --></p>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<thead>
<tr>
<th>Windows</th>
<th>Office</th>
</tr>
</thead>
<tbody>
<tr>
<td>Windows 11 / 10 / 8.1 - <a href="https://www.microsoft.com/software-download" target="_blank" rel="noreferrer noopener">Microsoft</a> - <a href="https://msdl.gravesoft.dev/" target="_blank" rel="noreferrer noopener">MSDL</a> ❤️</td>
<td>
<a href="https://gravesoft.dev/office_c2r_links" target="_blank" rel="noreferrer noopener">Office C2R Installers</a> ❤️</td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_11_links">Windows 11</a></td>
<td><a href="https://gravesoft.dev/office_c2r_custom" target="_blank" rel="noreferrer noopener">Office C2R Custom Install (Retail / VL)</a></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_10_links">Windows 10</a></td>
<td><a href="https://massgrave.dev/office_msi_links">Office MSI VL (Old versions)</a></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_ltsc_links">Windows 10 / 11 Enterprise <strong>LTSC</strong></a></td>
<td><a href="https://massgrave.dev/office_for_mac">Office For <strong>Mac</strong></a></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_arm_links">Windows ARM64</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_8.1_links">Windows 8.1</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_7_links">Windows 7</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_vista_links">Windows Vista</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_xp_links">Windows XP</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://massgrave.dev/windows_server_links">Windows Server</a></td>
<td></td>
</tr>
<tr>
<td>Windows Insider <a href="https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso" target="_blank" rel="noreferrer noopener">10 / 11</a> - <a href="https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewserver" target="_blank" rel="noreferrer noopener">Server</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --><br />
</body></html></p>]]></content><author><name>{&quot;login&quot;=&gt;&quot;fhugonnier&quot;, &quot;email&quot;=&gt;&quot;fhugonnier@outlook.com&quot;, &quot;display_name&quot;=&gt;&quot;fhugonnier&quot;, &quot;first_name&quot;=&gt;&quot;&quot;, &quot;last_name&quot;=&gt;&quot;&quot;}</name><email>fhugonnier@outlook.com</email></author><category term="Windows" /><summary type="html"><![CDATA[merci massgrave Windows Office Windows 11 / 10 / 8.1 - Microsoft - MSDL ❤️ Office C2R Installers ❤️ Windows 11 Office C2R Custom Install (Retail / VL) Windows 10 Office MSI VL (Old versions) Windows 10 / 11 Enterprise LTSC Office For Mac Windows ARM64 Windows 8.1 Windows 7 Windows Vista Windows XP Windows Server Windows Insider 10 / 11 - Server]]></summary></entry><entry><title type="html">MENACE INFORMATIQUE CARTE EN TEMPS RÉEL</title><link href="https://fhugonnier.github.io/2024/06/24/menace-informatique-carte-en-temps-reel/" rel="alternate" type="text/html" title="MENACE INFORMATIQUE CARTE EN TEMPS RÉEL" /><published>2024-06-24T06:21:31+00:00</published><updated>2024-06-24T06:21:31+00:00</updated><id>https://fhugonnier.github.io/2024/06/24/menace-informatique-carte-en-temps-reel</id><content type="html" xml:base="https://fhugonnier.github.io/2024/06/24/menace-informatique-carte-en-temps-reel/"><![CDATA[<p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><br />
<!-- wp:html /--><!-- wp:paragraph --><html><body></p>
<p><a href="https://cybermap.kaspersky.com/">https://cybermap.kaspersky.com</a></p>
<p><!-- /wp:paragraph --><br />
</body></html></p>]]></content><author><name>{&quot;login&quot;=&gt;&quot;fhugonnier&quot;, &quot;email&quot;=&gt;&quot;fhugonnier@outlook.com&quot;, &quot;display_name&quot;=&gt;&quot;fhugonnier&quot;, &quot;first_name&quot;=&gt;&quot;&quot;, &quot;last_name&quot;=&gt;&quot;&quot;}</name><email>fhugonnier@outlook.com</email></author><category term="Non classé" /><summary type="html"><![CDATA[https://cybermap.kaspersky.com]]></summary></entry><entry><title type="html">TÉLÉCHARGER WINDOWS 10 GRATUITEMENT (ISO EN LIEN DIRECT)</title><link href="https://fhugonnier.github.io/2021/04/18/telecharger-windows-10-gratuitement-iso-en-lien-direct/" rel="alternate" type="text/html" title="TÉLÉCHARGER WINDOWS 10 GRATUITEMENT (ISO EN LIEN DIRECT)" /><published>2021-04-18T09:27:37+00:00</published><updated>2021-04-18T09:27:37+00:00</updated><id>https://fhugonnier.github.io/2021/04/18/telecharger-windows-10-gratuitement-iso-en-lien-direct</id><content type="html" xml:base="https://fhugonnier.github.io/2021/04/18/telecharger-windows-10-gratuitement-iso-en-lien-direct/"><![CDATA[<p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><br />
<!-- wp:heading {"level":1} --><html><body></p>
<h1></h1>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p>Toutes les versions sont présentes avec l'architecture x86 et x64.<br>Voici comment <strong>télécharger Windows 10 gratuitement en lien direct</strong>. merci à Malekal.com</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:image {"id":72987} --></p>
<figure class="wp-block-image"></figure>
<p><!-- /wp:image --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading --></p>
<h2 id="h-t-l-charger-les-iso-de-windows-10-gratuitement">TÉLÉCHARGER LES ISO DE WINDOWS 10 GRATUITEMENT</h2>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Voici des liens directs pour télécharger Windows 10 gratuitement.Ce sont des liens Microsoft donc officiels garantit sans malware.</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p>Les ISO sont multi-editions incluant Famille (Home) et l'édition Professionnelle, Education.</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-20h2-octobre-2020">Windows 10, version 20H2 (Octobre 2020)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-86" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 2004 (Updated May 2020)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_20H2_French_x64.iso<br>Win10_20H2_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 4.3 Go<br>x64 : 5.8 Go</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>N/A</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-20h2-octobre-2020-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 10 20H2 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-20h2-octobre-2020-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 10 20H2 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-2004-update-may-2004">Windows 10, Version 2004 (Update May 2004)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-83" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 2004 (Updated May 2020)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_2004_French_x64.iso<br>Win10_2004_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.56 Go<br>x64 : 5.00 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>N/A</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-2004-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 10 2004 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-2004-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 10 2004 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1909-updated-nov-2019">Windows 10, Version 1909 (Updated Nov 2019)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-64" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1909 (Updated Nov 2019)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1909_French_x64.iso<br>Win10_1909_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.56 Go<br>x64 : 5.07 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>N/A</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1909-x64/" target="_blank" rel="noreferrer noopener">Windows 10 1909 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1909-x86/" target="_blank" rel="noreferrer noopener">Windows 10 1909 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1903-updated-aug-2019">Windows 10, Version 1903 (Updated Aug 2019)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-65" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1903 (Updated Aug 2019)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1903_French_x64.iso<br>Win10_1903_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.27 Go<br>x64 : 4.62 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 1e5c9957d0aafc911ed4cb6a069234b0b6f63c3e<br>x64 : dfe4d1c27e2d40d52e7d4312b9b8b506b96fc909</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1903-x64/" target="_blank" rel="noreferrer noopener">Windows 10 1903 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1903-x86/" target="_blank" rel="noreferrer noopener">Windows 10 1903 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1809-updated-oct-2018">Windows 10, Version 1809 (Updated Oct 2018)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-66" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1809 (Update Oct 2018)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1809_French_x64.iso<br>Win10_1809_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.57 Go<br>x64 : 5.04 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 327f4219ba11b7b06fc13e27f035bff01b9061b3<br>x64 : 9729a28dde2d02b6054da8f4147e406ebd76872f</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1809-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1809 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1809-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1809 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1803-updated-march-2018">Windows 10, Version 1803 (Updated March 2018)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-67" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1803 (Updated March 2018)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1803_French_x64.iso<br>Win10_1803_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.18 Go<br>x64 : 4.4 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 730d7834aa90b3e3ffa0a8fb0d0144a3a7b1c43c<br>x64 : 62564786f5568b40385abb40a1a9bb889f3576c7</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1803-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1803 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1803-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1803 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1709-updated-dec-2017">Windows 10, Version 1709 (Updated Dec 2017)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-68" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1709 (Updated Dec 2017)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1709_French_x64.iso<br>Win10_1709_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.26 Go<br>x64 : 4.4 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 000b0972259ffda6ff384039cfcb390569fbd4c6<br>x64 : 45810f491bff44f4f9df21f8e062d4be316f88e1</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1709-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1709 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1709-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1709 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1703-updated-march-2017">Windows 10, Version 1703 (Updated March 2017)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-69" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1703 (Updated March 2017)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1703_French_x64.iso<br>Win10_1703_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.03 Go<br>x64 : 4.05 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 7411845bdbec568768178cad51c4b396f3553d01<br>x64 : 27a3118bac6b9de311e22402ecf9c24beb784846</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1703-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1703 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1703-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1703 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1607-updated-jul-2016-x64">Windows 10, Version 1607 (Updated Jul 2016) (x64)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-70" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1607 (Updated Jul 2016) (x64)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1607_French_x64.iso<br>Win10_1607_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 2.96 Go<br>x64 : 3.91 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : 4c6c915d86a6c5760716cc1899bb22238a767e4a<br>x64 : a1c460f91b4798dcaf1a5de3edbe796758c0c944</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1607-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1607 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1607-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1607 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3 id="h-windows-10-version-1511-updated-apr-2016-x64">Windows 10, Version 1511 (Updated Apr 2016) (x64)</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:table --></p>
<figure id="tablepress-71" class="wp-block-table">
<table>
<thead>
<tr>
<th> </th>
<th>Windows 10, Version 1511 (Updated Apr 2016) (x64)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nom de fichier</td>
<td>Win10_1511_French_x64.iso<br>Win10_1511_French_x32.iso</td>
</tr>
<tr>
<td>Taille du fichier</td>
<td>x86 : 3.14 Go<br>x64 : 4.16 GB</td>
</tr>
<tr>
<td>Format du fichier</td>
<td>ISO</td>
</tr>
<tr>
<td>SHA1</td>
<td>x86 : b8db3f38e480c7fee683fedd7fe4c842f629d82b<br>x64 : 7ec4b54828b2fa7c0cc3a303d90e626434a87d57</td>
</tr>
<tr>
<td></td>
<td>
<a href="https://telecharger.malekal.com/download/windows-10-1511-x64/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1511 x64</a><br><a href="https://telecharger.malekal.com/download/windows-10-1511-x86/" target="_blank" rel="noreferrer noopener">Télécharger Windows 1511 x86</a>
</td>
</tr>
</tbody>
</table>
</figure>
<p><!-- /wp:table --><br />
</body></html></p>]]></content><author><name>{&quot;login&quot;=&gt;&quot;fhugonnier&quot;, &quot;email&quot;=&gt;&quot;fhugonnier@outlook.com&quot;, &quot;display_name&quot;=&gt;&quot;fhugonnier&quot;, &quot;first_name&quot;=&gt;&quot;&quot;, &quot;last_name&quot;=&gt;&quot;&quot;}</name><email>fhugonnier@outlook.com</email></author><category term="Windows 10" /><summary type="html"><![CDATA[Toutes les versions sont présentes avec l'architecture x86 et x64.Voici comment télécharger Windows 10 gratuitement en lien direct. merci à Malekal.com TÉLÉCHARGER LES ISO DE WINDOWS 10 GRATUITEMENT Voici des liens directs pour télécharger Windows 10 gratuitement.Ce sont des liens Microsoft donc officiels garantit sans malware. Les ISO sont multi-editions incluant Famille (Home) et l'édition Professionnelle, Education. Windows 10, version 20H2 (Octobre 2020)   Windows 10, Version 2004 (Updated May 2020) Nom de fichier Win10_20H2_French_x64.isoWin10_20H2_French_x32.iso Taille du fichier x86 : 4.3 Gox64 : 5.8 Go Format du fichier ISO SHA1 N/A Télécharger Windows 10 20H2 x64Télécharger Windows 10 20H2 x86 Windows 10, Version 2004 (Update May 2004)   Windows 10, Version 2004 (Updated May 2020) Nom de fichier Win10_2004_French_x64.isoWin10_2004_French_x32.iso Taille du fichier x86 : 3.56 Gox64 : 5.00 GB Format du fichier ISO SHA1 N/A Télécharger Windows 10 2004 x64Télécharger Windows 10 2004 x86 Windows 10, Version 1909 (Updated Nov 2019)   Windows 10, Version 1909 (Updated Nov 2019) Nom de fichier Win10_1909_French_x64.isoWin10_1909_French_x32.iso Taille du fichier x86 : 3.56 Gox64 : 5.07 GB Format du fichier ISO SHA1 N/A Windows 10 1909 x64Windows 10 1909 x86 Windows 10, Version 1903 (Updated Aug 2019)   Windows 10, Version 1903 (Updated Aug 2019) Nom de fichier Win10_1903_French_x64.isoWin10_1903_French_x32.iso Taille du fichier x86 : 3.27 Gox64 : 4.62 GB Format du fichier ISO SHA1 x86 : 1e5c9957d0aafc911ed4cb6a069234b0b6f63c3ex64 : dfe4d1c27e2d40d52e7d4312b9b8b506b96fc909 Windows 10 1903 x64Windows 10 1903 x86 Windows 10, Version 1809 (Updated Oct 2018)   Windows 10, Version 1809 (Update Oct 2018) Nom de fichier Win10_1809_French_x64.isoWin10_1809_French_x32.iso Taille du fichier x86 : 3.57 Gox64 : 5.04 GB Format du fichier ISO SHA1 x86 : 327f4219ba11b7b06fc13e27f035bff01b9061b3x64 : 9729a28dde2d02b6054da8f4147e406ebd76872f Télécharger Windows 1809 x64Télécharger Windows 1809 x86 Windows 10, Version 1803 (Updated March 2018)   Windows 10, Version 1803 (Updated March 2018) Nom de fichier Win10_1803_French_x64.isoWin10_1803_French_x32.iso Taille du fichier x86 : 3.18 Gox64 : 4.4 GB Format du fichier ISO SHA1 x86 : 730d7834aa90b3e3ffa0a8fb0d0144a3a7b1c43cx64 : 62564786f5568b40385abb40a1a9bb889f3576c7 Télécharger Windows 1803 x64Télécharger Windows 1803 x86 Windows 10, Version 1709 (Updated Dec 2017)   Windows 10, Version 1709 (Updated Dec 2017) Nom de fichier Win10_1709_French_x64.isoWin10_1709_French_x32.iso Taille du fichier x86 : 3.26 Gox64 : 4.4 GB Format du fichier ISO SHA1 x86 : 000b0972259ffda6ff384039cfcb390569fbd4c6x64 : 45810f491bff44f4f9df21f8e062d4be316f88e1 Télécharger Windows 1709 x64Télécharger Windows 1709 x86 Windows 10, Version 1703 (Updated March 2017)   Windows 10, Version 1703 (Updated March 2017) Nom de fichier Win10_1703_French_x64.isoWin10_1703_French_x32.iso Taille du fichier x86 : 3.03 Gox64 : 4.05 GB Format du fichier ISO SHA1 x86 : 7411845bdbec568768178cad51c4b396f3553d01x64 : 27a3118bac6b9de311e22402ecf9c24beb784846 Télécharger Windows 1703 x64Télécharger Windows 1703 x86 Windows 10, Version 1607 (Updated Jul 2016) (x64)   Windows 10, Version 1607 (Updated Jul 2016) (x64) Nom de fichier Win10_1607_French_x64.isoWin10_1607_French_x32.iso Taille du fichier x86 : 2.96 Gox64 : 3.91 GB Format du fichier ISO SHA1 x86 : 4c6c915d86a6c5760716cc1899bb22238a767e4ax64 : a1c460f91b4798dcaf1a5de3edbe796758c0c944 Télécharger Windows 1607 x64Télécharger Windows 1607 x86 Windows 10, Version 1511 (Updated Apr 2016) (x64)   Windows 10, Version 1511 (Updated Apr 2016) (x64) Nom de fichier Win10_1511_French_x64.isoWin10_1511_French_x32.iso Taille du fichier x86 : 3.14 Gox64 : 4.16 GB Format du fichier ISO SHA1 x86 : b8db3f38e480c7fee683fedd7fe4c842f629d82bx64 : 7ec4b54828b2fa7c0cc3a303d90e626434a87d57 Télécharger Windows 1511 x64Télécharger Windows 1511 x86]]></summary></entry><entry><title type="html">Récupérer la licence Windows 10 en PowerShell</title><link href="https://fhugonnier.github.io/2020/10/06/recuperer-la-licence-windows-10-en-powershell/" rel="alternate" type="text/html" title="Récupérer la licence Windows 10 en PowerShell" /><published>2020-10-06T08:27:02+00:00</published><updated>2020-10-06T08:27:02+00:00</updated><id>https://fhugonnier.github.io/2020/10/06/recuperer-la-licence-windows-10-en-powershell</id><content type="html" xml:base="https://fhugonnier.github.io/2020/10/06/recuperer-la-licence-windows-10-en-powershell/"><![CDATA[<p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><br />
<!-- wp:paragraph --><html><body></p>
<p>powershell "(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey"</p>
<p><!-- /wp:paragraph --><br />
</body></html></p>]]></content><author><name>{&quot;login&quot;=&gt;&quot;fhugonnier&quot;, &quot;email&quot;=&gt;&quot;fhugonnier@outlook.com&quot;, &quot;display_name&quot;=&gt;&quot;fhugonnier&quot;, &quot;first_name&quot;=&gt;&quot;&quot;, &quot;last_name&quot;=&gt;&quot;&quot;}</name><email>fhugonnier@outlook.com</email></author><category term="Windows 10" /><summary type="html"><![CDATA[powershell "(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey"]]></summary></entry><entry><title type="html">Customiser les informations OEM de votre ordinateur</title><link href="https://fhugonnier.github.io/2019/04/15/customiser-les-informations-oem-de-votre-ordinateur/" rel="alternate" type="text/html" title="Customiser les informations OEM de votre ordinateur" /><published>2019-04-15T04:52:12+00:00</published><updated>2019-04-15T04:52:12+00:00</updated><id>https://fhugonnier.github.io/2019/04/15/customiser-les-informations-oem-de-votre-ordinateur</id><content type="html" xml:base="https://fhugonnier.github.io/2019/04/15/customiser-les-informations-oem-de-votre-ordinateur/"><![CDATA[<p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><br />
<html><body></p>
<h2 class="post-title"></h2>
<div class="entry clearfix">
<p><a href="https://dyrk.org/wp-content/uploads/2016/08/hack-any-windows-7-user-password.1280x600.jpg"></a></p>
<p> </p>
<p>Bon après midi,</p>
<p> </p>
<p>J'ai décidé de vous fournir quelques lignes de commande qui vous permettront, pour les fans de tuning qui collent tout plein de stickers sur le dos de leurs laptops, d'aller encore plus loin dans le tuning !!!</p>
<p> </p>
<p>Alors qu'est-ce que <strong>OEM</strong> signifie ?</p>
<p></p>
<p> </p>
<p>Voilà, en gros, c'est simplement le fabricant de super machine de compétition (<em>ou la vielle carcasse qui vous sert d'ordinateur, c'est vous qui voyez</em>).</p>
<p> </p>
<p>Vous pouvez accéder à ces informations de plusieurs manières :</p>
<p> </p>
<p>Soit en vous rendant sur votre poste de travail (<em>ordinateur</em>), en faisant un clic droit, puis en selectionnant "propriété".</p>
<p> </p>
<p><a href="https://dyrk.org/wp-content/uploads/2016/08/Sans-titre-1.png"></a></p>
<p>Soit en saisissant directement dans votre barre de recherche "<strong>System</strong>"</p>
<p> </p>
<p><a href="https://dyrk.org/wp-content/uploads/2016/08/Sans-titre.png"></a></p>
<p> </p>
<p> </p>
<p> </p>
<p>Voilà, vous devriez trouver les informations sur votre système:<em> Windows 10 édition 64bits, fabricant MSI, ...</em></p>
<p>Mais où donc se trouvent ces informations ?</p>
<p>Dans votre base de registres !!!</p>
<p>Oui bon je l'avoue, ça tombe de sens ...</p>
<p>Vous pouvez consulter tout via un (<em>ctrl + r</em>), <strong>regedit</strong></p>
<blockquote><p>Puis en naviguant jusqu'ici :<br />
<em>&gt; HKEY_LOCAL_MACHINE<br />
&gt;&gt; SOFTWARE<br />
&gt;&gt;&gt; Microsoft<br />
&gt;&gt;&gt;&gt;&gt; Windows<br />
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; CurrentVersion<br />
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; OEMInformation</em>
</p></blockquote>
<p> </p>
<p>Voici un récapitulatif des données que vous pourrez y ajouter / modifier :</p>
<table>
<tbody>
<tr>
<td><b>Value name</b></td>
<td><b>Data</b></td>
<td><b>Value type</b></td>
</tr>
<tr>
<td><b>Logo</b></td>
<td>&lt;Path to your logo file&gt;*</td>
<td>REG_SZ</td>
</tr>
<tr>
<td><b>Manufacturer</b></td>
<td>&lt;System manufacturer name&gt;</td>
<td>REG_SZ</td>
</tr>
<tr>
<td><b>Model</b></td>
<td>&lt;System Model number&gt;</td>
<td>REG_SZ</td>
</tr>
<tr>
<td><b>SupportHours</b></td>
<td>&lt;Support hours&gt;</td>
<td>REG_SZ</td>
</tr>
<tr>
<td><b>SupportPhone</b></td>
<td>&lt;OEM Support Phone number&gt;</td>
<td>REG_SZ</td>
</tr>
<tr>
<td><b>SupportURL</b></td>
<td>&lt;OEM Support URL&gt;</td>
<td>REG_SZ</td>
</tr>
</tbody>
</table>
<p><strong>Nota Bene :</strong><br />
pour ce qui concerne le Logo, si vous souhaitez le customiser, il vous faudra indiquer le chemin vers une image au format BMP d'une taille de <em>120 x  120</em> pixels</p>
<p> </p>
<p>Pour modifier directement tout ça en ligne de commande voici quelques exemples :</p>
<p>Ici, je change le logo du fabricant :</p>
<p><em>reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v <strong>Logo</strong> /t REG_SZ /d C:\Users\Moi\Pictures\logo.bmp</em></p>
<p>Là, je modifie le nom du fabricant :</p>
<p><em>reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v <strong>Manufacturer</strong> /t REG_SZ /d société</em></p>
<p>Voyons maintenant un peu ce que ça donne ....</p>
<p><a href="https://fhugonnier.wordpress.com/wp-content/uploads/2019/04/informations.png"></a></p>
</div>
<p></body></html></p>]]></content><author><name>{&quot;login&quot;=&gt;&quot;fhugonnier&quot;, &quot;email&quot;=&gt;&quot;fhugonnier@outlook.com&quot;, &quot;display_name&quot;=&gt;&quot;fhugonnier&quot;, &quot;first_name&quot;=&gt;&quot;&quot;, &quot;last_name&quot;=&gt;&quot;&quot;}</name><email>fhugonnier@outlook.com</email></author><category term="Windows 10" /><summary type="html"><![CDATA[  Bon après midi,   J'ai décidé de vous fournir quelques lignes de commande qui vous permettront, pour les fans de tuning qui collent tout plein de stickers sur le dos de leurs laptops, d'aller encore plus loin dans le tuning !!!   Alors qu'est-ce que OEM signifie ?   Voilà, en gros, c'est simplement le fabricant de super machine de compétition (ou la vielle carcasse qui vous sert d'ordinateur, c'est vous qui voyez).   Vous pouvez accéder à ces informations de plusieurs manières :   Soit en vous rendant sur votre poste de travail (ordinateur), en faisant un clic droit, puis en selectionnant "propriété".   Soit en saisissant directement dans votre barre de recherche "System"         Voilà, vous devriez trouver les informations sur votre système: Windows 10 édition 64bits, fabricant MSI, ... Mais où donc se trouvent ces informations ? Dans votre base de registres !!! Oui bon je l'avoue, ça tombe de sens ... Vous pouvez consulter tout via un (ctrl + r), regedit Puis en naviguant jusqu'ici : &gt; HKEY_LOCAL_MACHINE &gt;&gt; SOFTWARE &gt;&gt;&gt; Microsoft &gt;&gt;&gt;&gt;&gt; Windows &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; CurrentVersion &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; OEMInformation   Voici un récapitulatif des données que vous pourrez y ajouter / modifier : Value name Data Value type Logo &lt;Path to your logo file&gt;* REG_SZ Manufacturer &lt;System manufacturer name&gt; REG_SZ Model &lt;System Model number&gt; REG_SZ SupportHours &lt;Support hours&gt; REG_SZ SupportPhone &lt;OEM Support Phone number&gt; REG_SZ SupportURL &lt;OEM Support URL&gt; REG_SZ Nota Bene : pour ce qui concerne le Logo, si vous souhaitez le customiser, il vous faudra indiquer le chemin vers une image au format BMP d'une taille de 120 x  120 pixels   Pour modifier directement tout ça en ligne de commande voici quelques exemples : Ici, je change le logo du fabricant : reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v Logo /t REG_SZ /d C:\Users\Moi\Pictures\logo.bmp Là, je modifie le nom du fabricant : reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation /v Manufacturer /t REG_SZ /d société Voyons maintenant un peu ce que ça donne ....]]></summary></entry></feed>