我正在编写PowerShell脚本以在IIS 7.5中执行某些管理功能。
import-module WebAdministration
在某些情况下,我知道我想要使用的Web应用程序的名称,但不知道它所在的网站。获取应用程序很简单:
$app = get-webapplication -name 'MyApp'
但我无法弄清楚如何在给定应用程序的情况下获取网站的名称。它似乎不是webapplication对象的属性。我想出的最好的尝试是通过测试路径获得它:
get-website | where {test-path "iis:\sites\$_.name\MyApp"}
出于某种原因,空出来了。有关如何去做的任何想法?提前谢谢。
答案 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/
希望有所帮助......