Freigeben über


IISAdministration PowerShell-Cmdlets

von Baris Caglar

Kompatibilität

Version Hinweise
IIS 10.0 IISAdministration PowerShell-Cmdlets wurden in IIS 10.0 eingeführt. Die aktuelle Version von IISAdministration wird über den Powershell-Katalog unterstützt.
IIS 8.5 und niedriger IISAdministration PowerShell-Cmdlets wurden vor IIS 10.0 nicht unterstützt. Benutzer können sie jedoch über den PowerShell-Katalog installieren.

Weitere Informationen darüber, wie Sie die neueste Version von IISAdministration erhalten können, finden Sie unter iis.net.

Übersicht über IISAdministration

Mit Windows 10 und Windows Server 2016 veröffentlicht das IIS-Team ein neues und vereinfachtes IISAdministration Modul parallel zu den vorhandenen WebAdministration Cmdlets. Es gibt zahlreiche Gründe für die Entscheidung, ein völlig neues PowerShell-Cmdlet-Modul freizugeben. Hier sind einige davon:

  • IISAdministration wird in Skripts besser skaliert, deren Ausführung viel Zeit in Anspruch nimmtWebAdministration.
  • Sie können jetzt einen direkten Verweis auf eine Instanz eines Microsoft.Web.Administration.ServerManagerObjekts abrufen und alles tun, was Sie zusammen mit Ihren Skripts in Microsoft.Web.Administration Namespace tun können.
  • Die PowerShell-Pipelinekompatibilität war die treibende Kraft hinter dem Design vieler Cmdlets. Daher funktioniert IISAdministration wesentlich besser mit der powerShell-Pipeline.

Die Version der Cmdlets, die für Windows 10 freigegeben wurde, war eine grobe Version mit Verbesserungsbedarf. Die angestrebte Veröffentlichung war Windows Server 2016 für das fertige und optimierte Produkt. Der Grund für das frühere Release war, Feedback von echten PowerShell-Benutzern und IIS-Administratoren aus der Branche zu erhalten, Fragen zu beantworten und Vorschläge nicht nur zu den vorhandenen Funktionen, sondern auch zu potenziellen neuen Funktionen zu erhalten, die unsere Benutzer von der IIS-Administration in Bezug auf PowerShell wünschen.

Hier sind einige Beispiele für die Verwendung des neuen Anbieters:

Pipelining

PS:>Get-IISConfigSection -SectionPath "system.webServer/defaultDocument" | Get-IISConfigCollection -CollectionName "files" | New-IISConfigCollectionElement -ConfigAttribute @{"Value" = "MyDefDoc.htm"}

Get-IISConfigSection steht am Anfang der meisten Pipelines, und im obigen Beispiel wird zunächst der Abschnitt „system.webServer/defaultDocument“ abgerufen (Groß-/Kleinschreibung beachten!), dann die Dateisammlung, und zuletzt wird ein Sammlungselement mit dem angegebenen Attributwert abgerufen.

PS:>$ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites"

PS:>Get-IISConfigCollection $configSection | Get-IISConfigCollectionElement -ConfigAttribute @{"Name"="Default Web Site"} | Get-IISConfigAttributeValue -AttributeName "State"

Bei diesem Beispiel handelt es sich eher um eine Mischform, bei der der Abschnitt zunächst in einer Variablen gespeichert und dann in der Pipeline verwendet wird.

Einfache Befehle

Die Anzahl der einfachen Befehle ist auf einige wenige reduziert. Beispiele hierfür sind Get-IISSite und Get-IISAppPool. Andere einfache Vorgänge, für die die Befehle nicht vorhanden sind, können über Pipeline-Vorgänge ausgeführt werden.

PS:> Get-IISAppPool

Name            Status   CLR Ver  Pipeline Mode  Start Mode
----            ------   -------  -------------  ----------
DefaultAppPool  Started  v4.0     Integrated     OnDemand

Get-IISServerManager

PS:>$sm = Get-IISServerManager

PS:>$sm.ApplicationPools["DefaultAppPool"].Recycle()

Wie Sie sehen, sind Ihnen nach dem Zugriff auf den Servermanager keine Grenzen mehr gesetzt.

Start-IISCommitDelay / Stop-IISCommitDelay

Indem Sie Ihre Vorgänge zwischen diesen Befehlen einbetten, können Sie sicherstellen, dass Ihre Änderungen zur gleichen Zeit übertragen werden.

Dies sind nur einige Beispiele dafür, was mit dem neuen Anbieter möglich ist. Die vollständige Dokumentation sowie weitere Beispiele finden Sie im Online-Dokument.