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.ServerManager
Objekts abrufen und alles tun, was Sie zusammen mit Ihren Skripts inMicrosoft.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.