我正在编写一个 perl 脚本来访问 Windows 注册表树结构中的值。
我正在使用下面的简单脚本
use Win32::TieRegistry;
my $mykey = $Registry->{'HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/BIOS/'};
my $mykeyval = $mykey->{'/SystemVersion'};
print " value $mykeyval";
exit;
但我无法获取内容或值
用法:Win32API::Registry::regConstant("CONST_NAME") 在 C:/Dwimperl/perl/vendor/lib/Win32/TieRegistry.pm 第 292 行
通过解决方案向我提供它。提前致谢。
最佳答案
我认为这是因为如果您使用的是 Win 7
或 Win Vista
等平台,那么在运行 perl 脚本时您没有获得管理员权限。
某些字段的注册表键值,例如 HKEY_LOCAL_MACHINE
下的字段,普通用户无法访问。您可以尝试以管理员身份运行脚本并观察结果。
另外,Win32::TieRegistry默认的分隔符是\\
。所以如果你想使用 /
作为分隔符,你应该像这样导入模块:
use Win32::TieRegistry (Delimiter => '/');
请注意,即使您的代码正确,如果您的 SystemVersion
为空,或者您的注册表中没有这样的 key ,仍然可能没有输出。所以也用Data::Dumper
打印mykey
来检查。
关于perl - 使用 Perl 解析 Windows 注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19023504/