Как определить, установлен ли веб-сайт в IIS7 с Powershell?
Я довольно новичок в powershell и пытаюсь автоматизировать удаление предыдущей версии веб-сайта и добавление более новой версии в составе шаблона сборки TFS 2010 (Windows Workflow 4.0). Можно ли увидеть, существует ли веб-сайт или пул веб-приложений в IIS7 с powershell? Я попытался запустить следующую команду:
import-module WebAdministration
Get-Website -Name "Default Web Site"
Вывод перечисляет все веб-сайты, установленные на коробке, а не только веб-сайт по умолчанию.
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
Если я попытаюсь выполнить команду без параметра "-Name", результат будет точно таким же.
2 ответа
Я просто заметил то же самое поведение. Похоже, это не работает, как ожидалось. Тем не менее, вы можете свернуть свои собственные:
get-website | where-object { $_.name -eq 'MyWebsite1' }
Это просто направляет список, возвращаемый get-website, в командлет where-object и просто возвращает этот единственный объект.
Если вы новичок в PowerShell, я не могу рекомендовать Master PowerShell достаточно.
Вы можете использовать Test-Path для проверки веб-сайтов и пулов приложений:
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." }