在 Excel 内的两列上显示数据
Display Data on Two Columns Within Excel
我正在尝试在 Excel 文档中显示数据,其中 A 列显示服务器名称,B 列显示 .NET 版本。我 运行 遇到导出到 .csv 的问题,因为它说文件路径不存在。我想要一些关于如何解决该问题以及如何在 Excel.
中的两列上显示数据的指导
$Servers =
(
"test"
)
foreach ($Server in $Servers)
{
Invoke-Command -ComputerName $Server -ScriptBlock {
Write-Output "$(hostname)"
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release | Select -ExpandProperty Version | Sort-Object Version | Export-Csv -Path C:\Users\User\Desktop\example.csv
}
主要问题是您在远程主机上使用了 Export-Csv
,因为它位于 Invoke-Command
脚本块内,而令人愉快的错误是因为您用作导出的路径没有'存在于那些主机上。
还值得注意的是Invoke-Command
可以运行并行,-ComputerName
以及-Session
可以采用数组,这样就不需要foreach
循环以及它更快/更有效。
Invoke-Command -ComputerName $servers -ScriptBlock {
Write-Host "Working on $($env:COMPUTERNAME)..."
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
Get-ItemProperty -Name Version, Release -EA 0 |
ForEach-Object {
if($_.PSChildName -notmatch '^(?!S)\p{L}') {
return # skip this
}
[pscustomobject]@{
HostName = $env:COMPUTERNAME
Version = $_.Version
}
} | Sort-Object Version
} -HideComputerName | Select-Object * -ExcludeProperty RunspaceID |
Export-Csv -Path C:\Users\User\Desktop\example.csv -NoTypeInformation
我正在尝试在 Excel 文档中显示数据,其中 A 列显示服务器名称,B 列显示 .NET 版本。我 运行 遇到导出到 .csv 的问题,因为它说文件路径不存在。我想要一些关于如何解决该问题以及如何在 Excel.
中的两列上显示数据的指导$Servers =
(
"test"
)
foreach ($Server in $Servers)
{
Invoke-Command -ComputerName $Server -ScriptBlock {
Write-Output "$(hostname)"
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release | Select -ExpandProperty Version | Sort-Object Version | Export-Csv -Path C:\Users\User\Desktop\example.csv
}
主要问题是您在远程主机上使用了 Export-Csv
,因为它位于 Invoke-Command
脚本块内,而令人愉快的错误是因为您用作导出的路径没有'存在于那些主机上。
还值得注意的是Invoke-Command
可以运行并行,-ComputerName
以及-Session
可以采用数组,这样就不需要foreach
循环以及它更快/更有效。
Invoke-Command -ComputerName $servers -ScriptBlock {
Write-Host "Working on $($env:COMPUTERNAME)..."
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
Get-ItemProperty -Name Version, Release -EA 0 |
ForEach-Object {
if($_.PSChildName -notmatch '^(?!S)\p{L}') {
return # skip this
}
[pscustomobject]@{
HostName = $env:COMPUTERNAME
Version = $_.Version
}
} | Sort-Object Version
} -HideComputerName | Select-Object * -ExcludeProperty RunspaceID |
Export-Csv -Path C:\Users\User\Desktop\example.csv -NoTypeInformation