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

如何使用perl在Windows 10上获取OSVersion,perl,winapi,windows-10,Perl,Winapi,Windows 10,我一直在使用Win32::GetOSVersion()perl函数来获取目标操作系统的版本。但是,此API调用仅支持Windows Server 2012 是否有其他方法/途径可以在Windows 10上获得操作系统版本?模块使用GetVersionExA(请参阅)并根据msdn: 在Windows 8.1和Windows 10中,GetVersion和GetVersionEx 函数已被弃用。在Windows 10中,VerifyVersionInfo 函数也已被弃用。你还可以打电话给 不推荐

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

是否有其他方法/途径可以在Windows 10上获得操作系统版本?

模块使用
GetVersionExA
(请参阅)并根据msdn:

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

资料来源:

另见:


如果您要修复它,请打开一个请求:)

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

#!/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";

这根本没有解决这个问题(“还有其他方法吗…”)。做一些网络搜索。这个问题已经被问了无数次了。
#!/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";