Search code examples
windowsmatlabhardware

How can I get processor and hard disk manufacturing serial numbers and ids?


How can I get the following hardware attributes using Matlab?

  • Motherboard manufacturing serial number
  • Processor Id
  • Processor manufacturing serial number
  • Hard disk Id
  • Hard disk manufacturing serial number

And is there any function or class responsible for detecting attributes of other machine hardware components attributes?

I know it can be done using system or console commands, but I don't know how. However, I prefer to know both two ways, the one using Windows console commands, and the one without using it.


Solution

  • This is a way to get hard disk serial number using console command from matlab:

    %// Get hard disk serial using windows console command
    cmd         = 'wmic diskdrive get SerialNumber';
    [~, result] = system(cmd);
    %// Extract first hard disk serial number
    fields      = textscan( result, '%s', 'Delimiter', '\n' );
    fields      = strtrim(fields{1});
    serialNo    = fields{2};
    

    The same for the processor id:

    %// Get processor id using windows console command
    cmd           = 'wmic cpu get ProcessorId';
    [~, result]   = system(cmd);    
    %// Extract first processor id
    fields        = textscan( result, '%s', 'Delimiter', '\n' ); 
    fields        = strtrim(fields{1});
    processorId   = fields{2};
    

    It's all about using console command wmic + [hardware name] + get + [attributename] and if you want to know the whole attributes available for some device you can use get in your command without naming any attribute, Example:

    command = 'wmic csproduct get'
    

    that will get all available attributes of your machine as a product and its values.