标题: [系统相关] 通过获取version.dll文件版本号判断硬盘里系统版本 [打印本页]
作者: 窄口牛 时间: 2017-8-18 06:38 标题: 通过获取version.dll文件版本号判断硬盘里系统版本
本帖最后由 pcl_test 于 2017-8-18 09:08 编辑
通过获取version文件版本号,和是否有64位系统文件夹,以判断硬盘中所有的系统版本和位数。
作者: qazplm 时间: 2017-8-18 09:15
- wmic datafile where "name='%windir:\=\\%\\System32\\version.dll'" get version /value
- if exist "64位系统文件夹" (echo;64) else echo;32
复制代码
作者: PS2.0 时间: 2017-8-18 09:42
test.bat- @echo off
- powershell -c "(Get-ChildItem 'C:\Windows\System32\version.dll' | Select-Object -ExpandProperty VersionInfo).ProductVersion"
复制代码
作者: PS2.0 时间: 2017-8-18 09:59
test2.bat- @echo off
- powershell -c "(Get-WmiObject -class Win32_OperatingSystem).Caption"
复制代码
作者: 窄口牛 时间: 2017-8-18 14:20
- @echo off
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- if exist %%i:\windows\system32\version.dll echo %%i&wmic datafile where "name='%%i:\\windows\\system32\\version.dll'" get version
- )
- pause
-
-
- if (buf == "5.0.") then
- sysver = "Windows 2000"
- elseif (buf == "5.1.") then
- sysver = "Windows XP"
- elseif (buf == "5.2.") then
- sysver = "Windows Server 2003"
- elseif (buf == "6.0.") then
- sysver = "Windows Server 2008"
- elseif (buf == "6.1.") then
- sysver = "Windows 7"
- elseif (buf == "6.2.") then
- sysver = "Windows 8"
- elseif (buf == "6.3.") then
- sysver = "Windows 8.1"
- elseif (buf == "10.0") then
- sysver = "Windows 10"
复制代码
作者: PS2.0 时间: 2017-8-18 14:34
回复 5# 窄口牛
不准确。有重复:
5.2 Windows Server 2003
5.2 Windows XP x64
6.0 Windows Vista
6.0 Windows Server 2008
6.1 Windows 7
6.1 Windows Server 2008 R2
6.2 Windows 8
6.2 Windows Server 2012
作者: 窄口牛 时间: 2017-8-18 15:10
只能这样了,挂载注册表才能细分,思路就这样,只是我不会鼓捣变量,写不完整。
作者: kingshui 时间: 2017-8-19 08:00
回复 7# 窄口牛
如果只是判断目标系统的位数,直接看有没有program file (x86)目录不就得了?或者还有一个目录也可以看出来。
windows\syswow64
个人比较偏向用特定文件来判断目标系统。
相信你是在PE里使用的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |