2012-06-14 7 views
14

Soy bastante nuevo en powershell, y estoy tratando de automatizar la eliminación de una versión anterior de un sitio web y la adición de la versión más reciente como parte de una plantilla de compilación de TFS 2010 (Windows Workflow 4.0). ¿Es posible ver si existe un sitio web o un grupo de aplicaciones web en IIS7 con powershell? He tratado de ejecutar el siguiente comando:¿Cómo determinar si un sitio web está instalado en IIS7 con Powershell?

import-module WebAdministration 
Get-Website -Name "Default Web Site" 

Las listas de salida de todos los sitios web instaladas en la caja, no sólo el sitio web por defecto.

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 
MyWebsite1  2 Started C:\inetpub\MyWebsite1   http *:80:mywebsite1.com 
MyWebsite2  3 Started C:\inetpub\MyWebsite2   http *:80:mywebsite2.com 

Si intento ejecutar el comando sin el parámetro "-Name", el resultado es exactamente el mismo.

Respuesta

14

Acabo de notar el mismo comportamiento. Parece que no está funcionando como se esperaba. Sin embargo, puede rodar su propia:

get-website | where-object { $_.name -eq 'MyWebsite1' } 

que acaba de tuberías de la lista devuelta por página web conseguir- a la , donde a objetos cmdlet y simplemente volver que solo objeto.

Si eres nuevo en PowerShell, no puedo recomendar Master PowerShell suficiente.

+0

buena respuesta, +, 1 para el enlace de Maestro Powershell. Eso se ve increible. ¡Gracias! – shellter

+0

La otra respuesta no funcionó para mí, pero esto fue así. Acabo de ejecutar 'if ($ (Get-Website | Where-Object {$ _. Name -eq 'sitename'}) -eq $ null)' y funcionó. –

38

Puede utilizar Test-Path para ambos Verificar los sitios web piscinas & de aplicación:

Import-module webadministration 
$alias = "MyWebSite1" 
$IISPath = "IIS:\Sites\Default Web Site\$alias" 

if (Test-Path $IISPath) { Write-Host "$alias exists." } 

$IISPath = "IIS:\AppPools" 
cd $IISPath 
if (Test-Path ".\MyAppPool") { Write-Host "MyAppPool exists." } 
+0

Buen consejo! ¡Gracias! –

+0

Realmente me gustaría poder marcar dos respuestas porque esto fue útil también porque me dio otra parte de la respuesta que estaba buscando. –

+0

¿Dónde está esta ruta IIS: \ Sites? –

Cuestiones relacionadas