我正在编写一个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
或的某些平台上运行perl脚本时,您没有获得管理员权限Win Vista
。
HKEY_LOCAL_MACHINE
普通用户无法访问某些字段(例如下的)的注册表项值。您可以尝试以管理员身份运行脚本并查看结果。
此外,Win32 :: TieRegistry的默认定界符为\\
。因此,如果您想/
用作定界符,则应按以下方式导入模块:
use Win32::TieRegistry (Delimiter => '/');
注意,即使您的代码正确,如果您SystemVersion
为空白,或者注册表中没有这样的键,也仍然不会有输出。因此,也可以Data::Dumper
通过打印mykey
进行检查。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句