作为公司的IT运维,经常要面对集团各种名头的稽查,对我们工作量造成相当大的提高。公司的IT政策不允许使用非法软件、USB口要关闭、电脑使用者不能有管理员权限等等。于是每一个最底层的工作人员一天到晚围着用户的电脑跑,查找硬件配置,软件信息等,为了提高工作效率,于是就写了以下批处理,减轻自己的工作负担。

功能说明:

                1.扫描机器硬件配置

                2.获取电脑的网络配置

                3.扫描机器软件安装列表

                4.查看Administrators组和Power Users组内的用户

                5.电脑的USB存储端口开关情况

                6.电脑的共享信息

                7.扫描结果自动上传


扫描的結果以程序画面显示(重要內容)及转出以电脑名称命名的文本文件(详细內容)。并将此文本文件自动上传到共享文件夹中。
以下是批处理的代码:

@echo off
color 57
title HardSoft Viewer
mode con cols=67 lines=42
setlocal  ENABLEDELAYEDEXPANSION
echo Prepare For View ...
del /f "%TEMP%\temp.txt" 2>nul
dxdiag /t %TEMP%\temp.txt
del /f "%COMPUTERNAME%.txt" 2>nul
echo Start Hardware Viewer ...
echo System Information: >>%COMPUTERNAME%.txt
echo       Computer Name = %COMPUTERNAME%>>%COMPUTERNAME%.txt
:system
rem This must 30s

if EXIST "%TEMP%\temp.txt" (
    for /f "tokens=1,2,* delims=:" %%a in ('findstr /c:" Machine name:" /c:" Operating System:" /c:" System Model:" /c:" Processor:" /c:"  Memory:" /c:" Card name:" /c:"Display Memory:" "%TEMP%\temp.txt"') do (
         set /a tee+=1
    rem if !tee! == 1 echo       Computer Name =%%b>>%COMPUTERNAME%.txt
     if !tee! == 2 echo       OS       Type =%%b>>%COMPUTERNAME%.txt
     if !tee! == 3 echo       System  Model =%%b>>%COMPUTERNAME%.txt
         if !tee! == 4 echo       CPU     Model =%%b>>%COMPUTERNAME%.txt
     if !tee! == 5 echo       RAM      Size =%%b>>%COMPUTERNAME%.txt
     if !tee! == 6 echo DisplayCard : >>%COMPUTERNAME%.txt
         if !tee! == 6 echo       Display  Card =%%b>>%COMPUTERNAME%.txt
      if !tee! == 7 echo       DisplayMemory =%%b>>%COMPUTERNAME%.txt
)   ) else (
    ping /n 2 127.1>nul
    goto system
)
set tee=0
echo Mother Board:>>%COMPUTERNAME%.txt
for /f "tokens=1,* delims==" %%a in ('wmic BASEBOARD get Manufacturer^,Product^,Version^,SerialNumber /value') do (
     set /a tee+=1
     if "!tee!" == "3" echo       Manufacturer     =%%b>>%COMPUTERNAME%.txt
     if "!tee!" == "4" echo       MotherBoard Model=%%b>>%COMPUTERNAME%.txt

)
set tee=0

)
echo Hard Disk: >>%COMPUTERNAME%.txt
for /f "skip=2 tokens=*" %%a in ('wmic DISKDRIVE get model ^,size /value') do (
   echo.      %%a>>%COMPUTERNAME%.txt
)

set tee=0 
echo Network Card:>>%COMPUTERNAME%.txt
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "Description" ^| findstr /v "Microsoft" ^| findstr /v "Tunneling"') do (
   set  name=%%a 
   echo      NetCard Model =%%a>>%COMPUTERNAME%.txt
)
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "Physical Address" ^| findstr /v "00-00-00-00"') do (
    set  name=%%a
    echo      MAC Address =%%a>>%COMPUTERNAME%.txt
)
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "描述" ^| findstr /v "Microsoft" ^| findstr /v "Tunneling"') do (
    set  name=%%a
    echo      NetCard Model =%%a>>%COMPUTERNAME%.txt
)
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "物理地址" ^| findstr /v "00-00-00-00"') do (
    set  name=%%a
    echo      MAC Address =%%a>>%COMPUTERNAME%.txt
)

ver|find /i "windows xp">nul 2>nul&&goto xp||goto win7
:xp
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "IP Address"') do (
    set  name=%%a
    echo      IP Address =%%a>>%COMPUTERNAME%.txt
)
echo.>>%COMPUTERNAME%.txt
echo Start Software Viewer For XP...
echo Software Information:>>%COMPUTERNAME%.txt
for /f "tokens=7 delims=\" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| findstr /v "KB" 2^>nul') do (
 for /f "skip=4 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%i" /v DisplayName 2^>nul' ) do (
    echo %%b>>%COMPUTERNAME%.txt
  )
)
for /f "tokens=2 delims=\" %%x in ('reg query HKU') do (
  for /f "tokens=8 delims=\" %%a in ('reg query "HKU\%%x\Software\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul') do (
     for /f "skip=4 tokens=2*" %%i in ('reg query "HKU\%%x\Software\Microsoft\Windows\CurrentVersion\Uninstall\%%a"  /v "DisplayName" 2^>nul') do (
      echo %%j>>%COMPUTERNAME%.txt
     )
  )
)
if exist %windir%\system32\CCM\CcmExec.exe echo "SMS Client has been installed"
if exist %windir%\system32\CCM\CcmExec.exe echo "SMS Client has been installed">>%COMPUTERNAME%.txt

echo ==================================================================
echo USB Information:
echo USB Information:>>%COMPUTERNAME%.txt
for /f "skip=4 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Services\usbstor" /v "start" 2^>nul' ) do (
    if "%%b"=="0x4" echo     USB is Close
    if "%%b"=="0x3" echo     USB is Open,Please Tag It.
    if "%%b"=="0x4" echo     USB is Close>>%COMPUTERNAME%.txt
    if "%%b"=="0x3" echo     USB is Open,Please Tag It.>>%COMPUTERNAME%.txt
)
echo Language Code:>>%COMPUTERNAME%.txt
for /f "skip=4 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\ControlSet001\Control\Nls\Language" /v "Default" 2^>nul' ) do (
    if "%%b"=="0404" echo     Language:big5>>%COMPUTERNAME%.txt
    if "%%b"=="0804" echo     Language:gbk>>%COMPUTERNAME%.txt
)

goto last

:win7
for /f "tokens=2* delims==:" %%a in ('ipconfig/all^|find /i "IPV4"') do (
    set  name=%%a
    echo      IP Address = %%a>>%COMPUTERNAME%.txt
)
echo.>>%COMPUTERNAME%.txt
echo Start Software Viewer For Win7/8 ...
rem for 32 win7
echo Software Information:>>%COMPUTERNAME%.txt
for /f "tokens=7 delims=\" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| findstr /v "KB" 2^>nul ') do (
    for /f "skip=2 tokens=3* delims= " %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%i" /v DisplayName 2^>nul') do (
        echo %%a %%b>>%COMPUTERNAME%.txt
    )
)
for /f "tokens=8 delims=\" %%i in ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul ^| findstr /v "KB" 2^>nul ') do (
    for /f "skip=2 tokens=3* delims= " %%a in ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\%%i" /v DisplayName 2^>nul') do (
        echo %%a %%b>>%COMPUTERNAME%.txt
    )
)
for /f "tokens=2 delims=\" %%x in ('reg query HKU') do (
  for /f "tokens=8 delims=\" %%a in ('reg query "HKU\%%x\Software\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul') do (
     for /f "skip=2 tokens=2*" %%i in ('reg query "HKU\%%x\Software\Microsoft\Windows\CurrentVersion\Uninstall\%%a"  /v "DisplayName" 2^>nul') do (
      echo %%j>>%COMPUTERNAME%.txt
     )
  )
)

for /f "tokens=2 delims=\" %%x in ('reg query HKU') do (
  for /f "tokens=9 delims=\" %%a in ('reg query "HKU\%%x\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul') do (
     for /f "skip=2 tokens=2*" %%i in ('reg query "HKU\%%x\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\%%a"  /v "DisplayName" 2^>nul') do (
      echo %%j>>%COMPUTERNAME%.txt
     )
  )
)


echo ==================================================================
echo USB Information:
echo USB Information:>>%COMPUTERNAME%.txt
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Services\usbstor" /v "start" 2^>nul' ) do (
    if "%%b"=="0x4" echo     USB is Close
    if "%%b"=="0x3" echo     USB is Open,Please Tag It.
    if "%%b"=="0x4" echo     USB is Close>>%COMPUTERNAME%.txt
    if "%%b"=="0x3" echo     USB is Open,Please Tag It.>>%COMPUTERNAME%.txt
)
echo Language Code:>>%COMPUTERNAME%.txt
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\ControlSet001\Control\Nls\Language" /v "Default" 2^>nul' ) do (
    if "%%b"=="0404" echo     Language:big5>>%COMPUTERNAME%.txt
    if "%%b"=="0804" echo     Language:gbk>>%COMPUTERNAME%.txt
)


:last
echo ==================================================================
echo Admin Users:
echo Admin Users:>>%COMPUTERNAME%.txt
for /f "skip=6 tokens=*" %%i in ('net localgroup Administrators ^| findstr /v "㏑" ^| findstr /v "命" ^| findstr /v "command"') do (
    echo       %%i
    echo       %%i>>%COMPUTERNAME%.txt
)
echo Power Users:
echo Power Users:>>%COMPUTERNAME%.txt
for /f "skip=6 tokens=*" %%i in ('net localgroup "Power Users" ^| findstr /v "㏑" ^| findstr /v "命" ^| findstr /v "command"') do (
    echo       %%i
    echo       %%i>>%COMPUTERNAME%.txt
)
echo ==================================================================
echo FileShare Information:
echo.>>%COMPUTERNAME%.txt
echo FileShare Information:>>%COMPUTERNAME%.txt
for /f "skip=4 tokens=*" %%i in ('net share 2^>nul ^| findstr /v "㏑" ^| findstr /v "命" ^| findstr /v "command"' ) do (
   echo  %%i
   echo  %%i>>%COMPUTERNAME%.txt

)
echo =========================Viewer Over==============================
net use \\192.168.1.2 hardpasswd /user:harduser 1>nul 2>nul
copy %COMPUTERNAME%.txt \\192.168.1.2\HardFile\
net use \\192.168.1.2\IPC$ /del 1>nul 2>nul
pause
start %COMPUTERNAME%.txt

現在來查看下掃描結果XP/WIN8對比

wKiom1Qo8zXjYHczAATNzGC_thA173.jpg

以及產生的掃描結果

System Information: 
      Computer Name = C0300022B068
      OS       Type = Windows 8.1 专业版 64-bit (6.3, Build 9600) (9600.winblue_gdr.131030-1505)
      System  Model = System Product Name
      CPU     Model = Pentium(R) Dual-Core  CPU      E5500  @ 2.80GHz (2 CPUs), ~2.8GHz
      RAM      Size = 4096MB RAM
DisplayCard : 
      Display  Card = Microsoft 基本显示适配器
      DisplayMemory = 256 MB
Mother Board:
      Manufacturer     =ASUSTeK Computer INC.

      MotherBoard Model=P5KPL-AM

Hard Disk: 
      Model=ST3500418AS ATA Device

      Size=500038694400

      

      

      

Network Card:
     NetCard Model = TAP-Windows Adapter V9
     NetCard Model = Realtek PCIe FE Family Controller
     MAC Address = 00-FF-C6-35-FA-9F
     MAC Address = 00-23-54-0A-31-A9 
     IP Address =  172.17.44.103(首选) 
     IP Address =  192.168.100.103(首选) 

Software Information:
谷歌拼音输入法 2.7
Open××× 2.3.3-I002 
TAP-Windows 9.9.2
7-Zip 9.30 (x64 edition)
Windows Live MIME IFilter
Java 8 Update 20 (64-bit)
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148
Java SE Development Kit 8 Update 20 (64-bit)
Microsoft Application Error Reporting
PDF-Viewer 
Microsoft Visual C++ 2005 Redistributable (x64)
MSVCRT110_amd64 
Adobe Flash Player 15 Plugin
支付宝安全控件 4.3.0.3375
FileZilla Server
VIA 平台设备管理员
Mozilla Firefox 32.0.3 (x86 zh-CN)
Mozilla Maintenance Service
Notepad++ 
PSR Viewer
Tencent QQMail Plugin
迅雷7 
VLC media player 2.1.3
Windows Live 软件包
WinSCP 5.5.5
Windows Live UX Platform
Windows Live Writer
Windows Live UX Platform Language Pack
Junk Mail filter update
Radmin Viewer 3.5
Windows Live Photo Common
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
Platform 
Windows Live 软件包
Windows Live Writer
Windows Live Writer
微软设备健康助手 
Windows Live Communications Platform
Java Auto Updater
Windows Live Mail
Windows Live Writer Resources
LibreOffice 4.3.0.4
Windows Live Installer
Windows Live Writer
Windows Live Writer Resources
Windows Live UX Platform Language Pack
Windows Live 程式集
Microsoft Visual C++ 2005 Redistributable
中国邮政储蓄银行网上银行安全套件 v2.3.3.40
Photo Common
MSVCRT 
MSVCRT110 
Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022
Adobe Reader 8 - Chinese Traditional
Windows Live PIMT Platform
Windows Live Mail
Windows Live Mail
Windows Live SOXE
MSVCRT_amd64 
Windows Live SOXE Definitions
Citrix XenCenter
Photo Common
Evernote v. 5.6.4
D3DX10 
Microsoft WSE 3.0 Runtime
Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022.218
Microsoft WSE 2.0 SP3 Runtime
百度云管家 
迅雷看看播放器 
迅雷看看高清播放组件 
银联安全控件IE版 1.0.0.7
银联安全控件非IE版 3.0.0.2
360安全浏览器7
支付宝数字证书组件 2.0.0.1
USB Information:
    USB is Open,Please Tag It.
Language Code:
    Language:gbk
Admin Users:
      Administrator
      Luke
Power Users:

FileShare Information:
 ADMIN$       C:\Windows                      远程管理                          
 C$           C:\                             默认共享                          
 IPC$                                         远程 IPC                          
 D$           D:\                             默认共享                          
 E$           E:\                             默认共享                          
 F$           F:\                             默认共享                          
 HardFile$    D:\HardFile                     
 cd_rom       D:\cd_rom                       
 HardSoft Viewer
 D:\HardSoft Viewer              
 public       D:\public