我是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”参数的命令,结果完全相同。
答案 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。