Commandes AppCmd de IIS

Pour administrer IIS (Internet Information Server), il existe les outils suivants : l’interface graphique du Gestionnaire IIS, les scripts WMI (rootWebAdministration), le PowerShell, le code managé de l’API Microsoft.Web.Administration et l’outil en ligne de commande AppCmd.exe.

Afin d’automatiser l’audit de IIS, j’ai développé une série de petits scripts basés sur AppCmd. Ces scripts ont été rédigés après la lecture de l’article Appcmd.exe (IIS 7) de Microsoft.

Certains des scripts peuvent s’utiliser sans personnalisation. Toutefois, de nombreux scripts nécessitent une adaptation des variables pour fonctionner correctement dans votre environnement.

Liste des scripts:

AUTHAnonymous- Désactive l’authentification anonyme
AUTHBase+ Active l’authentification de base
AUTHClaims+ Active l’emprunt d’identité ASP.NET
AUTHClaimsUser IIS doit emprunter l’identité d’un compte précis
AUTHDigest+ Active l’authentification Digest avec un domaine précis
AUTHFBA+ Active l’authentification par formulaire
AUTHWindows+ Active l’authentification Windows
Backup Sauvegarde la configuration IIS
BackupList Liste les sauvegardes existantes
BackupNommée Sauvegarde IIS avec un nom de sauvegarde imposé
BackupRestaure Restaure une sauvegarde nommée précise
BackupSansConfirm Sauvegarde la configuration IIS. Ne sauvegarde pas le contenu
Compression+ Active la compression HTTP du contenu statique
CompressionParams Configure les paramètres de compression de contenu statique
Custerr Ajoute un message d’erreur personnalisé pour l’erreur 401.2
CustomHeaders Ajoute un en-tête de réponse
DirectoryBrowse- Désactive l’exploration de répertoire
DirectoryBrowse+ Active l’exploration de répertoire
DocDefautFiles- Supprime un fichier de la liste de documents par défaut
DocDefautFiles+ Ajoute un fichier à la liste de documents par défaut
FilteringEtendus+ Autorise les caractères étendus
FilteringExtensions- Supprime une règle applicable à une extension précise de nom de fichier
FilteringExtensions+ Ajoute une règle d’autorisation applicable à une extension précise de nom
de fichier
FilteringExtensionsUnlisted- Refuse les extensions de nom de fichier non répertoriées
FilteringExtensionsWebDav- Le filtrage des extensions de nom de fichier n’est pas appliqué aux
demandes WebDAV
FilteringMaxContenu Spécifie une longueur maximale du contenu
FilteringMaxEntete Spécifie la taille maximale des en-têtes comportant une valeur précise
FilteringMaxURL Spécifie une longueur maximale d’une URL entrante
FilteringURL- Pas d’analyse des URL qui contiennent une séquence précise
FilteringVerb+ Autorise un verbe
FilteringVerbUnlisted- Refuse les verbes non répertoriés
FilteringVerbUnlistedWebDav- Le filtrage des verbes n’est pas appliqué aux demandes WebDAV
Help Affiche l’aide d’AppCmd
IPSecAddress- Crée une règle de refus pour une adresse IPv4
IPSecAddress+ Crée une règle d’autorisation pour une adresse IPv4
ISAPI Crée une restriction ISAPI qui active une extension ISAPI
Log- Désactive la journalisation
Log+ Active la journalisation
MaxBandwidth Limitation de la bande passante pour un site Web
MaxConnexions Limitation du nombre de connexions
MaxTimeout Limitation du timeout pour un site web
MIME Ajoute un type MIME
PoolList Identifie tous les pools d’applications en cours d’exécution
PoolRecycle Recycle tous les pools d’applications en cours d’exécution
Redirect- Désactive la redirection
Redirect+ Active la redirection et redirige les utilisateurs vers un autre site web
RedirectPermanent Change le code d’état retourné pour la redirection (code réponse
RedirectStandard Change le code d’état retourné pour la redirection (code réponse
RedirectTemporaire Change le code d’état retourné pour la redirection (code réponse
RequestsList Affiche la liste des demandes en cours d’exécution
SecurityRule- Crée une règle de refus pour les utilisateurs anonymes
SecurityRule+ Crée une règle d’autorisation pour tous les utilisateurs
SecurityRuleComplex Crée une règle d’autorisation pour les rôles Admin et Invité, ainsi que pour les utilisateurs Alice et Bob, puis applique cette règle aux verbes GET et POST
SiteAdd Ajoute un nouveau site Web
SiteAutoStart Affiche les sites arrêtés qui ne doivent pas s’exécuter automatiquement
SiteConfig Stocke la totalité de la configuration d’un site web dans un fichier au format XML
SiteConfigEnregistre Enregistre les informations de configuration d’un site dans un fichier au
format XML
SiteConfigRestaure Restaure les informations de configuration d’un site à partir d’un fichier au format XML
SiteDelete Supprime un site web
SiteList Affiche les caractéristiques d’un site web
SitesDeplacePool Déplace toutes les applications d’un site vers un nouveau pool d’applications
SiteSet Modifie l’ID d’un site
SitesList Liste tous les sites Web
SitesStartAll Démarre tous les sites
SiteStopped Affiche les sites arrêtés
SMTP+ Configure le courrier électronique SMTP pour remettre immédiatement les
courriels
SSLPage Exige SSL 128 bits pour un fichier HTML
SSLSite Exige SSL 128 bits pour le site Web
Trace+ Active la journalisation du suivi des demandes ayant échoué au niveau du
site
WPList Répertorie les processus de travail en cours d’exécution

Le nom de mes scripts respecte, peu ou prou, les règles suivantes:

  • Un script AppCmd est préfixé avec AppCmd-
  • Le mot qui suit désigne la catégorie concernée (AUTH: Authorisation, WP: Worker Process, Site, SSL, Backup, Max, etc.)
  • Il y a éventuellement un complément (MaxTimeout)
  • Le signe + à la fin désigne un ajout ou une activation
  • Le signe – à la fin désigne un retrait ou une désactivation

Ces scripts sont mis dans le domaine public, pas de droit d’auteur.

A utiliser à vos risques et périls.

AppCmd_V1_0_0.zip

Laisser un commentaire

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