Is it doable? Sure. At least most of it. Start with this:
Get-Content InventoryListOfServerNames.txt |
Foreach-Object{
$x = Get-CimInstance -ComputerName $_ -ClassName win32_operatingsystem
$y = Get-CimInstance -ComputerName $_-ClassName win32_logicaldisk -Filter "DriveType = 3"
# fill in name/data pairs as needed
[PSCustomObject]@{
Name = Value
}
}
The "Last Logon User" is unclear. Do you mean the last user to logon the machine from its console? Or interactively? Using RDP? There are many different types of logons. Each logon should be recorded in the machine's security log.