2010-11-13 7 views
16

Deseo recuperar información sobre el sitio web de IIS 7 específico utilizando el cmdlet Get-Website de PowerShell. Desafortunadamente, Get-Website devuelve información para todos los sitios web, independientemente del parámetro -Name que paso. Parece que se ignora el parámetro -Name.El parámetro del nombre de Get-WebSite de Powershell se ignora

Por ejemplo, si uso:

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

que recibirán la información para todos los sitios web en mi máquina:

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 

De acuerdo con la documentación Get-sitio web debe devolver información de la página web especificada en el parámetro -Name. Debo estar malinterpretando la documentación o haciendo un uso incorrecto del cmdlet, o ambos.

¿Cómo debo usar Get-Website para devolver información para un sitio web específico?

Respuesta

23

De acuerdo con this forum post, este es un error en el cmdlet Get-Website. La solución alternativa hasta que se solucione esto es usar Get-Item.

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

Asegúrese de utilizar comillas dobles, las variables no se expanden cuando se utilizan comillas simples.

+0

Nota al margen: [Conectar tema sobre ese error] (http://connect.microsoft.com/PowerShell/feedback/details/597787/get-website-always-returns-full-list-of-web-sites) – Joey

+0

Solo por claridad y novatos (como yo): no hay necesidad de declarar una variable. – LosManos

13

Me doy cuenta de que es una publicación anterior pero me encontré con este problema recientemente y encontré su pregunta. He tenido suerte con la siguiente sintaxis también:

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

El problema con esta solución alternativa es que _todos_ sitios web se enumeran y luego se filtran. No es mucho cuando tienes un puñado de sitios web, pero algunos de nosotros legítimamente tenemos _lots_ de sitios web en un único servidor IIS. – Mels

+0

Cierto, devuelve todos los sitios y luego filtra. Preferiría filtrar a la izquierda y formatear correctamente, pero esa no era una opción, que es la razón por la que tuve que hacer esta solución. También tenía 200-300 sitios por servidor y no fue un gran retraso ejecutar este comando. – Marcus

8

El uso de comodines también tendrá este problema como se menciona en el trabajo alrededor del tema de conexión al que hace referencia @Joey

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