我正在创建一个Java桌面应用程序,用于报告Windows机器(XP、Vista和W7)的性能和统计信息。
使用Java或命令行,如何获取以下信息:
- 制造商(戴尔、惠普...)
- 型号号码
- 处理器类型
- 处理器大小
- 系统类型
- 存储空间
- RAM总量
- RAM空闲或已使用
如果我找到更多要列出的信息,提供参考页面将会很好。
我正在创建一个Java桌面应用程序,用于报告Windows机器(XP、Vista和W7)的性能和统计信息。
使用Java或命令行,如何获取以下信息:
如果我找到更多要列出的信息,提供参考页面将会很好。
大部分信息都可以通过WMI进行查询(很可能是 systeminfo
在底层使用的方式 - 它只是倾向于搜集所有可得到的而不是特定的信息)。
我编写了以下简单的批处理文件。不太确定您所说的处理器大小是什么意思 - 没有软件会进入电脑盒子并测量芯片尺寸,但也许这接近了。您可以在批处理文件末尾执行 set
命令来查看所有创建的环境变量。也许其中一些对您有帮助:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%l in ('wmic computersystem get Manufacturer^,Model^,SystemType^,TotalPhysicalMemory /format:list') do >nul 2>&1 set "System_%%l"
for /f "delims=" %%l in ('wmic cpu get * /format:list') do >nul 2>&1 set "CPU_%%l"
for /f "delims=" %%l in ('wmic os get FreePhysicalMemory^,TotalVisibleMemorySize /format:list') do >nul 2>&1 set "OS_%%l"
set /a OS_UsedPhysicalMemory=OS_TotalVisibleMemorySize-OS_FreePhysicalMemory
for /f "delims=" %%l in ('wmic volume get DriveLetter^,FreeSpace /format:list') do (
>nul 2>&1 set "TEMP_%%l"
if "!TEMP_DriveLetter:~1,1!"==":" if defined TEMP_FreeSpace set StorageSpace_!TEMP_DriveLetter:~0,2!=!TEMP_FreeSpace:~0,-1!&set TEMP_DriveLetter=&set TEMP_FreeSpace=
)
echo Manufacturer: %System_Manufacturer%
echo Model: %System_Model%
echo Processor Type: %PROCESSOR_ARCHITECTURE%
echo Processor Size: %CPU_AddressWidth%
echo System Type: %System_SystemType%
echo Storage Space:
set StorageSpace_
echo RAM total: %OS_TotalVisibleMemorySize% KiB
echo RAM free: %OS_FreePhysicalMemory% KiB
echo RAM used: %OS_UsedPhysicalMemory% KiB
顺便提一下:这是不受地区限制的免费内容,因此应该在任何地方都可以使用(与诸如dir | find "free"
之类的内容相反)。 代码可以在我的SVN存储库中找到。
制造商
systeminfo | find "System Manufacturer"
型号
systeminfo | find "System Model"
处理器类型
echo %PROCESSOR_IDENTIFIER% %PROCESSOR_LEVEL%
处理器大小
systeminfo | find "Processor"
系统类型
systeminfo | find "System type"
存储空间
dir | find "free"
或者
fsutil volume diskfree C:
RAM总量
systeminfo | find "Total Physical Memory"
可用内存或已使用内存
systeminfo | find "Available Physical Memory"
systeminfo
的输出,这显然会提高一些速度。 - Joey你想要的功能可以使用sysinternals的psinfo实现吗?你可以从服务器上运行它来查询每台电脑。http://technet.microsoft.com/en-us/sysinternals/bb897550