我一直在使用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上获得操作系统版本吗?
答案 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
如果你要解决它,请打开拉取请求:)