开发者

PowerShell + WebAdministration - How to get website from webapplication?

I'm writing a PowerShell script to perform certain administrative functions in IIS 7.5.

import-module WebAdministration

In some cases I know the name of the web application I want to wo开发者_如何学运维rk with but not the web site it is under. Getting the application is easy:

$app = get-webapplication -name 'MyApp'

But I cannot figure out how to get the name of the web site given the app. It doesn't seem to be a property off the webapplication object. Best I could come up with was trying to get it via test-path:

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

For some reason that comes up empty. Any thoughts on how to go about this? Thanks in advance.


This is how you can get the site name:

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

Or even shorter:

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


I haven't dug into why, but if you use an asterisk or question mark anywhere in the string it works like a wildcard and returns as such.

I.E.

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

or

get-website -name '?myapp'

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


Try this

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

This will give you all the names of the Web Applications, sometimes you can have more than 1 name for a single Web Applications.

For more information see the link

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

Hope it helps..

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜