让我们首先说我是 Powershell 的新手,而不是使用它的代码和脚本但尝试学习的最棒的人。现在问题来了!
我正在编写一个从网络中的计算机获取信息的脚本。我有一些代码非常适合我的目的。但是当涉及到一些信息时我遇到了一些问题,主要是包含多个对象的信息,比如服务。
#This application will pull information from a list of devices. The devices list is
sent with C:\Users\test.txt and output is pushed to a file C:\Users\devices.csv
function kopiera
{
param
(
[Parameter(ValueFromPipeline=$true)]
[string[]]$Computer=$env:computername
)
Process
{
$computer | ForEach-Object{
$service=Get-WmiObject -Class Win32_Service -Computername $_
$prop= [ordered]@{
Service =$service.caption
}
New-Object PSCustomObject -Property $prop
}
}
}
Get-Content C:\Users\test.txt | kopiera | Export-csv c:\Users\devices.csv
当我导出 csv 文件时,它看起来像这样:
TYPE System.Management.Automation.PSCustomObject
“服务”
“系统。对象 []”
所以它不会获取 service.caption (因为太多了?)。但是如果我用输出文件 C:\Users\devices.txt 替换 export-csv C:\Users\device.csv 它看起来像这样:
{Adobe Acrobat 更新服务、Adobe Flash Player 更新服务、Andrea ADI 过滤器服务、应用程序体验...}
所以它开始看起来更好了,但并没有得到所有(仍然是因为有太多的服务?)。我想用这个导出/输出文件做的是让信息垂直而不是水平显示。
(想要的结果)
Adobe Acrobat 服务
Adobe Flash Player 更新服务
等等..
而不是:(实际结果)
Adobe Acrobat 更新服务、Adobe Flash Player 更新服务等...
有没有办法使这成为可能,已经尝试了一段时间并且无法将我的大脑包裹起来。
任何帮助表示赞赏!