2013-08-09 8 views
7

Ich schreibe ein Powershell-Skript, das eine Website für IIS 7 bereitstellt. Ich möchte den folgenden Befehl ausführen, um einen benutzerdefinierten Header mithilfe des Webverwaltungsmoduls in Powershell und nicht mit appcmd zu entfernen. Wie mache ich diesen Befehl in Powershell nicht mit appcmd?Wie entferne ich benutzerdefinierte IIS-Header mit Powershell?

appcmd set config /section:httpProtocol /-customHeaders.[name='X-Powered-By'] 

Antwort

18

Um den Header auf iis Ebene zu entfernen:

Remove-WebConfigurationProperty -PSPath MACHINE/WEBROOT/APPHOST 
           -Filter system.webServer/httpProtocol/customHeaders 
           -Name . 
           -AtElement @{name='X-Powered-By'} 

Und für eine bestimmte Website:

Remove-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST/Default Web Site' 
           -Filter system.webServer/httpProtocol/customHeaders 
           -Name . 
           -AtElement @{name='X-Powered-By'} 
+0

können Sie auf Kommentar, wie ein Custom mit dem Add-WebconfigurationProperty hinzufügen? Ich bin schon eine ganze Weile dabei und bin endlich auf deine Antwort gestoßen. –

+2

@MikeDevenny Der folgende Befehl fügt das Schlüsselwertpaar X-NODE, 1 zu den Antwortheadern im Feld Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.WebServer/httpProtocol/customHeaders' hinzu - Name . -Wert @ {Name = 'X-NODE'; Wert = '1'} – Tedford

+0

@Tedford Danke! Würde der richtige Ansatz zum Hinzufügen eines Headers zu jeder Site in IIS darin bestehen, über die Websitesammlung zu iterieren und die Add-WebConfigurationProperty für jede Site auszuführen? –