Commandes AppCmd des pools et sites IIS

Utiliser AppCmd IIS dans des scripts prêts à l’emploi en ligne de commandes

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

En effet, la commande AppCmd est un outil en ligne de commande qui permet de gérer toutes les fonctionnalités de gestion de serveur et le paramétrage de IIS.

Notamment, elle permet de remplacer plusieurs commandes et scripts usuels.

Bon à savoir, l’emplacement physique de AppCmd.exe est dans %windir%\system32\inetsrv.

Comme ce chemin ne fait partie du PATH Windows par défaut, il est recommandé d’ajouter ce chemin à la variable d’environnement PATH afin que la commande soit disponible à partir de tous les dossiers.

Par ailleurs, il est préférable que la commande AppCmd doit être exécutée avec des privilèges élevés.

De plus, la syntaxe générale de AppCmd est :

APPCMD (commande) (objet) (identificateur) (-paramètre:valeur)

Bien évidemment, les commandes prises en charge dépendent de la nature de l’objet traité.

Grâce à la commande suivante, vous pouvez obtenir une aide générale sur la commande Appcmd :

AppCmd /?

Bien sûr, il existe plein de commandes disponibles pour gérer IIS. Toutefois, il estr utile de savoir faire une sauvegarde à l’aide de la commande suivante :

AppCmd backup

De même, vous pourrez faire une restauration d’une sauvegarde grâce à la commande suivante, qui est à compléter :

AppCmd restore backup

Enfin il existe aussi une interface visuelle de AppCmd : AppCmdUI.

Vous pouvez télécharger cette interface visuelles à l’emplacement suivant :

http://coudr.com/iis08

Des scripts prêts-à-l’emploi

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

Gardez à l’esprit que certains des scripts peuvent s’utiliser sans personnalisation.

Toutefois, de nombreux scripts nécessitent une adaptation des variables pour fonctionner correctement dans votre environnement.

AppCmd IIS
AppCmd IIS

Vous trouverez ci’dessous le détail de tous les scripts à télécharger, plus bas.

De même, vous trouverez plus bas l’explication du nommage de ces scripts afin de vous aider à comprendre immédiatement le rôle et l’intérêt de chaque script/

Les premiers scripts AppCmd IIS

  • AUTHAnonymous- désactive l’authentification anonyme.
  • AUTHBase+ active l’authentification de base.
  • AUTHClaims+ active l’emprunt d’identité ASP.NET.
  • AUTHClaimsUser impose que IIS emprunte 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.

La suite des outils IIS

  • 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. Vous ne sauvegardez 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.

Encore la suite des outils Appcmd

  • 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- n’applique pas le filtrage des extensions de nom de fichier 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- ne fait 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- n’applique pas le filtrage des verbes aux demandes WebDAV.

Ca continue avec les outils Appcmd IIS

  • 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 limite la bande passante pour un site Web.
  • MaxConnexions limite le nombre de connexions.
  • MaxTimeout limite le 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.

Toujours AppCmd

  • 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.

D’autres outils Appcmd

  • 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.
  • 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.
Commandes AppCmd pour la configuration IIS
Commandes AppCmd pour la configuration IIS

Grille de lecture

Par ailleurs, le nom de mes scripts respecte, peu ou prou, les règles suivantes. L’objectif est de comprendre tout de suite le rôle d’une commande ou d’un script.

Pour commencer, vous trouverez le prefix ‘AppCmd-‘ devant un script Appcmd IIS. Autrement dit, les scripts débutent tous par ce préfix.

Ensuite, le mot qui suit désigne la catégorie concernée. Les catégories sont nombreuses. Par exemple AUTH désigne les outils liés aux Authorisations (Autorisations en français), WP désigne les Worker Process (Processus de travail), Site concerne la gestion des sites IIS, etc.

Afin de compléter le rôle du script, il y a un complément quand c’est nécessaire, comme MaxTimeout.

Parmi les scripts certains activent un comportement. D’autres désactivent le même comportement. Afin de les différencier, il y a le signe + à la fin qui désigne un ajout ou une activation. Au contraire, le signe – à la fin désigne un retrait ou une désactivation.

Aussi, vous pouvez utiliser ces scripts comme vous voulez. Notamment, c’est à à vos risques et périls car il n’y a aucune garantie.

Téléchargez le fichier zip suivant, qui contient les scripts : AppCmd_V1_0_0.zip

Commentaires

Laisser un commentaire

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