http://qs1969.pair.com?node_id=840884


in reply to Win32::AdminMisc::LogonAsUser does not seem to work.

well, this node is rather old but we hat a smillar problem at perl-community.de here is the code i came up with.
#!/usr/bin/perl use strict; use warnings; package Win32::LSA; use base qw/Win32::API::Interface/; __PACKAGE__->generate( "Advapi32.dll", "LogonUserA", "PPPIIP", "I", "l +ogon_user" ); __PACKAGE__->generate( "Advapi32.dll", "ImpersonateLoggedOnUser", "I", + "I", "impersonate_as" ); __PACKAGE__->generate( "Advapi32.dll", "RevertToSelf", "", "I", "rever +t" ); 1; use Win32 (); my $token = "\0" x 4; my $lsa = Win32::LSA->new; my $rc = $lsa->logon_user( $ENV{USER}, $ENV{DOMAIN}, $ENV{PASS}, 5, 0, + $token); die Win32::FormatMessage( Win32::GetLastError ) unless $rc; print "Logon success\n"; $rc = $lsa->impersonate_as( unpack 'L', $token ); die Win32::FormatMessage( Win32::GetLastError ) unless $rc; print "Impersonate success.\n"; # Place your code here $rc = $lsa->revert; die Win32::FormatMessage( Win32::GetLastError ) unless $rc;
HTH