【发布时间】:2021-08-17 14:36:26
【问题描述】:
我已经编写了 powershell 脚本来生成 IIS 信息到 CSV。
$bindingip = Get-WmiObject -Namespace root\webadministration -Class sslbinding2 | Select-Object -
Property PSComputerName,IPAddress
$sitedetails = Get-Website | Select-Object -Property Name,ID,State
$report = New-Object psobject
$report | Add-Member -MemberType NoteProperty -Name "Hostname" -Value $bindingip.PSComputerName
$report | Add-Member -MemberType NoteProperty -Name "IPAddress" -Value $bindingip.IPAddress
$report | Add-Member -MemberType NoteProperty -Name "Site Name" -Value $sitedetails.name
$report | Add-Member -MemberType NoteProperty -Name "ID" -Value $sitedetails.id
$report | Add-Member -MemberType NoteProperty -Name "State" -Value $sitedetails.state
$report | Export-Csv C:\content.csv -NoTypeInformation
CSV 的输出:
Hostname IPAddress Site Name ID State
System.Object[] System.Object[] System.Object[] System.Object[] System.Object[]
我是否需要在代码中添加任何内容才能获得准确的输出,有人可以帮忙吗?
【问题讨论】:
-
嗯,这很奇怪。将其更改为
pscustomobject有什么不同吗?此外,您应该开始使用 v3 中引入的 Get-Ciminstance cmdlet。尝试添加Out-String。 -
@AbrahamZinala 我用 {pscustomobject} 测试过,结果是一样的。
-
在我看来,
$bindingZip和$sitedetails可能包含多个对象。您是否尝试在创建 PSObject 之前将信息打印到控制台?我想你可能打算在两次调用Select-Object时都使用-ExpandProperty而不仅仅是-Property。 -
@Ash 我的错,是的,我已经相应地更新了脚本。我需要针对多台服务器执行此脚本,因此我在脚本中添加了 Invoke-Command 和几行代码。
标签: powershell powershell-3.0 powershell-4.0 powershell-remoting