如何在Excel电子表格中导出批处理文件/ Powershell脚本的输出

时间:2016-11-22 16:26:38

标签: excel powershell batch-file automation

我被要求绕过整个建筑物并记录网络中所有PC上的序列号和系统信息。在我这样做的时候,我意识到我可以写一个批处理文件或Powershell脚本来为我做这个。我输入命令" wmic bios get serialnumber"它给了我机器的序列号。有没有办法获取所有信息,如处理器,内存,IP地址和序列号,并将其输出到Excel电子表格中?如果它只能在文本文件中导出,那很好。我想将它保存在我的服务器上。我不知道如何将它全部保存到一个文本文件中。我意识到我可以让批处理文件使用>>创建自己的文本文件。 %COMPUTERNAME%.txt命令。

任何帮助或建议都会很棒! 谢谢!

Get-WmiObject win32_processor | Findstr ('Name') | Format-List
$env:COMPUTERNAME | Format-List
wmic bios get serialnumber /Format
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Model') | Format-List
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Manufacturer') | Format-List
Get-WmiObject -Class Win32_ComputerSystem | Findstr ('Name') | Format-List
(systeminfo | Select-String 'Total Physical Memory:').ToString().Split(':')[1].Trim() | Format-List
Export-CSV -Path C:\Users\ars001\%COMPUTERNAME%.csv | Format-List

1 个答案:

答案 0 :(得分:0)

好的,你显然已付出一些努力来获取命令,至少收集信息以及你需要哪些类别的细节,所以我会给你这么多......

$Computers = Get-Content C:\Path\To\ComputerList.txt
[array]$Results = $Record = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $PC | select Model,Manufacturer,Name,TotalPhysicalMemory
$Results[0] | Add-Member 'Processor' $(Get-WmiObject win32_processor -ComputerName $PC | % Name)
$Results[0] | Add-Member 'SerialNumber' $(Get-WmiObject bios -ComputerName $PC |% serialnumber)
ForEach($PC in $Computers){
    If(!(Test-Connection $PC -Quiet) -or $PC -eq $env:COMPUTERNAME){Continue}
    $Record = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $PC | select Model,Manufacturer,Name,TotalPhysicalMemory
    $Record | Add-Member 'Processor' $(Get-WmiObject win32_processor -ComputerName $PC | % Name)
    $Results += $Record | Add-Member 'SerialNumber' $(Get-WmiObject bios -ComputerName $PC |% serialnumber) -PassThru
}
$Results | Export-Csv c:\Path\To\Output.csv -NoTypeInformation

然后您只需编辑路径,并将一组计算机保存为文本文件。如果安装了AD模块,则可以查询该信息的AD。