2012-06-14 12 views
14

私はpowershellを新しく使いました。以前のバージョンのWebサイトの削除を自動化し、TFS 2010ビルドテンプレート(Windows Workflow 4.0)の一部として新しいバージョンを追加しようとしています。 PowerShellを使用してIIS7にWebサイトやWebアプリケーションプールが存在するかどうかを確認できますか?Powershellを使用してIIS7にWebサイトがインストールされているかどうかを確認する方法は?

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

出力リストボックスだけでなく、デフォルトのWebサイトにインストールされているウェブサイトのすべてを:私は、次のコマンドを実行しようとしました。

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"パラメータを指定せずにコマンドを実行しようとすると、結果はまったく同じになります。

答えて

14

私はちょうど同じ動作に気づいた。その期待どおりに動作していないようです。ただし、独自のロールすることができます

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

それだけでパイプレットとちょうどその単一のオブジェクトを返すオブジェクトが取得-ウェブサイトによって返されたリスト。

PowerShellを初めてご使用の場合は、Master PowerShellを十分にお勧めできません。

+0

良い答え、+、マスターのPowershellへのリンクのための1。それは素晴らしい見えます。ありがとう! – shellter

+0

他の答えは私にとってはうまくいかなかったが、これはした。私は 'if($(Get-Website | Where-Object {$ _。Name -eq 'sitename'})-eq $ nullを実行しました。 –

38

あなたは、ウェブサイトをチェック&アプリケーションプールの両方のテストパスを使用することができます。

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

いいね!ありがとう! –

+0

本当に私は2つの答えに印を付けることができれば幸いです。なぜなら、これは私が探していた答えのもう一つの部分を私に与えてくれたからです。 –

+0

IIS:\ Sitesパスはどこですか? –

関連する問題