web-dev-qa-db-ja.com

WebサイトがPowershellを使用してIIS7にインストールされているかどうかを確認するにはどうすればよいですか?

私はPowerShellを初めて使用し、以前のバージョンのWebサイトの削除と、TFS 2010ビルドテンプレート(Windowsワークフロー4.0)の一部としての新しいバージョンの追加を自動化しようとしています。 PowerShellを使用してIIS7にWebサイトまたはWebアプリプールが存在するかどうかを確認することはできますか?次のコマンドを実行してみました。

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

出力には、デフォルトのWebサイトだけでなく、ボックスにインストールされているすべての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」パラメーターを指定せずにコマンドを実行しようとすると、結果はまったく同じになります。

18
Jarrett Coggin

同じ動作に気づきました。期待どおりに機能していないようです。ただし、自分でロールすることはできます。

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

これは、get-websiteによって返されたリストをwhere-objectにパイプするだけです。 )コマンドレットを作成し、その単一のオブジェクトを返します。

PowerShellを初めて使用する場合は、お勧めできません マスターPowerShell 十分です。

16
Zach Bonham

Test-Pathは、Webサイトとアプリケーションプールの両方のチェックに使用できます。

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." }
45
David Brabant