Wie erstellt man mit PowerShell einen Application Pool ohne verwalteten Code?

Melden
  1. Einleitung
  2. PowerShell und IIS-Verwaltung
  3. Vorgehensweise zum Erstellen eines Application Pools ohne verwalteten Code
  4. Beispielcode in PowerShell
  5. Zusammenfassung

Einleitung

In der Verwaltung von IIS (Internet Information Services) ist das Erstellen von Application Pools eine häufige Aufgabe. Ein Application Pool sorgt dafür, dass Webanwendungen in einer separaten Umgebung laufen, um Stabilität und Sicherheit zu gewährleisten. Manchmal möchte man einen Application Pool anlegen, der keinen verwalteten Code ausführt, zum Beispiel wenn ausschließlich native Anwendungen oder PHP-Websites betrieben werden. Hier zeigt sich die Frage, wie man mit PowerShell einen Application Pool erstellt, der auf "Kein verwalteter Code" eingestellt ist.

PowerShell und IIS-Verwaltung

PowerShell bietet zahlreiche Module, die das Verwalten von IIS-Komponenten vereinfachen. Besonders das Modul WebAdministration ist hierbei hilfreich. Es ermöglicht den Zugriff auf IIS-Konfigurationsobjekte über einen Pfad-ähnlichen Namespace. Dies ist die Grundlage, um Application Pools programmatisch zu erstellen und zu konfigurieren.

Vorgehensweise zum Erstellen eines Application Pools ohne verwalteten Code

Um einen neuen Application Pool ohne verwalteten Code anzulegen, starten Sie zunächst PowerShell mit administrativen Rechten, da für IIS-Konfigurationsänderungen meist erhöhte Berechtigungen erforderlich sind. Anschließend wird das WebAdministration-Modul importiert bzw. der IIS-Pfad angesprochen.

Die wichtigste Eigenschaft zur Steuerung der verwalteten Code-Umgebung ist die Einstellung "managedRuntimeVersion". Standardmäßig ist hier häufig "v4.0" oder "v2.0" gesetzt, was bedeutet, dass .NET Framework-Code ausgeführt wird. Möchte man keinen verwalteten Code zulassen, setzt man den Wert einfach auf eine leere Zeichenkette (""). Dadurch weiß IIS, dass der Application Pool nur nativen Code ausführen soll.

Beispielcode in PowerShell

Der folgende Code zeigt exemplarisch, wie man einen Application Pool mit dem Namen "MeinNoManagedAppPool" erstellt und den Runtime-Typ auf kein verwalteten Code setzt:

Import-Module WebAdministration# Neuen Application Pool erstellenNew-Item IIS:\AppPools\MeinNoManagedAppPool# ManagedRuntimeVersion auf leer setzen, um keinen verwalteten Code zu aktivierenSet-ItemProperty IIS:\AppPools\MeinNoManagedAppPool -Name managedRuntimeVersion -Value ""

# Optional kann man noch den Pipeline-Modus auf Integrated oder Classic setzen (Standard: Integrated)

Set-ItemProperty IIS:\AppPools\MeinNoManagedAppPool -Name managedPipelineMode -Value "Integrated"

# Optional kann man noch den Pipeline-Modus auf Integrated oder Classic setzen (Standard: Integrated)

Set-ItemProperty IIS:\AppPools\MeinNoManagedAppPool -Name managedPipelineMode -Value "Integrated"

Dieser Ansatz stellt sicher, dass der Application Pool ohne .NET-Laufzeitumgebung ausgeführt wird, also keine verwalteten Assemblys geladen oder verarbeitet werden.

Zusammenfassung

Das Erstellen eines Application Pools in IIS ohne verwalteten Code ist mit PowerShell einfach möglich. Entscheidend ist, den Parameter "managedRuntimeVersion" auf eine leere Zeichenkette zu setzen. Damit wird der Application Pool für native Anwendungen konfiguriert. Diese Flexibilität erleichtert die Verwaltung in Umgebungen, in denen beispielsweise PHP oder klassische CGI-Anwendungen ohne .NET Unterstützung betrieben werden sollen.

0

Kommentare