Freigeben über


IISAdministration PowerShell Cmdlets

von Baris Caglar

Compatibility

Version Hinweise
IIS 10.0 IISAdministration PowerShell-Cmdlets wurden in IIS 10.0 eingeführt. Die neueste Version von IISAdministration wird über die PowerShell Gallery unterstützt.
IIS 8.5 und früher IISAdministration PowerShell-Cmdlets wurden vor IIS 10.0 nicht unterstützt. Benutzer können diese jedoch über die PowerShell-Galerie installieren.

Besuchen Sie iis.net , um zu erfahren, wie Sie die neueste Version von IISAdministration erhalten.

IISAdministration (Übersicht)

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

  • IISAdministration wird besser in Skripten skalieren, die mit WebAdministration eine lange Zeit laufen.
  • Sie können jetzt einen direkten Verweis auf eine Objektinstanz Microsoft.Web.Administration.ServerManager abrufen und alles tun, was Sie zusammen mit Ihren Skripts im 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 veröffentlicht wurde, war eine grobe Version mit Verbesserungsbedarf; Die zielorientierte Version war Windows Server 2016 für das fertige und polierte Produkt. Der Grund für die frühere Version bestand darin, Feedback von echten PowerShell-Benutzern und IIS-Administratoren in der Branche zu erhalten, um Fragen zu beantworten und Vorschläge zu erhalten, nicht nur über die vorhandene Funktionalität, sondern auch potenziell für neue Funktionen, die unsere Benutzer von der IIS-Verwaltung wünschen würden, da sie sich auf PowerShell bezieht.

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 ist am Anfang der meisten Pipelines und im obigen Beispiel wird zuerst der Abschnitt "system.webServer/defaultDocument" (Groß-/Kleinschreibung beachtet!), dann die Dateiauflistung abgerufen und schließlich 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"

Dies ist ein weiteres Hybridbeispiel, in dem der Abschnitt zuerst in eine Variable eingefügt wird und dann in der Pipeline verwendet wird.

Einfache Befehle

Die Anzahl einfacher Befehle wird erheblich auf einige reduziert. Die Beispiele umfassen Get-IISSite und Get-IISAppPool. Andere einfache Vorgänge, für die die Befehle nicht vorhanden sind, können über Pipelinevorgä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 können, ist der Himmel die Grenze, sobald Sie Zugriff auf den Server-Manager haben.

Start-IISCommitDelay / Stop-IISCommitDelay

Indem Sie Ihre Vorgänge zwischen diesen Befehlen einschließen, können Sie sicherstellen, dass Ihre Änderungen gleichzeitig übernommen werden.

Dies sind nur eine Handvoll Beispiele dafür, was Sie mit dem neuen Anbieter tun können. Besuchen Sie das Online-Dokument für die vollständige Dokumentation und weitere Beispiele.