인터넷의 도움으로 하드웨어 정보를 수집하고이를 CSV 파일로 내보내는 기본 PowerShell 스크립트를 작성했습니다. 그것은 수집 :하드웨어 정보 스크립트 문제 해결
- 호스트 이름
- CPU
- NumberOfCores
- GPU
- RAM
스크립트가 여전히 HDD 정보 (용량, 여유 공간, ID)를 얻을 필요가 , IPv4 주소 및 MAC.
$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_File
객체
'IP' = $IP.IPAddress
하고 모든 어댑터가 "LAN"라는 사람이 아닙니까 때문에 좋지 않았다
'MAC' = $MAC.MacAddress
에서 사용할 수 있습니다. HDD의 경우
내가 쓴 : 일부 컴퓨터가 하나 개 이상의 HDD를했지만, 나는이 두 가지를 결합 할 수있는 방법 내가 하나와 하드 디스크의 위의 모든 정보를 가질 수 있도록 내가 아는하지 않았기 때문에
$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가 있고이를 병합하면 고통 스럽습니다.
여러 가지 질문이 있습니다. 한 번에 한 가지 문제에 집중하고, 문제를 해결하기 위해 시도한 것을 보여주고, 원하는 결과와 실제 결과물을 보여주고 예상대로 작동하지 않는 것을 설명하십시오. –