2016-11-21 10 views
0

Первый извините за мой английский, но мне нужна ваша помощь с помощью скриптов powershell. Я должен настроить сервер IIS с помощью скрипта powershell, и у меня возникла проблема с «добавлением приложения». Мне нужно проверить, существует ли веб-приложение на сайте. Я хочу, чтобы выбрать все WebApplication в сайте «testsite2»Список веб-приложений в IIS с powershell

$webapplication=Get-WebApplication | Where-Object {$_. applicationpool -eq "testsite2"} | select -expand Name; 

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

выберите: Свойство «Имя» не может быть found.At линия: 1 символ: 75 Get-WebApplication | Где-Объект {$ _. applicationpool -eq "testsite2"} | выберите ... CategoryInfo: InvalidArgument: (Microsoft.IIs.P ... gurationElement: PSObject) [Select-Object], PSArgumentException FullyQualifiedErrorId: ExpandPropertyNotFound, Microsoft.PowerShell.Commands.SelectObjectCommand

Я не понимаю , Что мне делать, когда я хочу выбрать значение из столбца «Имя»?

я получаю тот же результат

Get-ChildItem –Path IIS:\AppPools\ | Where-Object {$_. Name -eq "testsite2"} | select -ExpandProperty applications 

результат:

выбрать: свойство "приложения" не может быть найден. В строке: 1 char: 80 Get-ChildItem -Path IIS: \ AppPools \ | Где-Объект {$ _. Имя -eq "testsite2"} | s ... CategoryInfo: InvalidArgument: (Microsoft.IIs.P ... gurationElement: PSObject) [Select-Object], PSArgumentException FullyQualifiedErrorId: ExpandPropertyNotFound, Microsoft.PowerShell.Commands.SelectObjectCommand

ответ

2

WebAdministration модуль может быть немного обманутым тем, что использует пользовательские данные форматирования, чтобы показать такие вещи, как Name, с Format-Table (хотя базовые объекты не имеют свойства Name).

Чтобы получить эквивалентную Name значения, возьмите Path имущества и отделка /:

$WebAppNames = Get-WebApplication |Select @{Name='Name';Expression={$_.Path.Trim('/')}} |Select -Expand Name 

выше, является то, что подсистема форматирования в PowerShell делает для вычисления значения Name.


Вы можете исследовать фактические свойства объекта имеет с Get-Member командлет:

Get-WebApplication |Get-Member 

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

Get-TypeData -TypeName 'Microsoft.IIS.PowerShell.Framework.ConfigurationElement#site#application' 
Get-FormatData -TypeName 'Microsoft.IIS.PowerShell.Framework.ConfigurationElement#site#application' 
+0

Я предлагаю вам изменить ответ включить Get-Member, чтобы показать, как найти эти фактические свойства;) – 4c74356b41

+1

@ 4c74356b41 хорошей идею, обновленный ответ –