2013-05-10 213 views
0

我特别是得到这个错误在这行:PERL错误:的Win32 :: OLE 0.1709)0x80040154错误: “未注册的类”

# Calculate password using PwdMangler 
$PwdMangler = Win32::OLE->new('PWDMangler.Mangler'); 
my $error1=Win32::OLE->LastError(); 
print "the error is $error1\n"; 

unless($password = $PwdMangler->Mangle($user , $password_plain)) 
{ 
print $log_file "Error occured in PwdMangler\n"; 
exit (1); 
} 

我收到以下错误:

the error is Win32::OLE 
0.1709) error 0x80040154: "Class not registered" 
can't call method 'Mangle' on an undefined values. 

*早些时候,这个Perl脚本在32位服务器上运行,安装了32个perl,但现在在64位服务器上安装了64位perl。

我无法找出什么是未注册

回答

0

您没有访问注册表编辑器?

该名称必须是HKEY_CLASSES_ROOT下的一个键,或者它不是已注册的类。

因此,与获得Perl中,你可以这样做:

use Win32::TieRegistry(Delimiter=>"/", ArrayValues=>0); 

$diskKey = $Registry->{'Classes/PWDMangler.Mangler/'} 
    or die "'PWDMangler.Mangler' is not a registered class!\n" 
    ; 
+0

感谢您response..i我出的,现在办公室(周末)..我希望这将work..will让你知道。 。 – Praveenks 2013-05-11 01:10:53

+0

我用给定的代码执行了perl脚本..但仍然得到相同的错误.. – Praveenks 2013-05-13 05:09:50