Here's one for checking the processor:
Code:
procinfo {
  ; $1 can include these and more: Caption,Manufacturer,MaxClockSpeed,Name,NumberOfCores,ProcessorType,Version
  var %a = a $+ $ticks, %b = b $+ $ticks
  .comopen %a WBemScripting.SWBemLocator
  if (!$com(%a)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  .comclose %a $com(%a,ConnectServer,1,dispatch* %b)
  if (!$com(%b)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  var %query = SELECT $1 FROM Win32_Processor
  .comclose %b $com(%b,ExecQuery,1,bstr,%query,dispatch* %a)
  if (!$com(%a)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  var %i = 1, %n = $comval(%a,0)
  while (%i <= %n) {
    var %value = $comval(%a,%i,$1)
    if (%i < %n) { linesep -a }
    inc %i
  }
  .comclose %a
  return %value
}


Use: //echo -a $procinfo(Name)

As noted, you can get other information from it by replacing "Name" with one of the other values lised at the top of the script. ($1 is the text inside the parentheses).

And here is one for memory:
Code:
memory {
  ; $1 can include these: AvailableVirtualMemory,Caption,Description,Name,SettingID,TotalPageFileSpace,TotalPhysicalMemory,TotalVirtualMemory
  .comopen xpver1 WbemScripting.SWbemLocator
  .comclose xpver1 $com(xpver1,ConnectServer,1,dispatch* xpver2)
  if $com(xpver2) {
    .comclose xpver2 $com(xpver2,ExecQuery,1,bstr*,select $1 from Win32_LogicalMemoryConfiguration,dispatch* xpver3)
    if $com(xpver3) {
      var %a = $comval(xpver3,1,$1)
      .comclose xpver3
      return $bytes($calc(%a * 1024)).suf
    }
  }
}


Use: //echo -a $memory(TotalPhysicalMemory)

Again, you can replace the text inside the parentheses with any of the items listed in the comment at the top.