PowerShell + WebAdministration-как получить веб-сайт из webapplication?

Я пишу сценарий PowerShell для выполнения определенных административных функций в IIS 7.5.

import-module WebAdministration

В некоторых случаях я знаю имя веб-приложения, я хочу работать, но не на веб-сайте по. Получение приложения легко:

$app = get-webapplication -name 'MyApp'

но я не могу понять, как получить имя веб-сайта с учетом приложения. Это не похоже на свойство объекта webapplication. Лучшее, что я мог придумать, пытаясь получить его через тест-путь:

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

почему-то приходит пустой. Есть мысли, как это сделать? Спасибо заранее.

3 ответов


вот как вы можете получить имя сайта:

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

или еще короче:

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

Я не копался в почему, но если вы используете звездочку или знак вопроса в любом месте строки, он работает как подстановочный знак и возвращается как таковой.

Е. И.

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:

попробуй такое

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

Это даст вам все имена веб-приложения, иногда вы можете иметь более 1 имени для одного веб-приложения.

для получения дополнительной информации см. ссылку

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

надеюсь, что это помогает..