2010-11-13 9 views
16

Ich möchte Informationen zu bestimmten IIS 7-Websites mit dem PowerShell Get-Website-Cmdlet abrufen. Leider liefert Get-Website Informationen für alle Websites unabhängig vom Parameter -Name, den ich übergebe. Es scheint, dass der Parameter -Name ignoriert wird.Powershell Get-WebSite-Name Parameter wird ignoriert

Zum Beispiel, wenn ich benutze:

Name    ID State  Physical Path     Bindings 
----    -- -----  -------------     -------- 
Default Web Site 1 Started %SystemDrive%\inetpub\wwwroot http *:80: 
                   net.tcp 808:* 
                   net.pipe * 
                   net.msmq localhost 
                   msmq.formatname localhost 
Test Website  2 Started C:\websites\test    http *:80:test.mydomain.com 

Nach der Dokumentation Get-Webseite sollte Informationen für die Website zurückkehren angegeben:

Import-Module WebAdministration 
Get-Website -Name "Test Website" 

ich Informationen für alle Websites auf meinem Rechner erhalten im Parameter -Name. Ich muss die Dokumentation missverstehen oder das Cmdlet oder beides missbrauchen.

Wie soll ich die Get-Website verwenden, um Informationen für eine bestimmte Website zurückzugeben?

Antwort

23

Laut this forum post ist dies ein Fehler im Get-Website-Cmdlet. Die Problemumgehung, bis dies behoben ist, besteht darin, Get-Item zu verwenden.

$website = "Test" 
Get-Item "IIS:\sites\$website" 

Achten Sie darauf, doppelte Anführungszeichen zu verwenden, Variablen werden nicht erweitert, wenn einfache Anführungszeichen verwendet werden.

+0

Randbemerkung: [Connect Thema auf diesem Fehler] (http://connect.microsoft.com/PowerShell/feedback/details/597787/get-website-always-returns-ful-list-of-web-sites) – Joey

+0

Nur für Klarheit und Neulinge (wie ich): Es gibt keine Notwendigkeit, eine Variable zu deklarieren. – LosManos

13

Ich weiß, es ist ein älterer Beitrag, aber ich stieß vor kurzem auf dieses Problem und fand Ihre Frage. Ich habe auch Glück mit folgenden Syntax hat:

get-website | where { $_.Name -eq 'foobar' } 
+0

Das Problem mit dieser Problemumgehung ist, dass alle Websites aufgelistet und dann gefiltert werden. Nicht viel, wenn Sie eine Handvoll Websites haben, aber einige von uns haben rechtmäßig _lots_ von Websites in einem einzigen IIS-Server. – Mels

+0

True, es gibt alle Seiten zurück und filtert dann. Ich würde lieber links und formatieren filtern, aber das war keine Option, weshalb ich diese Problemumgehung machen musste. Ich hatte auch 200-300 Seiten pro Server und es war keine große Verzögerung, diesen Befehl auszuführen. – Marcus

8

Wildcards auch, um dieses Problem zu bekommen, wie in der Arbeit um im connect Thema von @Joey verwiesen erwähnt

get-website -name "*Default Web Site*"