powershell - 如何使用 power shell 脚本获取 IIS 站点物理路径和绑定详细信息
问题描述
我编写了一个 PS 脚本,其中会将所有 IIS 站点详细信息和 App-pool 详细信息导出到 Excel 工作表,但是当我使用Get-IISSite命令时,物理路径和绑定详细信息未显示在输出控制台中,如下所示,代码如下,请帮我解决导出IIS站点和应用程序池详细信息时遇到的问题
代码
#Clearing the Console host in PS
Clear-Host
$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]@{
Website_Name = $Website.Name
Website_Id = $Website.Id -join ';'
Website_State = $Website.State -join ';'
Website_PhysicalPath = Get-ChildItem -Path IIS:\Sites\P #$Website.PhysicalPath -join ';'
Website_Bindings = $Website.Bindings.Collection -join ';'
Website_Attributes = ($Website.Attributes | ForEach-Object { $_.name + "=" + $_.value }) -join ';'
AppPool_Name = $AppPool.Name -join';'
AppPool_State = $AppPool.State -join ';'
AppPool_ManagedRuntimeVersion = $AppPool.ManagedRuntimeVersion -join ';'
AppPool_ManagedPipelineMode = $AppPool.ManagedPipelineMode -join ';'
AppPool_StartMode = $AppPool.StartMode -join ';'
}
}
} | Export-Excel -Path C:\users\$env:username\documents\Site_App-pool_Details.xlsx -AutoSize -BoldTopRow
输出
Website_Name : Test
Website_Id : 2
Website_State : Started
Website_PhysicalPath :
Website_Bindings :
Website_Attributes : name=Test;id=2;serverAutoStart=False;state=
1
AppPool_Name : Test
AppPool_State : Started
AppPool_ManagedRuntimeVersion : v4.0
AppPool_ManagedPipelineMode : Integrated
AppPool_StartMode : OnDemand
PSComputerName : AAA
RunspaceId : 47d..
When i use the command **Get-Website** i will get all the output details of the IIS site but not the IIS App-pool details the code is a below
Output
Website_Name : Test
Website_Id : 2
Website_State : Started
Website_PhysicalPath : C:\AAA
Website_Bindings : http 10.62.:Test.com
Website_Attributes : name=Test;id=2;serverAutoStart=False;state=
1
AppPool_Name :
AppPool_State :
AppPool_ManagedRuntimeVersion :
AppPool_ManagedPipelineMode :
AppPool_StartMode :
PSComputerName : AAA
RunspaceId : 15d..
请帮助我了解如何使用两者中的任何命令(Get-Website 或 Get-WebSite)来获取所有 IIS 站点和 App-pool 详细信息
提前致谢。
解决方案
你的代码中有一条奇怪的注释,它打破了它;但是,试试这个:
Get-Item IIS:\Sites\$Website | Select-Object -ExpandProperty physicalPath
代替
Get-ChildItem -Path IIS:\Sites\$Website.PhysicalPath
对于绑定:
$Website.Bindings.bindingInformation
代替
$Website.Bindings.Collection
推荐阅读
- reactjs - 使用 certbot 证书构建 docker 容器时遇到问题
- reactjs - 如何修复“错误:元素类型无效:应为字符串(用于内置组件)...”
- html - 如何从 html 标签中的维基百科术语条目中提取文本摘要?
- reactjs - 如何使用 react-card-flip 解决 npm 依赖关系?
- cmake - CMake INTERFACE_LINK_LIBRARIES 条目被修饰
- c# - Specflow - 对任何关键字使用相同的步骤 def
- conditional-statements - Fluid 模板中的 TYPO3 TypoScript 对象好像条件不起作用
- linux - 使用 echo 创建 bash 文件
- reactjs - Material-UI:X-Grid / DataGrid 默认 ColumnMenu 未显示
- ios - 如何在 iOS 中分配提醒(EKReminder)?