PowerShell + WebAdministration - 如何从Web应用程序获取网站?

时间:2011-09-21 17:29:27

标签: iis powershell iis-7.5

我正在编写PowerShell脚本以在IIS 7.5中执行某些管理功能。

import-module WebAdministration

在某些情况下,我知道我想要使用的Web应用程序的名称,但不知道它所在的网站。获取应用程序很简单:

$app = get-webapplication -name 'MyApp'

但我无法弄清楚如何在给定应用程序的情况下获取网站的名称。它似乎不是webapplication对象的属性。我想出的最好的尝试是通过测试路径获得它:

get-website | where {test-path "iis:\sites\$_.name\MyApp"}

出于某种原因,空出来了。有关如何去做的任何想法?提前谢谢。

3 个答案:

答案 0 :(得分:17)

您可以通过以下方式获取网站名称:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement().Attributes['name'].Value

甚至更短:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement()['name']

答案 1 :(得分:4)

我没有挖掘原因,但是如果你在字符串中的任何地方使用星号或问号,它就像通配符一样工作并返回原样。

get-website -name '*myapp'

   Name      ID   State    Physical Path        Bindings
   ----      --   -----    -------------        --------

   myapp     12   Started  C:\inetpub\wwwroot   http:*:80:
  amyapp     13   Stopped  C:\anetpub\          http:*:81:
 aamyapp     14   Stopped  C:\another\place     http:172.198.1.2:80:host.header.com

get-website -name '?myapp'

Name   ID State   Physical Path Bindings
----   -- -----   ------------- --------
amyapp 13 Stopped C:\anetpub    http:*:81:

答案 2 :(得分:4)

试试这个

$app = get-webapplication -name 'MyApp'
foreach($a in $app)
{
$a.Attributes[0].Value;
}

这将为您提供Web应用程序的所有名称,有时您可以为单个Web应用程序提供多个名称。

有关详细信息,请参阅链接

http://nisanthkv.blog.com/2012/07/06/name-of-web-applications-using-powershell/

希望有所帮助......