一、需求
由于最近负责电脑资产清查的工作,有100多台分散的电脑需要获得用户名、MAC地址、硬盘序列号、硬盘品牌
一般方法:
(1)查看系统用户名
(2) 获取MAC地址
(3)使用Hdtune软件查看硬盘序列号、硬盘品牌
(4)把上述信息手动输入一个Excel总表
以上操作 ,一轮下来大约5~10分钟
还是写代码吧,把每台电脑的上述信息都统一输出为一个子excel,最后再将所有xls文件放在一个文件夹中,利用VBA合并到一个表就可以了交差了
一年多没写过脚本,折腾了半天,基本完成
二、简单笔记
环境:Win7 64+Python3.7
Part 1 用到的库函数
(1)getpass库的getuser方法,获得当前用户名
(2)WMI库的Win32_DiskDrive类,调用SerialNumber和Caption方法获取物理硬盘的硬盘序列号、硬盘品牌
参见
Win32_DiskDrive class - Windows applicationsdocs.microsoft.com(3)通过WMI库Win32_NetworkAdapterConfiguration类获取MAC地址,调用interface.MACAddress方法
参见
Win32_NetworkAdapterConfiguration class - Windows applicationsdocs.microsoft.com(4)xlwt库,写入本地xls文件(很简单)
代码很简单
from wmi import WMI
from getpass import getuser
from xlwt import Workbookc = WMI ()
listValue = []#获取用户名
userName = getuser()
listValue.append( userName )
#获取MAC和IP地址
for interface in c.Win32_NetworkAdapterConfiguration ( IPEnabled= True ):listValue.append( interface.MACAddress )
#获取SerialNumber和Caption
for physical_disk in c.Win32_DiskDrive(): #SerialNumber : Number allocated by the manufacturer to identify the physical media.listValue.append( physical_disk.SerialNumber ) #Caption : Short description of the object.listValue.append( physical_disk.Caption )
Part 2 py文件转换为exe文件
最后一步,利用pyinstaller将py文件打包成可执行文件。
先试了一下默认的打包命令
Pyinstaller diskinfo.py
生成了一堆文件
这堆是啥我得研究一下。。。等等,我只是个写脚本的,其他的有空再研究,可执行文件在disk文件夹里,1.8M
执行,费时2s左右,生成所需xls文件
但是这一堆文件有点麻烦,每个电脑还得拷过来拷过去,查了下资料,发现可以做成单个执行文件,编译的时候时候加“-F”参数就行了
Pyinstaller -F diskinfo.py
现在就没有一堆奇怪的东西了,单个可执行文件一共9.3M
进阶操作参考
PyInstaller Manualpyinstaller.readthedocs.ioPart 3
又试了几台都没什么问题,还未解决的问题应该还有不少:
(1) 现在都是64位系统,可以执行,32位系统没法用
(2) 单个文件打包后比较大,搜了一些解决方案,回去重新调试一下
(3) 手生,调试的过程中踩了很多基础坑,回去把《Python基础教程》复习一下