如何使用perl在Windows 10上获取OsVersion

时间:2016-08-22 08:52:32

标签: perl winapi windows-10

我一直在使用Win32 :: GetOSVersion()perl函数来获取目标的操作系统版本。但是,此API调用仅支持Windows Server 2012。

http://search.cpan.org/~jdb/Win32-0.52/Win32.pm

OS                      ID    MAJOR   MINOR
----------              ---   -----   -----
Win32s                   0      -       -
Windows 95               1      4       0
Windows 98               1      4      10
Windows Me               1      4      90

Windows NT 3.51          2      3      51
Windows NT 4             2      4       0

Windows 2000             2      5       0
Windows XP               2      5       1
Windows Server 2003      2      5       2
Windows Server 2003 R2   2      5       2
Windows Home Server      2      5       2

Windows Vista            2      6       0
Windows Server 2008      2      6       0
Windows 7                2      6       1
Windows Server 2008 R2   2      6       1
Windows 8                2      6       2
Windows Server 2012      2      6       2

还有其他方法/方法我可以在Windows 10上获得操作系统版本吗?

2 个答案:

答案 0 :(得分:1)

还有一些其他方法可以获取原始数据,然后您可以解析这些数据以适合您的应用程序,例如

#!/usr/bin/perl

use strict;
use warnings;

my $ver = `ver`;

print "output of ver command: $ver\n";

my $reg = `reg query "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v "ProductName"`;

# alternatively query for 'CurrentVersion' rather than 'ProductName' above 
print "output of registry query: $reg\n";

答案 1 :(得分:0)

Win32模块使用GetVersionExA(请参阅Win32.xs)并按照msdn:

  

在Windows 8.1和Windows 10中,GetVersion和GetVersionEx   函数已被弃用。在Windows 10中,VerifyVersionInfo   函数也已被弃用。虽然你仍然可以打电话给   已弃用的函数,如果您的应用程序没有专门针对   在Windows 8.1或Windows 10中,您将获得Windows 8版本(6.2.0.0)。

来源:msdn

另见:IsWindows10OrGreater function

如果你要解决它,请打开拉取请求:)