BAT脚本:一键获取电脑主要硬件配置信息并自动生成记录文件

/ 497 次浏览 / 0
隐藏
换装

最近遇到个IT基础搞的很糟糕的企业,IT资产管理、IP-Mac绑定之类的那是一概没有做,头大如牛。用局域网扫描工具,IP、Mac地址信息还是很容易获取到,那怎么和员工信息进行绑定呢?没有部署AD域,也没有安装任何桌管软件,策略推送或者用软件自动提取员工终端数据是不可能的了,还好用户不多,挨个跑去查看登记吧。

一、bat需求:

1、获取电脑上主要硬件的厂商、版本、规格等信息;

2、尽量简单,用户双击运行产生结果;

3、记录文件自动存放到bat所在路径。

优化:为方便批量下载记录文件不出现文件名冲突,在用户端运行bat时要求输入用户名,然后在记录文件名称中包含用户名以作区分。

二、bat代码详细:

@echo off & title 获取本机简要配置信息

::自定义用户名
set /p names=请输入用户名:
::设置信息保存路径
set Upath=%~dp0
echo 检测当前U盘路径:%Upath%
set Log="%Upath%"本机简要配置信息(%names%).txt

::计算机主要硬件信息获取
echo WScript.Echo Wscript.Arguments(0) / (1024 * 1024 * 1024)>Calculation.vbs
echo 正在获取信息中 ...
::执行结果写入Log文件
(echo 登 录 名:%USERNAME%
echo 计算机名:%COMPUTERNAME%
for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do echo 电脑型号:%%~a
for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do echo 制 造 商:%%~a
for /f "tokens=2 delims==" %%a in ('wmic csproduct get IdentifyingNumber /value ^| findstr /i "IdentifyingNumber"') do echo SN序列号:%%~a
for /f "tokens=2 delims==" %%a in ('wmic cpu get Name /value ^| findstr /i "Name"') do echo 处 理 器:%%~a
for /f "tokens=2 delims==" %%a in ('wmic memorychip get Capacity /value ^| findstr /i "Capacity"') do (
for /f "tokens=1 delims=." %%b in ('cscript /nologo Calculation.vbs "%%~a"') do set /a m+=%%~b
)
call echo 内存容量:%%m%% GB
echo.
set /a k=0
for /f "tokens=2 delims==" %%a in ('wmic DiskDrive get Size /value ^| findstr /i "Size"') do (
for /f "tokens=1 delims=." %%b in ('cscript /nologo Calculation.vbs "%%~a"') do set /a d+=%%~b && set /a t=%%~b&&set /a k=k+1
call echo 硬盘%%k%%容量:%%t%% GB
)
call echo 硬盘总容量:%%d%% GB
echo.
for /f "tokens=2 delims==" %%a in ('wmic nic where "netconnectionid!=NULL" get macaddress /value ^| findstr /i "MACAddress"') do echo MAC 地址:%%~a)>"%Log%"
del Calculation.vbs
echo 信息获取,并保存。
pause

三、执行结果:

将bat文件拖到任意路径下双击执行,在该目录下都将自动生成计算机硬件配置信息记录文件:

P1.bat脚本任意路径下自动生成本机主要硬件配置信息

附:

计算机简要配置信息一键查询.bat

  1. hoops说道:

    请问博主,如何增加网络信息(本机IP地址)的采集呢?我按网上的信息修改了,但是并不能实现。

    • leicong说道:

      @hoops 还是使用wmic组件就可以获取到的。比如wmic nicconfig get IPAddress,IPSubnet,DNSServerSearchOrder,MACAddress /value这条命令,可以获取到当前主机下所有网卡的IP地址、子网掩码、DNS和MAC地址等。当然如果网卡很多,也可以根据需要,设置条件,精确的获取指定序列号网卡的网络信息,比如wmic nicconfig where index=2 get IPAddress,IPSubnet,DNSServerSearchOrder,MACAddress /value,截图:cmd截图

      • leicong说道:

        @leicong 嗯,补充一下:上述执行的结果要么获取到很多杂七杂八无用的网络信息,要么得精确知道目标网卡在每台电脑上的序列号,都不够精确或不具备可操作性。其实,对于内网中的电脑而言,DHCP服务器的IP地址一般是固定的,可以把它作为筛选条件,比如wmic nicconfig where DHCPServer="192.168.88.1" get IPAddress,IPSubnet,DNSServerSearchOrder,MACAddress /value,这样就只会获取192.168.88.0/24网段对应的网卡信息了,不用再去管网卡的序列号了。

评论留言

您的电子邮箱地址不会被公开。 必填项已用*标注