¿Cómo determinar si un sitio web está instalado en IIS7 con Powershell?
iis-7 tfs2010 (2)
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 una versión más reciente como parte de una plantilla de compilación TFS 2010 (Windows Workflow 4.0). ¿Es posible ver si existe un sitio web o grupo de aplicaciones web en IIS7 con powershell? He intentado ejecutar el siguiente comando:
import-module WebAdministration
Get-Website -Name "Default Web Site"
La salida enumera todos los sitios web instalados en la caja, no solo el sitio web predeterminado.
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 trato de ejecutar el comando sin el parámetro "-Nombre", el resultado es exactamente el mismo.
Acabo de notar el mismo comportamiento. Parece que no está funcionando como se esperaba. Sin embargo, usted puede rodar su propio:
get-website | where-object { $_.name -eq ''MyWebsite1'' }
Eso simplemente canaliza la lista devuelta por get-website al cmdlet where-object y simplemente devuelve ese único objeto.
Si es nuevo en PowerShell, no puedo recomendar Master PowerShell lo suficiente.
Puede usar Test-Path para verificar sitios web y grupos de aplicaciones:
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." }