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/
надеюсь, что это помогает..