net use \\server\ips$ /user:me pass #### use strict; use warnings; use Win32::Service; my (%list, %status); my %STATE = ( 0 => 'unknown', 1 => 'stopped', 2 => 'starting', 3 => 'stopping', 4 => 'running', 5 => 'resuming', 6 => 'pausing', 7 => 'paused', ); my $display_name = shift @ARGV || die "usage: $0 ServiceName MachineName\n"; my $machine = shift @ARGV || die "usage: $0 ServiceName MachineName\n"; $machine = "\\\\$machine"; $machine =~ s/^\\{2}/\\\\/; print "Please enter the username to connect as:\n"; chomp (my $usr = ); print "Please enter your Password:\n"; chomp (my $pwd = ); my $cmd = "net use $machine\\ipc\$ /user:$usr $pwd"; print "$cmd\n"; system ("$cmd"); if (Win32::Service::GetServices($machine, \%list)) { if (defined $list{$display_name}) { if (Win32::Service::GetStatus($machine, $list{$display_name}, \%status)) { print "=================================================================================================\n"; print "The $display_name service on $machine is " . $STATE{$status{CurrentState}} . "\n"; print "=================================================================================================\n\n"; } else { print "Could not find the '$display_name' service.\n"; print "Names are case sensitive.\n"; } } } else { print "Could Not connect to $machine: "; print Win32::FormatMessage(Win32::GetLastError()), "\n"; } system ("net use $machine\\ipc\$ /d"); #### use strict; use warnings; use Win32::AdminMisc; my $machine = shift @ARGV or die "Usage: $0 ServerName\n"; #$machine = Win32::NodeName() unless($machine = shift @ARGV); $machine = "\\\\$machine"; $machine =~ s/^\\{2}/\\\\/; print "Machine Name: $machine\n"; print "Please enter the username to connect as:\n"; chomp (my $usr = ); print "Please enter your Password:\n"; chomp (my $pwd = ); my $LogonUser = Win32::AdminMisc::GetLogonName(); print "Logon User: $LogonUser\n"; if (Win32::AdminMisc::UserCheckPassword($machine, $usr, $pwd)) { print "$pwd is correct password for $usr on $machine\n"; } else { print "Bad Username or Password\n"; } print "==============================================================\n\n"; if (Win32::AdminMisc::LogonAsUser("$machine", "$usr", "$pwd", LOGON32_LOGON_BATCH)){ print "Successfully logged on.\n"; } else { print "Failed to logon.\n\tError: ", Error(), "\n"; }