HiTech / Я удалил свой предыдущий ответ, посмотрев на это снова.
Как вы обнаружили. Вы не можете напрямую получить доступ к элементу с помощью IISAdmin, как с WebAdmin.
Вы должны перемещаться до тех пор, пока то, что вам нужно, не будет представлено как атрибут или значение. На самом деле это подробно описано в справке по командлетам Get-IISConfigElement в примере 1.
Модифицировано, чтобы показать выходные данные для каждого раздела и получить формат файла журнала.
# Gets the Log File format set in the applicationHost.config file
Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.applicationHost/sites/siteDefaults/logFile" -Name "logFormat"
# W3C
# Attempt at using IISADministration to get the same information
($ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites")
<#
...
ChildElements : {siteDefaults, applicationDefaults, virtualDirectoryDefaults}
ElementTagName : system.applicationHost/sites
...
#>
($SitesCollection = Get-IISConfigCollection -ConfigElement $ConfigSection)
<#
Attributes : {name, id, serverAutoStart, state}
ChildElements : {bindings, limits, logFile, traceFailedRequestsLogging...}
...
RawAttributes : {[name, Default Web Site], [id, 1], [serverAutoStart, True], [state, 1]}
...
#>
($Site = Get-IISConfigCollectionElement -ConfigCollection $SitesCollection -ConfigAttribute @{"name" = "Default Web Site"})
<#
Attributes : {name, id, serverAutoStart, state}
ChildElements : {bindings, limits, logFile, traceFailedRequestsLogging...}
...}
RawAttributes : {[name, Default Web Site], [id, 1], [serverAutoStart, True], [state, 1]}
...
#>
($Elem = Get-IISConfigElement -ConfigElement $Site -ChildElementName "logfile")
<#
Attributes : {logExtFileFlags, customLogPluginClsid, logFormat, logTargetW3C...}
ChildElements : {customFields}
ElementTagName : logFile
...
RawAttributes : {[logExtFileFlags, 2478031], [customLogPluginClsid, ], [logFormat, 2], [logTargetW3C, 1]...}
...
#>
($LogDetails = Get-IISConfigAttributeValue -ConfigElement $Elem -AttributeName "logformat")
# W3C
Таким образом, вы в конечном итоге с этим, нет, были столь же краткими, как конструкция WebAdmin ...
Get-IISConfigSection -SectionPath "system.applicationHost/sites" |
%{Get-IISConfigCollection -ConfigElement $PSItem} |
%{Get-IISConfigCollectionElement -ConfigCollection $PSItem -ConfigAttribute @{"name" = "Default Web Site"}} |
%{Get-IISConfigElement -ConfigElement $PSItem -ChildElementName "logfile"} |
%{Get-IISConfigAttributeValue -ConfigElement $PSItem -AttributeName "logformat"}
# Results
W3C
И да, вышеупомянутое не даст целевых результатов без цикла.
Ваше первое обновление, хотя вы не были довольны им, на данный момент является наиболее кратким. Но даже с тем, что мы оба попробовали. Эти конфиги - просто файлы XML, поэтому просто используйте командлеты XML или пространство имен .Net XML, чтобы добраться до вещей.