8 octobre 2026

Déployer un site web IIS sur Windows Server 2022 avec PowerShell

Déployer un site web IIS sur Windows Server 2022 avec PowerShellwindows
Photo: panumas nikhomkhai / Pexels
🖥️ Illustration
PowerShell – Déploiement IIS
PS C:\> Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Success Restart Needed Exit Code Feature Result
——- ————– ——— ————–
True False Success {Web-Server}

PS C:\> New-Item -Path « C:\Sites\DemoSite » -ItemType Directory -Force
PS C:\> Set-Content -Path « C:\Sites\DemoSite\index.html » -Value « <h1>Bienvenue sur DemoSite</h1> »
PS C:\> New-WebAppPool -Name « DemoPool »
PS C:\> New-WebSite -Name « DemoSite » -Port 80 -PhysicalPath « C:\Sites\DemoSite » -ApplicationPool « DemoPool » -HostHeader « demo.local »
PS C:\> Get-WebSite -Name « DemoSite »
Name ID State Physical Path Bindings
—- — —– ————- ——–
DemoSite 2 Started C:\Sites\DemoSite http *:80:demo.local

Contexte

Internet Information Services (IIS) est le serveur web natif de Windows. Dans de nombreux environnements, il faut créer rapidement de nouveaux sites web avec des paramètres spécifiques (nom d’hôte, chemin du répertoire, pool d’applications). Utiliser PowerShell permet d’automatiser ce processus, d’assurer la cohérence et de gagner du temps.

IIS PowerShell site webwindows
Photo: panumas nikhomkhai / Pexels

Quand l’utiliser ?

  • Déploiement de multiples sites web identiques sur plusieurs serveurs.
  • Intégration dans des scripts d’orchestration (déploiement CI/CD).
  • Gestion de serveurs sans interface graphique (Server Core).

🔹 Étapes de déploiement

  1. Installer le rôle IIS et les modules requis.

    Install-WindowsFeature -Name Web-Server -IncludeManagementTools

  2. Créer un répertoire physique pour le site.

    New-Item -Path "C:\Sites\DemoSite" -ItemType Directory -Force

  3. Copier le contenu du site (exemple index.html).

    Set-Content -Path "C:\Sites\DemoSite\index.html" -Value "<h1>Bienvenue sur DemoSite</h1>"

  4. Créer un pool d’applications dédié.

    New-WebAppPool -Name "DemoPool"

  5. Créer le site web avec le binding HTTP sur le port 80 et le nom d’hôte demo.local.

    New-WebSite -Name "DemoSite" -Port 80 -PhysicalPath "C:\Sites\DemoSite" -ApplicationPool "DemoPool" -HostHeader "demo.local"

  6. Vérifier que le site est en ligne.

    Get-WebSite -Name "DemoSite"

⚠️ Méthode alternative

Si vous préférez éviter PowerShell, vous pouvez utiliser le module Server Manager ou l’interface graphique IIS Manager pour créer manuellement le site et le pool d’applications. Cependant, cette approche ne se prête pas à l’automatisation.

⚠️ Bonnes pratiques de sécurité

  • Utiliser un pool d’applications en mode ApplicationPoolIdentity pour limiter les droits du processus.
  • Restreindre les accès au répertoire du site via des ACL NTFS (lecture seule pour le compte IIS_IUSRS).
  • Configurer le binding HTTPS avec un certificat valide dès que possible : New-WebBinding -Name "DemoSite" -Protocol https -Port 443 -HostHeader "demo.local" -CertificateThumbprint "ABC123..."
  • Activer le filtrage des requêtes et les en-têtes de sécurité (X‑Content‑Type‑Options, X‑Frame‑Options) via le module Web-Filtering ou des règles URL Rewrite.

✅ Conclusion

Grâce à PowerShell, le déploiement d’un site IIS devient une tâche rapide, reproductible et scriptable, idéale pour les environnements Windows Server modernes. N’hésitez pas à intégrer ces commandes dans vos scripts d’automatisation pour standardiser vos déploiements web.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *