2016-06-18 7 views
2

Das Ziel besteht darin, die Aktivierung von IIS auf einer neuen Windows-Arbeitsstation wie Windows 10 für eine .NET-Entwicklungsumgebung zu automatisieren. Ich weiß, dass Powershell-Skripte geschrieben werden können, um so etwas zu tun, aber ich weiß nicht, wo ich anfangen soll.Automatisierung der Installation von IIS

Ich weiß, ich könnte leicht in die Systemsteuerung gehen und den Dienst dort aktivieren, aber es scheint effizienter zu sein, nur ein Skript dazu zu tun.

Wie würde ein Beispielskript aussehen, das in Powershell ausgeführt wird, um IIS zu aktivieren?

+0

Warum nicht Google? Das ist der Anfang, nicht hier. –

+0

Ich verwende Google seit Tagen/Wochen. Powershell-Skripte sind für diese Art von Aufgabe nicht üblich und das verwirrt mich. Die meisten Artikel verweisen auf Powershell selbst statt auf ein Skript. – micah

+1

Was ist der Unterschied zwischen einem "Powershell-Skript" und "Powershell selbst"? – jscott

Antwort

7

Server OS

Unter Windows Server Sie den folgenden Befehl Installation von IIS ausführen konnte automatisieren:

#-LogPath can be added if you want a log to be created of the installation 
#-Restart can be added if you want to auto restart after installation 
Install-WindowsFeature -ComputerName SomePCHere -Name Web-Server 

Hier sind die Namen der IIS-Funktionen von Powershell-Sicht:

Display Name           Name     
------------           ----      
    [ ] Web Application Proxy       Web-Application-Proxy   
[ ] Web Server (IIS)         Web-Server      
    [ ] Web Server          Web-WebServer     
     [ ] Common HTTP Features      Web-Common-Http     
      [ ] Default Document      Web-Default-Doc     
      [ ] Directory Browsing      Web-Dir-Browsing    
      [ ] HTTP Errors        Web-Http-Errors     
      [ ] Static Content       Web-Static-Content    
      [ ] HTTP Redirection      Web-Http-Redirect    
      [ ] WebDAV Publishing      Web-DAV-Publishing    
     [ ] Health and Diagnostics      Web-Health      
      [ ] HTTP Logging       Web-Http-Logging    
      [ ] Custom Logging       Web-Custom-Logging    
      [ ] Logging Tools       Web-Log-Libraries    
      [ ] ODBC Logging       Web-ODBC-Logging    
      [ ] Request Monitor       Web-Request-Monitor    
      [ ] Tracing         Web-Http-Tracing    
     [ ] Performance         Web-Performance     
      [ ] Static Content Compression    Web-Stat-Compression   
      [ ] Dynamic Content Compression    Web-Dyn-Compression    
     [ ] Security         Web-Security     
      [ ] Request Filtering      Web-Filtering     
      [ ] Basic Authentication     Web-Basic-Auth     
      [ ] Centralized SSL Certificate Support  Web-CertProvider    
      [ ] Client Certificate Mapping Authentic... Web-Client-Auth     
      [ ] Digest Authentication     Web-Digest-Auth     
      [ ] IIS Client Certificate Mapping Authe... Web-Cert-Auth     
      [ ] IP and Domain Restrictions    Web-IP-Security     
      [ ] URL Authorization      Web-Url-Auth     
      [ ] Windows Authentication     Web-Windows-Auth    
     [ ] Application Development      Web-App-Dev      
      [ ] .NET Extensibility 3.5     Web-Net-Ext      
      [ ] .NET Extensibility 4.5     Web-Net-Ext45     
      [ ] Application Initialization    Web-AppInit      
      [ ] ASP          Web-ASP       
      [ ] ASP.NET 3.5        Web-Asp-Net      
      [ ] ASP.NET 4.5        Web-Asp-Net45     
      [ ] CGI          Web-CGI       
      [ ] ISAPI Extensions      Web-ISAPI-Ext     
      [ ] ISAPI Filters       Web-ISAPI-Filter    
      [ ] Server Side Includes     Web-Includes     
      [ ] WebSocket Protocol      Web-WebSockets     
    [ ] FTP Server          Web-Ftp-Server     
     [ ] FTP Service         Web-Ftp-Service     
     [ ] FTP Extensibility       Web-Ftp-Ext      
    [ ] Management Tools        Web-Mgmt-Tools     
     [ ] IIS Management Console      Web-Mgmt-Console    
     [ ] IIS 6 Management Compatibility    Web-Mgmt-Compat     
      [ ] IIS 6 Metabase Compatibility   Web-Metabase     
      [ ] IIS 6 Management Console    Web-Lgcy-Mgmt-Console   
      [ ] IIS 6 Scripting Tools     Web-Lgcy-Scripting    
      [ ] IIS 6 WMI Compatibility     Web-WMI       
     [ ] IIS Management Scripts and Tools   Web-Scripting-Tools    
     [ ] Management Service       Web-Mgmt-Service    
[ ] IIS Hostable Web Core        Web-WHC 

Trennen Sie die einzelnen Funktionen, die Sie installieren möchten, mit einem Komma im Parameter "Name". Beispiel:

Install-WindowsFeature -ComputerName SomePCHere -Name Web-Server, Web-Mgmt-Tools, Web-Security 

Clients OS

Auf Windows 8.1+ Sie die Get-WindowsOptionalFeature und Enable-WindowsOptionalFeature zu IIS installieren können.

Durch die folgenden Programme ausgeführt wird, um die Namen der IIS-Funktionen von Powershell-Sicht zu bekommen:

PS C:\> Get-WindowsOptionalFeature -online | Where {$_.FeatureName -like 'IIS*'} | Sort FeatureName | Format-Table 

FeatureName         State 
-----------         ----- 
IIS-ApplicationDevelopment     Disabled 
IIS-ApplicationInit      Disabled 
IIS-ASP         Disabled 
IIS-ASPNET         Disabled 
IIS-ASPNET45        Disabled 
IIS-BasicAuthentication     Disabled 
IIS-CertProvider       Disabled 
IIS-CGI         Disabled 
IIS-ClientCertificateMappingAuthentication Disabled 
IIS-CommonHttpFeatures      Disabled 
IIS-CustomLogging       Disabled 
IIS-DefaultDocument      Disabled 
IIS-DigestAuthentication     Disabled 
IIS-DirectoryBrowsing      Disabled 
IIS-FTPExtensibility      Disabled 
IIS-FTPServer        Disabled 
IIS-FTPSvc         Disabled 
IIS-HealthAndDiagnostics     Disabled 
IIS-HostableWebCore      Disabled 
IIS-HttpCompressionDynamic     Disabled 
IIS-HttpCompressionStatic     Disabled 
IIS-HttpErrors        Disabled 
IIS-HttpLogging       Disabled 
IIS-HttpRedirect       Disabled 
IIS-HttpTracing       Disabled 
IIS-IIS6ManagementCompatibility   Disabled 
IIS-IISCertificateMappingAuthentication Disabled 
IIS-IPSecurity        Disabled 
IIS-ISAPIExtensions      Disabled 
IIS-ISAPIFilter       Disabled 
IIS-LegacyScripts       Disabled 
IIS-LegacySnapIn       Disabled 
IIS-LoggingLibraries      Disabled 
IIS-ManagementConsole      Disabled 
IIS-ManagementScriptingTools    Disabled 
IIS-ManagementService      Disabled 
IIS-Metabase        Disabled 
IIS-NetFxExtensibility      Disabled 
IIS-NetFxExtensibility45     Disabled 
IIS-ODBCLogging       Disabled 
IIS-Performance       Disabled 
IIS-RequestFiltering      Disabled 
IIS-RequestMonitor       Disabled 
IIS-Security        Disabled 
IIS-ServerSideIncludes      Disabled 
IIS-StaticContent       Disabled 
IIS-URLAuthorization      Disabled 
IIS-WebDAV         Disabled 
IIS-WebServer        Disabled 
IIS-WebServerManagementTools    Disabled 
IIS-WebServerRole       Disabled 
IIS-WebSockets        Disabled 
IIS-WindowsAuthentication     Disabled 
IIS-WMICompatibility      Disabled 

ähnlich dem Windows-Server, können Sie ähnlich die Merkmale, die oben mit dem folgenden oder etwas installieren können (Sie installieren können mehrere Funktionen mit einem Komma die Werte auf dem Feature Parameter zu trennen:

#you can add -NoRestart to prevent automatic restarting (if required) 
Enable-WindowsOptionalFeature -Online -FeatureName IIS-Webserver 

this helps

+0

Das ist sehr hilfreich! Vielen Dank! – micah

+0

Ich nehme an, dass diese Codezeile auch unter Windows 7/8/10 läuft, oder? Nachdem ich die '.ps1'-Datei ausgeführt habe, die ich mit 'Install-WindowsFeature -ComputerName SomePCHere -Name Web-Server, Web-Mgmt-Tools, Web-Sicherheit' erstellt habe, gehe ich in das Fenster Windows-Funktionen in der Systemsteuerung > Programme und Funktionen, und IIS wird nicht als installiert/aktiviert angezeigt. Gibt es noch etwas, was ich tun sollte, damit dies auf normalen Windows funktioniert? – micah

+0

Meine erste Antwort war nur für Windows-Server. Ich habe gerade einen Abschnitt für Client-OS bearbeitet und hinzugefügt. Der Client-Betriebssystem-Teil funktioniert nur unter Windows 8.1 und höher. –

3

Eine vollständige Liste der IIS-bezogenen Funktionen und weitere Informationen zu den Parametern des Cmdlets Install-WindowsFeature finden Sie unter Tyler Helder's helpful answer. der Fokus von dieser Antwort ist konzeptioneller.

Es gibt eine gute Chance, dass die ServerManager Powershell-Modul mit Ihrem Windows Server vorinstalliert OS (W2K8R2 +; beachten Sie, dass Client OSs require a different method):

Wenn ja, können Sie installieren IIS als folgt:

  • eröffnen erhöhten Powershell-Konsole (Als Administrator ausführen)
  • Run Add-WindowsFeature Web-Server

Add-WindowsFeature, anwesend seit W2K8R2 wurde zu Install-WindowsFeature in W2K12R2 umbenannt, aber Add-WindowsFeature wurde als alias beibehalten, so funktioniert es in beiden Versionen .

Um Liste alle Server-Funktionen und deren Installationsstatus, führen Get-WindowsFeature.

beachten, dass es die Werte aus der Spalte Name ist, die als Argumente für die Add-WindowsFeature/Install-WindowsFeature cmdlets, während die DisplayName column häufig enthält das Schlüsselwort von Interesse zur Verfügung gestellt werden müssen.

Typischer Fall: Um alle Funktionen, dessen Anzeigenamen enthält "IIS" zu entdecken - und entdeckt dabei, dass der Name der IIS-Funktion ist Web-Server - run (PSV3 +):

Get-WindowsFeature | ? DisplayName -like *IIS*