use Win32::AdminMisc; use warnings; my $domain = Win32::DomainName(); my $userid = "test"; my $pass = "junk01id"; my $id = Win32::AdminMisc::LogonAsUser( $domain, $userid, $pass); if ( $id ) { my $currentid = Win32::AdminMisc::GetLogonName(); print "Successfully, impersonating $currentid \n"; Win32::AdminMisc::LogoffAsUser; } else { print "Failed Logon\n"; print "Win32::FormatMessage( Win32::GetLastError() ); }