如何确定是否在带有Powershell的IIS7中安装了网站?

时间:2012-06-14 21:04:50

标签: powershell iis-7 tfs2010 team-build

我是PowerShell的新手,我正在尝试自动删除先前版本的网站,并添加新版本作为TFS 2010构建模板(Windows Workflow 4.0)的一部分。是否可以通过PowerShell查看IIS7中是否存在网站或Web应用程序池?我试过运行以下命令:

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 个答案:

答案 0 :(得分:45)

您可以使用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." }

答案 1 :(得分:16)

我刚注意到了同样的行为。似乎它没有按预期工作。但是,您可以自己动手:

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

这只是将 get-website 返回的列表绑定到 where-object cmdlet,然后返回该单个对象。

如果您是PowerShell的新手,我不能完全推荐Master PowerShell