0

我在这一行中特别收到此错误:

# 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 perl 的 32 位服务器上运行,但现在在 64 位服务器上安装了 64 位 perl。

我无法找出未注册的内容

4

1 回答 1

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"
    ;
于 2013-05-10T12:14:31.723 回答