Windows 获取硬件信息脚本问题
在Internet的帮助下,我成功地编写了一个基本的PowerShell脚本,用于收集硬件信息并将其导出到CSV文件。它收集了:Windows 获取硬件信息脚本问题,windows,powershell,csv,windows-7,hardware,Windows,Powershell,Csv,Windows 7,Hardware,在Internet的帮助下,我成功地编写了一个基本的PowerShell脚本,用于收集硬件信息并将其导出到CSV文件。它收集了: 主机名 中央处理器 核数 GPU 公羊 我的脚本仍然需要获取HDD信息(容量、可用空间、id)、IPv4地址和MAC $Name = hostname $Motherboard = Get-WmiObject Win32_BaseBoard $CPU = Get-WmiObject Win32_Processor $GPU = Get-WmiObject Win3
- 主机名
- 中央处理器
- 核数
- GPU
- 公羊
$Name = hostname
$Motherboard = Get-WmiObject Win32_BaseBoard
$CPU = Get-WmiObject Win32_Processor
$GPU = Get-WmiObject Win32_VideoController
$RAM = Get-WmiObject Win32_ComputerSystem
$To_File = new-object PSObject -property @{
'Name' = $Name
'Motherboard' = $Motherboard.Product
'CPU' = $CPU.Name
'Cores' = $CPU.NumberOfCores
'GPU' = $GPU.Name
'RAM' = "{0:N2}" -f ($RAM.TotalPhysicalMemory/1GB)
}
$To_File | Select-Object Name, Motherboard, CPU, Cores, GPU, RAM |
Export-Csv G:\$Name.csv
早些时候,我也有一条获得IP和MAC的线路,但它并不是万能的。看起来是这样的:
$IP = gwmi Win32_NetworkAdapterConfiguration | Where ($_.DNSDomain -eq 'lan')
$MAC = gwmi Win32_NetworkAdapterConfiguration | Where ($_.DNSDomain -eq 'lan')
然后我将只在$To_文件中使用对象'IP'=$IP.IPAddress
和'MAC'=$MAC.MacAddress
这并不好,因为不是所有的适配器都被命名为“lan”
对于硬盘,我写道:
$Disk = Get-WmiObject Win32_LogicalDisk -Filter drivetype=3
$DiskInfo = foreach ($zm in $Disk) {
'ID: ' + $zm.DeviceID
'Capacity: ' + "{0:N2}" -f ($zm.Size/1GB)
'Free Space: ' + "{0:N2}" -f ($zm.FreeSpace/1GB)
}
因为有些电脑有不止一个硬盘,但我不知道如何将这两个东西连接在一起,这样我就可以把上面的所有信息和硬盘放在一个文件中
我不能远程完成所有这些工作,所以脚本在USB驱动器上,我去每台计算机上自己运行。我还得做大约20台机器
我还想知道如何将新行添加到现有CSV文件中,因为拥有15个CSV并将它们“合并”在一起非常痛苦。使用-append
命令和export CSV
命令,以便将新行添加到现有行中。你的命令看起来像
$To_File | Select-Object Name, Motherboard, CPU, Cores, GPU, RAM |
Export-Csv G:\$Name.csv -NoTypeInformation -Append
我想链接会对您有所帮助。这是几个问题。请一次只关注一个问题,展示您试图解决的问题,展示您期望的和实际的输出,并解释哪些问题没有按预期工作(包括您遇到的所有错误)。