I came up with this powershell script that will run on logon and write back to a specified location. Then I could gather them as people logged on/connected.
$name = (Get-Item env:\Computername).Value $filepath = "\\SERVER\DIRECTORY" function inventory { # MotherBoard: Win32_BaseBoard $manuf = Get-WmiObject Win32_ComputerSystem -ComputerName $name # Hard-Disk $hd = Get-WmiObject win32_diskDrive -ComputerName $name | ForEach-Object {[math]::round($_.size / 1GB)} # Memory $mem = Get-WmiObject Win32_ComputerSystem -ComputerName $name | ForEach-Object {[math]::round($_.TotalPhysicalMemory / 1GB)} # Processor $cpu = Get-WmiObject Win32_Processor -ComputerName $name #OS Architecture $OS = Get-WmiObject Win32_OperatingSystem -ComputerName $name ## System enclosure $enc = Get-WmiObject Win32_SystemEnclosure -ComputerName $name $type = $enc.chassistypes $chassis = Switch ($type) { "1" {"Other"} "2" {"Virtual Machine"} "3" {"Desktop"} "4" {"Low Profile Desktop"} "5" {"Pizza Box"} "6" {"Mini Tower"} "7" {"Tower"} "8" {"Portable"} "9" {"Laptop"} "10" {"Notebook"} "11" {"Handheld"} "12" {"Docking Station"} "13" {"All-in-One"} "14" {"Sub-Notebook"} "15" {"Space Saving"} "16" {"Lunch Box"} "17" {"Main System Chassis"} "18" {"Expansion Chassis"} "19" {"Sub-Chassis"} "20" {"Bus Expansion Chassis"} "21" {"Peripheral Chassis"} "22" {"Storage Chassis"} "23" {"Rack Mount Chassis"} "24" {"Sealed-Case PC"} Default {"Unknown"} } ##Excract Object Data $obj = New-Object psobject $obj | Add-Member noteproperty Manufacturer $manuf.Manufacturer $obj | Add-Member noteproperty Model $manuf.Model $obj | Add-Member noteproperty CPU $cpu.Name $obj | add-member noteproperty RAM $mem $obj | add-member noteproperty HD $hd $obj | Add-Member noteproperty Type $chassis $obj | Add-Member noteproperty OS $OS.Caption $obj | Add-Member noteproperty Arch $OS.OSArchitecture Write-Output $obj } ##Run function and export to csv inventory | format-table inventory | Export-Csv -NoTypeInformation $filepath\$name.csv
No comments:
Post a Comment