#!/usr/bin/env python
# coding: utf-8

# In[1]:


def newfunc():    

    import subprocess
    import re
    import time
    import datetime
    start=time.time()
    #Host name 
    HostName=((subprocess.Popen('hostname',stdout=subprocess.PIPE)).communicate()[0]).strip()
    print('Host Name : \n {}'.format(HostName.decode('utf-8')))
#     print('\t')
    #computer mother board name
    computername=subprocess.Popen('wmic baseboard get Manufacturer',stdout=subprocess.PIPE)
    #Service tag is bios serial number 
    computerproduct=subprocess.Popen('wmic bios get SerialNumber',stdout=subprocess.PIPE)
    brand=(computername.communicate()[0]).replace('Manufacturer','').strip()
    product=(computerproduct.communicate()[0]).replace('SerialNumber','').strip()
    print('Brand : \n {} - {} '.format(brand,product))
#     print('\t')
    #processor model 
    processor=subprocess.Popen('wmic cpu get  name',stdout=subprocess.PIPE)
    print('Processor : \n {} '.format((processor.communicate()[0]).replace('Name','').strip()))
#     print('\t')
    
    #Ram details
    try:
        ram=subprocess.Popen('wmic memorychip get capacity',stdout=subprocess.PIPE)
        capacity=((ram.communicate()[0]).replace('Capacity','').strip())
        capacity=sum([int(int(i)/1073741824) for i in re.findall('\d+',capacity)])
        rammanufatur=subprocess.Popen('wmic memorychip get manufacturer',stdout=subprocess.PIPE)
        ramcompany=(rammanufatur.communicate()[0]).replace('Manufacturer','').strip()
        ramcompany= [i for i in re.findall('\D+',ramcompany)]
        print('Ram : \n {} - {} '.format(ramcompany[0].strip(),str(capacity)+' GB'))
    except:
        pass 
    #Hard Disk info
    harddisk=subprocess.Popen('wmic logicaldisk get caption',stdout=subprocess.PIPE)
#     drive letter
    
    driveletter=[i for i in re.findall('[A-Z]:',harddisk.communicate()[0])]
    
#     harddisk size total
    
    harddisksize=subprocess.Popen('wmic logicaldisk get size',stdout=subprocess.PIPE)
    harddisksize=harddisksize.communicate()[0]
    
#     harddisk free space
    
    harddiskfree=subprocess.Popen('wmic logicaldisk get freespace',stdout=subprocess.PIPE)
    harddiskfree=harddiskfree.communicate()[0]
    harddiskfree=[int(int(i)/1073741824) for i in re.findall('\d+',harddiskfree)]


    harddisksize=[i for i in re.findall('\d+',harddisksize)]
    for j,i in enumerate(harddisksize):
        print('Harddisk info : \n Drive {} Total PhysicalSpace {} ,FreeSpace {}'.format(driveletter[j], str(int(int(i)/1073741824))+'GB',str(harddiskfree[j]) +'GB'))    
    
    
    harddisktype=subprocess.Popen(['powershell',"Get-PhysicalDisk | Format-Table -AutoSize"],stdout=subprocess.PIPE)
    harddisktype=[i for i in re.findall('HDD|SSD',harddisktype.communicate()[0])]
    print('\r Media Types : {}'.format(harddisktype))
    
    
    
    end=time.time()
    print('Execution Time {}'.format(datetime.timedelta(seconds=(end-start))))   

newfunc()


# In[ ]:




