Как экспортировать все данные сайта IIS и пула приложений в лист Excel - PullRequest
0 голосов
/ 27 января 2020

Я написал скрипт PS, в котором он будет экспортировать все детали сайта IIS в лист Excel, но когда я пытаюсь использовать пул приложений IIS, он не выдает выходные данные для всех параметров и данных пула приложений. отображается после сведений о сайте, но мне нужно, чтобы данные пула приложений были параллельны данным сайта в той же строке, пожалуйста, помогите мне решить эту проблему.

Код

Clear-Host
$computers = Get-Content "C:\TEMP\servers.txt" 


    Invoke-Command -ComputerName $computers -ScriptBlock {
    & {
    Get-Website | Select-Object Name,Id,State,PhysicalPath,
@{n="Bindings"; e= { ($_.bindings | select -expa collection) -join ‘;’ }} ,
@{n="attributes"; e={($_.attributes | % { $_.name + "=" + $_.value }) -join ‘;’ }}
Get-IISAppPool | Select-Object Name,Status,CLRVer,PipeLOneMode,StartMode
}
} | Export-Excel -Path C:\users\$env:username\documents\IIS_sites.xlsx```


**Output**
*name           :Test
id             : 2
state          : Started
physicalPath   : C:\Chadrakanth
Bindings       : http 123.com
attributes     : name=2696Test;id=2;serverAutoStart=False;state=1
PSComputerName : AAA
RunspaceId     : 8ec7998e-03e0-47c7-b96a-ffae96260922

Name           : DefaultAppPool
Status         : 
CLRVer         : 
PipeLOneMode   : 
StartMode      : OnDemand
PSComputerName : AAA
RunspaceId     : 8ec7998e-03e0-47c7-b96a-ffae96260922*

1 Ответ

0 голосов
/ 28 января 2020

Как отмечается в комментариях Status, CLRVer или PipeLOneMode недоступны свойства и были заменены на State, ManagedRuntimeVersion, ManagedPipelineMode соответственно.

Кроме того, поскольку каждый веб-сайт является членом AppPool, веб-сайты должны быть зациклены, и для каждого найден соответствующий AppPool. Затем свойства можно объединить в один объект с помощью ускорителя типа [PSCustomObject].

$Computers = Get-Content "C:\TEMP\servers.txt" 

Invoke-Command -ComputerName $Computers -ScriptBlock {
    # Changed to newer IISAdministration Module to match Get-IISAppPool
    $Websites = Get-IISSite

    foreach ($Website in $Websites) {

        $AppPool = Get-IISAppPool -Name $Website.Applications[0].ApplicationPoolName

        [PSCustomObject]@{
            WebsiteName                  = $Website.Name
            WebsiteId                    = $Website.Id
            WebsiteState                 = $Website.State
            WebsitePhysicalPath          = $Website.PhysicalPath
            WebsiteBindings              = $Website.Bindings.Collection -join ';'
            WebsiteAttributes            = ($Website.Attributes | ForEach-Object { $_.name + "=" + $_.value }) -join ';'
            AppPoolName                  = $AppPool.Name
            AppPoolState                 = $AppPool.State
            AppPoolManagedRuntimeVersion = $AppPool.ManagedRuntimeVersion
            AppPoolManagedPipelineMode   = $AppPool.ManagedPipelineMode
            AppPoolStartMode             = $AppPool.StartMode
        }
    }
} | Export-Excel -Path C:\users\$env:username\documents\IIS_sites.xlsx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...