Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1613232&r1=1613231&r2=1613232&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Thu Jul 24 18:18:50 
2014
@@ -40,7 +40,6 @@ use FindBin;
 use lib "$FindBin::Bin/../../..";
 
 # Configure inheritance
-#use base qw(VCL::Module::OS::Windows);
 use base qw(VCL::Module::OS);
 
 # Specify the version of this module
@@ -1101,7 +1100,7 @@ sub grant_access {
        my $system32_path        = $self->get_system32_path();
        my $request_forimaging   = $self->data->get_request_forimaging();
        
-       if($self->process_connect_methods("", 1) ){
+       if ($self->process_connect_methods("", 1) ){
                notify($ERRORS{'OK'}, 0, "processed connection methods on 
$computer_node_name");
        }
 
@@ -1143,7 +1142,6 @@ sub revoke_access {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
 
        # Disallow RDP connections
@@ -1182,7 +1180,6 @@ sub create_directory {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        
        my $path = shift;
@@ -1199,7 +1196,7 @@ sub create_directory {
 
        # Assemble the Windows shell mkdir command and execute it
        my $mkdir_command = "cmd.exe /c \"mkdir \\\"$path\\\"\"";
-       my ($mkdir_exit_status, $mkdir_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $mkdir_command, '', 
'', 1);
+       my ($mkdir_exit_status, $mkdir_output) = $self->execute($mkdir_command);
        
        if (!defined($mkdir_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
create directory on $computer_node_name: $path");
@@ -1244,9 +1241,7 @@ sub delete_file {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get file path subroutine argument
        my $path_argument = shift;
@@ -1313,7 +1308,7 @@ sub delete_file {
        
        
        # Run the command
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($exit_status)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
delete file: '$path_argument'");
                return;
@@ -1350,9 +1345,6 @@ sub move_file {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Get file path subroutine arguments
        my $source_path = shift;
        my $destination_path = shift;
@@ -1373,7 +1365,7 @@ sub move_file {
 
        # Assemble the Windows shell move command and execute it
        my $move_command = "mv -fv \"$source_path\" \"$destination_path\"";
-       my ($move_exit_status, $move_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $move_command, '', 
'', 1);
+       my ($move_exit_status, $move_output) = $self->execute($move_command, 1);
        if (defined($move_exit_status) && $move_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "file moved: $source_path --> 
$destination_path, output:\n@{$move_output}");
        }
@@ -1406,9 +1398,6 @@ sub delete_files_by_pattern {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $base_directory = shift;
        my $pattern        = shift;
        my $max_depth      = shift || '5';
@@ -1440,7 +1429,7 @@ sub delete_files_by_pattern {
                $command = "/bin/cygpath.exe \"$base_directory_variable\" && 
$command";
        }
        
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 1);
+       my ($exit_status, $output) = $self->execute($command, 1);
        
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
delete files under $base_directory matching pattern $pattern, command: 
$command");
@@ -1486,7 +1475,6 @@ sub file_exists {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        
        # Get the path from the subroutine arguments and make sure it was passed
@@ -1500,7 +1488,7 @@ sub file_exists {
        
        # Assemble the dir command and execute it
        my $dir_command = "cmd.exe /c \"dir /a \\\"$path_dos\\\"\"";
-       my ($dir_exit_status, $dir_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $dir_command, '', 
'', 0);
+       my ($dir_exit_status, $dir_output) = $self->execute($dir_command, 0);
        if (!defined($dir_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
determine if file exists on $computer_node_name: $path");
                return;
@@ -1594,11 +1582,8 @@ sub set_file_owner {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        # Run chown
-       my ($chown_exit_status, $chown_output) = 
run_ssh_command($computer_node_name, $management_node_keys, "/usr/bin/chown.exe 
-vR \"$owner\" \"$file_path\"", '', '', 0);
+       my ($chown_exit_status, $chown_output) = 
$self->execute("/usr/bin/chown.exe -vR \"$owner\" \"$file_path\"", 0);
        
        # Check if exit status is defined - if not, SSH command failed
        if (!defined($chown_output)) {
@@ -1642,11 +1627,10 @@ sub logoff_users {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, "$system32_path/qwinsta.exe", '', '', 1, 60);
+       my ($exit_status, $output) = 
$self->execute("$system32_path/qwinsta.exe", 1, 60);
        if ($exit_status > 0) {
                notify($ERRORS{'WARNING'}, 0, "failed to run qwinsta.exe on 
$computer_node_name, exit status: $exit_status, output:\n" . join("\n", 
@$output));
                return;
@@ -1692,7 +1676,7 @@ sub logoff_users {
                #                                                        
session to log off (default is current).
                #  /V                  Displays information about the actions 
performed.
                # Call logoff.exe, pass it the session
-               my ($logoff_exit_status, $logoff_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
"$system32_path/logoff.exe $session_identifier /V");
+               my ($logoff_exit_status, $logoff_output) = 
$self->execute("$system32_path/logoff.exe $session_identifier /V");
                if ($logoff_exit_status == 0) {
                        notify($ERRORS{'OK'}, 0, "logged off session: 
$session_identifier, output:\n" . join("\n", @$logoff_output));
                }
@@ -1720,7 +1704,6 @@ sub user_exists {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
@@ -1735,7 +1718,7 @@ sub user_exists {
 
        # Attempt to query the user account
        my $query_user_command = "$system32_path/net.exe user \"$username\"";
-       my ($query_user_exit_status, $query_user_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$query_user_command, '', '', '1');
+       my ($query_user_exit_status, $query_user_output) = 
$self->execute($query_user_command, '1');
        if (defined($query_user_exit_status) && $query_user_exit_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "user $username exists on 
$computer_node_name");
                return 1;
@@ -1771,7 +1754,6 @@ sub create_user {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -1795,7 +1777,7 @@ sub create_user {
        # Does not allow for override called from manage_server_access 
        # 1 - allow admin access, set $imagemeta_rootaccess=1
        # 2 - disallow admin access, set $imagemeta_rootaccess=0
-       if($imagemeta_rootaccess) {
+       if ($imagemeta_rootaccess) {
                if ($adminoverride eq '1') {
                        $imagemeta_rootaccess = 1;
                }
@@ -1830,7 +1812,7 @@ sub create_user {
                $add_user_command .= " && $system32_path/net.exe localgroup 
\"Administrators\" \"$username\" /ADD";
        }
 
-       my ($add_user_exit_status, $add_user_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $add_user_command, 
'', '', '1');
+       my ($add_user_exit_status, $add_user_output) = 
$self->execute($add_user_command, '1');
        if (defined($add_user_exit_status) && $add_user_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "added user $username ($password) to 
$computer_node_name");
        }
@@ -1867,7 +1849,6 @@ sub add_user_to_group {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
@@ -1882,7 +1863,7 @@ sub add_user_to_group {
 
        # Attempt to add the user to the group using net.exe localgroup
        my $localgroup_user_command = "$system32_path/net.exe localgroup 
\"$group\" $username /ADD";
-       my ($localgroup_user_exit_status, $localgroup_user_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$localgroup_user_command);
+       my ($localgroup_user_exit_status, $localgroup_user_output) = 
$self->execute($localgroup_user_command);
        if (defined($localgroup_user_exit_status) && 
$localgroup_user_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "added user $username to \"$group\" 
group on $computer_node_name");
        }
@@ -1929,7 +1910,6 @@ sub delete_user {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
@@ -1944,7 +1924,7 @@ sub delete_user {
 
        # Attempt to delete the user account
        my $delete_user_command = "$system32_path/net.exe user $username 
/DELETE";
-       my ($delete_user_exit_status, $delete_user_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$delete_user_command);
+       my ($delete_user_exit_status, $delete_user_output) = 
$self->execute($delete_user_command);
        if (defined($delete_user_exit_status) && $delete_user_exit_status == 0) 
{
                notify($ERRORS{'OK'}, 0, "deleted user $username from 
$computer_node_name");
        }
@@ -2077,7 +2057,6 @@ sub enable_user {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
@@ -2097,7 +2076,7 @@ sub enable_user {
 
        # Attempt to enable the user account (set ACTIVE=YES)
        notify($ERRORS{'DEBUG'}, 0, "enabling user $username on 
$computer_node_name");
-       my ($enable_exit_status, $enable_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
"$system32_path/net.exe user $username /ACTIVE:YES");
+       my ($enable_exit_status, $enable_output) = 
$self->execute("$system32_path/net.exe user $username /ACTIVE:YES");
        if ($enable_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "user $username enabled on 
$computer_node_name");
        }
@@ -2174,14 +2153,12 @@ sub disable_pagefile {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Set the registry key to blank
        my $memory_management_key = 
'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory 
Management';
        my $reg_add_command = $system32_path . '/reg.exe add "' . 
$memory_management_key . '" /v PagingFiles /d "" /t REG_MULTI_SZ /f';
-       my ($reg_add_exit_status, $reg_add_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $reg_add_command, 
'', '', 1);
+       my ($reg_add_exit_status, $reg_add_output) = 
$self->execute($reg_add_command, 1);
        if (defined($reg_add_exit_status) && $reg_add_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "set registry key to disable 
pagefile");
        }
@@ -2241,14 +2218,12 @@ sub enable_pagefile {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $memory_management_key = 
'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory 
Management';
        
        my $reg_add_command = $system32_path . '/reg.exe add "' . 
$memory_management_key . '" /v PagingFiles /d "$SYSTEMDRIVE\\pagefile.sys 0 0" 
/t REG_MULTI_SZ /f';
-       my ($reg_add_exit_status, $reg_add_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $reg_add_command, 
'', '', 1);
+       my ($reg_add_exit_status, $reg_add_output) = 
$self->execute($reg_add_command, 1);
        if (defined($reg_add_exit_status) && $reg_add_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "set registry key to enable pagefile");
        }
@@ -2281,9 +2256,6 @@ sub enable_ipv6 {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
 
@@ -2323,9 +2295,6 @@ sub disable_ipv6 {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
 
@@ -2350,65 +2319,6 @@ EOF
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 import_registry_file
-
- Parameters  :
- Returns     :
- Description :
-
-=cut
-
-sub import_registry_file {
-       my $self = shift;
-       if (ref($self) !~ /windows/i) {
-               notify($ERRORS{'CRITICAL'}, 0, "subroutine was called as a 
function, it must be called as a class method");
-               return;
-       }
-
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
-       my $registry_file_path = shift;
-       if (!defined($registry_file_path) || !$registry_file_path) {
-               notify($ERRORS{'WARNING'}, 0, "registry file path was not 
passed correctly as an argument");
-               return;
-       }
-
-       my $registry_file_contents = `cat $registry_file_path`;
-       notify($ERRORS{'DEBUG'}, 0, "registry file '$registry_file_path' 
contents:\n$registry_file_contents");
-
-       $registry_file_contents =~ s/([\"])/\\$1/gs;
-       $registry_file_contents =~ s/\\+"/\\"/gs;
-
-       # Specify where on the node the temporary registry file will reside
-       my $temp_registry_file_path = 'C:/Cygwin/tmp/vcl_import.reg';
-
-       # Echo the registry string to a file on the node
-       my $echo_registry_command = "/usr/bin/echo.exe -E 
\"$registry_file_contents\" > " . $temp_registry_file_path;
-       my ($echo_registry_exit_status, $echo_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$echo_registry_command, '', '', 1);
-       if (defined($echo_registry_exit_status) && $echo_registry_exit_status 
== 0) {
-               notify($ERRORS{'OK'}, 0, "registry file contents echoed to 
$temp_registry_file_path");
-       }
-       elsif ($echo_registry_exit_status) {
-               notify($ERRORS{'WARNING'}, 0, "failed to echo registry file 
contents to $temp_registry_file_path, exit status: $echo_registry_exit_status, 
output:\n@{$echo_registry_output}");
-               return;
-       }
-       else {
-               notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
echo registry file contents to $temp_registry_file_path");
-               return;
-       }
-       
-       # Run reg.exe IMPORT
-       if (!$self->reg_import($temp_registry_file_path)) {
-               notify($ERRORS{'WARNING'}, 0, "failed to import registry string 
contents from $temp_registry_file_path");
-               return;
-       }
-       
-       return 1;
-} ## end sub import_registry_file
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 import_registry_string
 
  Parameters  :
@@ -2424,9 +2334,6 @@ sub import_registry_string {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string = shift;
        if (!defined($registry_string) || !$registry_string) {
                notify($ERRORS{'WARNING'}, 0, "registry file path was not 
passed correctly as an argument");
@@ -2461,7 +2368,7 @@ sub import_registry_string {
 
        # Echo the registry string to a file on the node
        my $echo_registry_command = "rm -f $temp_registry_file_path; 
/usr/bin/echo.exe -E \"$registry_string\" > " . $temp_registry_file_path;
-       my ($echo_registry_exit_status, $echo_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$echo_registry_command, '', '', 0);
+       my ($echo_registry_exit_status, $echo_registry_output) = 
$self->execute($echo_registry_command, 0);
        if (defined($echo_registry_exit_status) && $echo_registry_exit_status 
== 0) {
                notify($ERRORS{'DEBUG'}, 0, "registry string contents echoed to 
$temp_registry_file_path");
        }
@@ -2531,9 +2438,7 @@ sub reg_query {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $key_argument = shift;
@@ -2579,7 +2484,7 @@ sub reg_query {
        $command .= " 2>/dev/null";
        
        # Run reg.exe QUERY
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
query registry key: $key_argument");
                return;
@@ -2763,9 +2668,7 @@ sub reg_add {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $registry_key = shift;
@@ -2810,7 +2713,7 @@ sub reg_add {
        
        # Run reg.exe ADD
        my $add_registry_command = $system32_path . "/reg.exe ADD 
\"$registry_key\" $value_parameter /t $registry_type /d \"$registry_data\" /f";
-       my ($add_registry_exit_status, $add_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$add_registry_command, '', '', 1);
+       my ($add_registry_exit_status, $add_registry_output) = 
$self->execute($add_registry_command, 1);
        if (defined($add_registry_exit_status) && $add_registry_exit_status == 
0) {
                notify($ERRORS{'DEBUG'}, 0, "added registry key: $registry_key, 
output:\n" . join("\n", @$add_registry_output));
        }
@@ -2843,9 +2746,7 @@ sub reg_delete {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $registry_key = shift;
@@ -2867,7 +2768,7 @@ sub reg_delete {
                $delete_registry_command = $system32_path . "/reg.exe DELETE 
\"$registry_key\" /f";
                $registry_value = '*';
        }
-       my ($delete_registry_exit_status, $delete_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$delete_registry_command, '', '', 1);
+       my ($delete_registry_exit_status, $delete_registry_output) = 
$self->execute($delete_registry_command, 1);
        if (defined($delete_registry_exit_status) && 
$delete_registry_exit_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "deleted registry key: 
$registry_key, value: $registry_value, output:\n" . join("\n", 
@$delete_registry_output));
        }
@@ -2904,9 +2805,7 @@ sub reg_import {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the registry file path argument
        my $registry_file_path = shift;
@@ -2917,7 +2816,7 @@ sub reg_import {
        
        # Run reg.exe IMPORT
        my $command .= $system32_path . "/reg.exe IMPORT $registry_file_path";
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
import registry file: $registry_file_path");
                return;
@@ -2950,9 +2849,7 @@ sub reg_export {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $root_key = shift;
@@ -2974,7 +2871,7 @@ sub reg_export {
        
        # Run reg.exe EXPORT
        my $command .= "cmd.exe /c \"del /Q \\\"$registry_file_path.tmp\\\" 
2>NUL & $system32_path/reg.exe EXPORT $root_key \\\"$registry_file_path.tmp\\\" 
&& type \\\"$registry_file_path.tmp\\\" > \\\"$registry_file_path\\\" && del /Q 
\\\"$registry_file_path.tmp\\\"\"";
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 1);
+       my ($exit_status, $output) = $self->execute($command, 1);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
export registry key $root_key to file: $registry_file_path");
                return;
@@ -3007,9 +2904,7 @@ sub reg_load {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $root_key = shift;
@@ -3029,7 +2924,7 @@ sub reg_load {
        
        # Run reg.exe LOAD
        my $command .= "$system32_path/reg.exe LOAD $root_key $hive_file_path";
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
load registry hive file '$hive_file_path' into key $root_key");
                return;
@@ -3062,9 +2957,7 @@ sub reg_unload {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $root_key = shift;
@@ -3078,7 +2971,7 @@ sub reg_unload {
        
        # Run reg.exe UNLOAD
        my $command .= "$system32_path/reg.exe UNLOAD $root_key";
-       my ($exit_status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
unload registry hive: $root_key");
                return;
@@ -3111,9 +3004,7 @@ sub add_hklm_run_registry_key {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $command_name = shift;
        my $command      = shift;
@@ -3159,7 +3050,7 @@ EOF
        
        # Attempt to query the registry key to make sure it was added
        my $reg_query_command = $system32_path . '/reg.exe query 
"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"';
-       my ($reg_query_exit_status, $reg_query_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $reg_query_command, 
'', '', 1);
+       my ($reg_query_exit_status, $reg_query_output) = 
$self->execute($reg_query_command, 1);
        if (defined($reg_query_exit_status) && $reg_query_exit_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "queried '$command_name' registry 
key:\n" . join("\n", @{$reg_query_output}));
        }
@@ -3192,9 +3083,7 @@ sub delete_hklm_run_registry_key {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $key_name = shift;
        
@@ -3206,7 +3095,7 @@ sub delete_hklm_run_registry_key {
        
        # Attempt to query the registry key to make sure it was added
        my $reg_delete_command = $system32_path . '/reg.exe delete 
"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" /v "' . $key_name . 
'" /F';
-       my ($reg_delete_exit_status, $reg_delete_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$reg_delete_command, '', '', 1);
+       my ($reg_delete_exit_status, $reg_delete_output) = 
$self->execute($reg_delete_command, 1);
        if (defined($reg_delete_exit_status) && $reg_delete_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "deleted '$key_name' run registry 
key:\n" . join("\n", @{$reg_delete_output}));
        }
@@ -3248,8 +3137,7 @@ sub set_scheduled_task_credentials {
                return;
        }
        
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $command = "$system32_path/schtasks.exe /Change /RU \"$username\" 
/RP \"$password\" /TN \"$task_name\"";
        my ($exit_status, $output) = $self->execute($command);
@@ -3296,7 +3184,6 @@ sub delete_scheduled_task {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3304,7 +3191,7 @@ sub delete_scheduled_task {
        
        # Run schtasks.exe to delete any existing task
        my $delete_task_command = "$system32_path/schtasks.exe /Delete /F /TN 
\"$task_name\"";
-       my ($delete_task_exit_status, $delete_task_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$delete_task_command);
+       my ($delete_task_exit_status, $delete_task_output) = 
$self->execute($delete_task_command);
        if (defined($delete_task_exit_status) && $delete_task_exit_status == 0) 
{
                notify($ERRORS{'OK'}, 0, "deleted existing scheduled task 
'$task_name' on $computer_node_name");
        }
@@ -3340,7 +3227,6 @@ sub create_startup_scheduled_task {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3375,7 +3261,7 @@ sub create_startup_scheduled_task {
        # Occasionally see this error even though it schtasks.exe returns exit 
status 0:
        # WARNING: The Scheduled task "System Startup Script" has been created, 
but may not run because the account information could not be set.
        my $create_task_command = "$system32_path/schtasks.exe /Create /RU 
\"$task_user\" /RP \"$task_password\" /SC ONSTART /TN \"$task_name\" /TR 
\"$task_command\"";
-       my ($create_task_exit_status, $create_task_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$create_task_command);
+       my ($create_task_exit_status, $create_task_output) = 
$self->execute($create_task_command);
        if (defined($create_task_output) && grep(/could not be set/i, 
@{$create_task_output})) {
                notify($ERRORS{'WARNING'}, 0, "created scheduled task 
'$task_name' on $computer_node_name but error occurred: " . join("\n", 
@{$create_task_output}));
                return 0;
@@ -3412,9 +3298,6 @@ sub enable_autoadminlogon {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
 
@@ -3455,9 +3338,6 @@ sub disable_autoadminlogon {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<EOF;
 Windows Registry Editor Version 5.00
 
@@ -3497,7 +3377,6 @@ sub create_eventlog_entry {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3511,7 +3390,7 @@ sub create_eventlog_entry {
 
        # Run eventcreate.exe to create an event log entry
        my $eventcreate_command = $system32_path . '/eventcreate.exe /T 
INFORMATION /L APPLICATION /SO VCL /ID 555 /D "' . $message . '"';
-       my ($eventcreate_exit_status, $eventcreate_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$eventcreate_command);
+       my ($eventcreate_exit_status, $eventcreate_output) = 
$self->execute($eventcreate_command);
        if (defined($eventcreate_exit_status) && $eventcreate_exit_status == 0) 
{
                notify($ERRORS{'OK'}, 0, "created event log entry on 
$computer_node_name: $message");
        }
@@ -3684,7 +3563,6 @@ sub shutdown {
        # Get the argument that determines whether or not to disable DHCP 
before shutting down computer
        my $enable_dhcp = shift;
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3741,7 +3619,7 @@ sub shutdown {
                        sleep 10;
                }
                
-               my ($shutdown_exit_status, $shutdown_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $shutdown_command);
+               my ($shutdown_exit_status, $shutdown_output) = 
$self->execute($shutdown_command);
                if (!defined($shutdown_output)) {
                        notify($ERRORS{'WARNING'}, 0, "failed to execute ssh 
command to shutdown $computer_node_name");
                        last;
@@ -3795,9 +3673,7 @@ sub set_service_startup_mode {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $service_name = shift;
        my $startup_mode = shift;
@@ -3819,7 +3695,7 @@ sub set_service_startup_mode {
 
        # Use sc.exe to change the start mode
        my $service_startup_command = $system32_path . '/sc.exe config ' . 
"$service_name start= $startup_mode";
-       my ($service_startup_exit_status, $service_startup_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$service_startup_command);
+       my ($service_startup_exit_status, $service_startup_output) = 
$self->execute($service_startup_command);
        if (defined($service_startup_output) && grep(/service does not exist/, 
@$service_startup_output)) {
                notify($ERRORS{'WARNING'}, 0, "$service_name service startup 
mode not set because service does not exist");
                return;
@@ -3856,7 +3732,6 @@ sub defragment_hard_drive {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3903,8 +3778,6 @@ sub prepare_post_load {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
        my $end_state = $self->{end_state} || 'off';
        
        # Set the DevicePath registry key
@@ -3961,7 +3834,6 @@ sub set_service_credentials {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -3978,7 +3850,7 @@ sub set_service_credentials {
 
        # Attempt to set the service logon user name and password
        my $service_logon_command = $system32_path . '/sc.exe config ' . 
$service_name . ' obj= ".\\' . $username . '" password= "' . $password . '"';
-       my ($service_logon_exit_status, $service_logon_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$service_logon_command);
+       my ($service_logon_exit_status, $service_logon_output) = 
$self->execute($service_logon_command);
        if (defined($service_logon_exit_status) && $service_logon_exit_status 
== 0) {
                notify($ERRORS{'OK'}, 0, "changed logon credentials for 
'$service_name' service to $username ($password) on $computer_node_name");
        }
@@ -4087,8 +3959,6 @@ sub get_services_using_login_id {
                return;
        }
        
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        my $login_id = shift;
        if (!$login_id) {
                notify($ERRORS{'WARNING'}, 0, "unable to get services using 
login id, login id argument was not passed correctly");
@@ -4132,7 +4002,6 @@ sub disable_scheduled_task {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
@@ -4145,7 +4014,7 @@ sub disable_scheduled_task {
 
        # Attempt to delete the user account
        my $schtasks_command = $system32_path . '/schtasks.exe /Change /DISABLE 
/TN "' . $task_name . '"';
-       my ($schtasks_exit_status, $schtasks_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $schtasks_command, 
'', '', 1);
+       my ($schtasks_exit_status, $schtasks_output) = 
$self->execute($schtasks_command, 1);
        if (!defined($schtasks_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to 
disable $task_name scheduled task on $computer_node_name");
                return;
@@ -4297,9 +4166,7 @@ sub disable_dynamic_dns {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
@@ -4348,7 +4215,7 @@ EOF
        $netsh_command .= " ;";
        
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        if (defined($netsh_exit_status)  && $netsh_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "disabled dynamic DNS registration on 
public and private adapters");
        }
@@ -4381,9 +4248,6 @@ sub disable_netbios {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Attempt to query the registry for the NetBT service parameters
        my $interface_registry_data = 
$self->reg_query('HKLM/SYSTEM/CurrentControlSet/Services/NetBT/Parameters/Interfaces');
        if (!$interface_registry_data) {
@@ -4426,9 +4290,6 @@ sub set_computer_description {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Attempt to get the description from the arguments
        my $description = shift;
        if (!$description) {
@@ -4472,8 +4333,6 @@ sub set_my_computer_name {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        my $image_prettyname     = $self->data->get_image_prettyname();
        
@@ -4481,7 +4340,7 @@ sub set_my_computer_name {
        $value = $image_prettyname if !$value;
 
        my $add_registry_command .= $system32_path . "/reg.exe add 
\"HKCR\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\" /v LocalizedString /t 
REG_EXPAND_SZ /d \"$value\" /f";
-       my ($add_registry_exit_status, $add_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$add_registry_command, '', '', 1);
+       my ($add_registry_exit_status, $add_registry_output) = 
$self->execute($add_registry_command, 1);
        if (defined($add_registry_exit_status) && $add_registry_exit_status == 
0) {
                notify($ERRORS{'OK'}, 0, "my computer name changed to 
'$value'");
        }
@@ -5068,9 +4927,7 @@ sub firewall_enable_ping {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        $netsh_command .= "$system32_path/netsh.exe firewall set icmpsetting";
@@ -5079,7 +4936,7 @@ sub firewall_enable_ping {
        $netsh_command .= " profile = ALL";
 
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow ping");
@@ -5113,9 +4970,7 @@ sub firewall_enable_ping_private {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5163,7 +5018,7 @@ sub firewall_enable_ping_private {
        }
        
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow ping on 
private interface");
@@ -5197,9 +5052,7 @@ sub firewall_disable_ping {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5242,7 +5095,7 @@ sub firewall_disable_ping {
        $netsh_command .= " profile = ALL";
        
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to disallow 
ping");
@@ -5279,9 +5132,7 @@ sub firewall_enable_ssh {
        # Check if the remote IP was passed correctly as an argument
        my $remote_ip = shift;
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5333,7 +5184,7 @@ sub firewall_enable_ssh {
        }
 
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow SSH from 
$remote_ip");
@@ -5367,9 +5218,7 @@ sub firewall_enable_ssh_private {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5419,7 +5268,7 @@ sub firewall_enable_ssh_private {
        }
        
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow SSH on 
private interface");
@@ -5456,9 +5305,7 @@ sub firewall_enable_rdp {
        # Check if the remote IP was passed correctly as an argument
        my $remote_ip = shift;
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5482,7 +5329,7 @@ sub firewall_enable_rdp {
        }
 
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow RDP from 
$remote_ip");
@@ -5516,9 +5363,7 @@ sub firewall_enable_rdp_private {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5572,7 +5417,7 @@ sub firewall_enable_rdp_private {
        }
        
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to allow RDP on 
private interface");
@@ -5606,9 +5451,7 @@ sub firewall_disable_rdp {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $netsh_command;
        
@@ -5651,7 +5494,7 @@ sub firewall_disable_rdp {
        $netsh_command .= " profile = ALL";
 
        # Execute the netsh.exe command
-       my ($netsh_exit_status, $netsh_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $netsh_command);
+       my ($netsh_exit_status, $netsh_output) = $self->execute($netsh_command);
        
        if (defined($netsh_output)  && @$netsh_output[-1] =~ /(Ok|The object 
already exists)/i) {
                notify($ERRORS{'OK'}, 0, "configured firewall to disallow RDP");
@@ -5820,7 +5663,8 @@ sub get_network_configuration {
        }
        
        $self->{network_configuration} = $network_configuration;
-       #can produce large output, if you need to monitor the configuration 
setting uncomment the below output statement
+       
+       # Can produce large output, if you need to monitor the configuration 
setting uncomment the below output statement
        #notify($ERRORS{'DEBUG'}, 0, "retrieved network configuration:\n" . 
format_data($self->{network_configuration}));
        return $self->{network_configuration};
 }
@@ -5941,8 +5785,7 @@ sub enable_dhcp {
                return;
        }
 
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $interface_name = shift;
        if (!$interface_name) {
@@ -6008,8 +5851,7 @@ sub is_dhcp_enabled {
                return;
        }
        
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $show_dhcp_command = "$system32_path/netsh.exe interface ip show 
address name=\"$interface_name\"";
        my ($show_dhcp_status, $show_dhcp_output) = 
$self->execute($show_dhcp_command);
@@ -6048,8 +5890,7 @@ sub ipconfig_renew {
                return;
        }
 
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Delete cached network configuration information
        delete $self->{network_configuration};
@@ -6119,9 +5960,7 @@ sub delete_capture_configuration_files {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Remove old logon and logoff scripts
        if ($self->file_exists($system32_path . 
'/GroupPolicy/User/Scripts/*VCL*')) {
@@ -6171,9 +6010,7 @@ sub add_group_policy_script {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $stage_argument = shift;
@@ -6182,7 +6019,7 @@ sub add_group_policy_script {
        if (!$stage_argument || $stage_argument !~ /^(logon|logoff)$/i) {
                notify($ERRORS{'WARNING'}, 0, "stage (logon/logoff) argument 
was not specified");
                return;
-       }       
+       }
        if (!$cmdline_argument) {
                notify($ERRORS{'WARNING'}, 0, "CmdLine argument was not 
specified");
                return;
@@ -6209,7 +6046,7 @@ sub add_group_policy_script {
        
        # Set the owner of scripts.ini to root
        my $chown_command = "touch $scripts_ini && chown root $scripts_ini";
-       my ($chown_status, $chown_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $chown_command);
+       my ($chown_status, $chown_output) = $self->execute($chown_command);
        if (defined($chown_status) && $chown_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "set root as owner of scripts.ini");
        }
@@ -6222,7 +6059,7 @@ sub add_group_policy_script {
        
        # Set the permissions of scripts.ini to 664
        my $chmod_command = "chmod 664 $scripts_ini";
-       my ($chmod_status, $chmod_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $chmod_command);
+       my ($chmod_status, $chmod_output) = $self->execute($chmod_command);
        if (defined($chmod_status) && $chmod_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran chmod on scripts.ini");
        }
@@ -6235,7 +6072,7 @@ sub add_group_policy_script {
        
        # Clear hidden, system, and readonly flags on scripts.ini
        my $attrib_command = "attrib -H -S -R $scripts_ini";
-       my ($attrib_status, $attrib_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $attrib_command);
+       my ($attrib_status, $attrib_output) = $self->execute($attrib_command);
        if (defined($attrib_status) && $attrib_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran attrib -H -S -R on 
scripts.ini");
        }
@@ -6248,7 +6085,7 @@ sub add_group_policy_script {
        
        # Get the contents of scripts.ini
        my $cat_command = "cat $scripts_ini";
-       my ($cat_status, $cat_output) = run_ssh_command($computer_node_name, 
$management_node_keys, $cat_command, '', '', 1);
+       my ($cat_status, $cat_output) = $self->execute($cat_command, 1);
        if (defined($cat_status) && $cat_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "retrieved scripts.ini contents:\n" 
. join("\n", @{$cat_output}));
        }
@@ -6368,7 +6205,7 @@ sub add_group_policy_script {
        
        # Echo the modified contents to scripts.ini
        my $echo_command = "echo \"$scripts_ini_modified\" > $scripts_ini";
-       my ($echo_status, $echo_output) = run_ssh_command($computer_node_name, 
$management_node_keys, $echo_command);
+       my ($echo_status, $echo_output) = $self->execute($echo_command);
        if (defined($echo_status) && $echo_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "echo'd modified contents to 
scripts.ini");
        }
@@ -6386,7 +6223,7 @@ sub add_group_policy_script {
        
        # Get the modified contents of scripts.ini
        my $cat_modified_command = "cat $scripts_ini";
-       my ($cat_modified_status, $cat_modified_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$cat_modified_command, '', '', 1);
+       my ($cat_modified_status, $cat_modified_output) = 
$self->execute($cat_modified_command, 1);
        if (defined($cat_modified_status) && $cat_modified_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "retrieved modified scripts.ini 
contents");
        }
@@ -6421,9 +6258,7 @@ sub remove_group_policy_script {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get the arguments
        my $stage_argument = shift;
@@ -6431,7 +6266,7 @@ sub remove_group_policy_script {
        if (!$stage_argument || $stage_argument !~ /^(logon|logoff)$/i) {
                notify($ERRORS{'WARNING'}, 0, "stage (logon/logoff) argument 
was not specified");
                return;
-       }       
+       }
        if (!$cmdline_argument) {
                notify($ERRORS{'WARNING'}, 0, "CmdLine argument was not 
specified");
                return;
@@ -6458,7 +6293,7 @@ sub remove_group_policy_script {
        
        # Set the owner of scripts.ini to root
        my $chown_command = "touch $scripts_ini && chown root $scripts_ini";
-       my ($chown_status, $chown_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $chown_command);
+       my ($chown_status, $chown_output) = $self->execute($chown_command);
        if (defined($chown_output) && grep(/no such file/i, @$chown_output)) {
                notify($ERRORS{'DEBUG'}, 0, "scripts.ini file does not exist, 
nothing to remove");
                return 1;
@@ -6475,7 +6310,7 @@ sub remove_group_policy_script {
        
        # Set the permissions of scripts.ini to 664
        my $chmod_command = "chmod 664 $scripts_ini";
-       my ($chmod_status, $chmod_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $chmod_command);
+       my ($chmod_status, $chmod_output) = $self->execute($chmod_command);
        if (defined($chmod_status) && $chmod_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran chmod on scripts.ini");
        }
@@ -6488,7 +6323,7 @@ sub remove_group_policy_script {
        
        # Clear hidden, system, and readonly flags on scripts.ini
        my $attrib_command = "attrib -H -S -R $scripts_ini";
-       my ($attrib_status, $attrib_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $attrib_command);
+       my ($attrib_status, $attrib_output) = $self->execute($attrib_command);
        if (defined($attrib_status) && $attrib_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran attrib -H -S -R on 
scripts.ini");
        }
@@ -6501,7 +6336,7 @@ sub remove_group_policy_script {
        
        # Get the contents of scripts.ini
        my $cat_command = "cat $scripts_ini";
-       my ($cat_status, $cat_output) = run_ssh_command($computer_node_name, 
$management_node_keys, $cat_command, '', '', 1);
+       my ($cat_status, $cat_output) = $self->execute($cat_command, 1);
        if (defined($cat_status) && $cat_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "retrieved scripts.ini contents:\n" 
. join("\n", @{$cat_output}));
        }
@@ -6611,7 +6446,7 @@ sub remove_group_policy_script {
        
        # Echo the modified contents to scripts.ini
        my $echo_command = "echo \"$scripts_ini_modified\" > $scripts_ini";
-       my ($echo_status, $echo_output) = run_ssh_command($computer_node_name, 
$management_node_keys, $echo_command);
+       my ($echo_status, $echo_output) = $self->execute($echo_command);
        if (defined($echo_status) && $echo_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "echo'd modified contents to 
scripts.ini");
        }
@@ -6629,7 +6464,7 @@ sub remove_group_policy_script {
        
        # Get the modified contents of scripts.ini
        my $cat_modified_command = "cat $scripts_ini";
-       my ($cat_modified_status, $cat_modified_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$cat_modified_command, '', '', 1);
+       my ($cat_modified_status, $cat_modified_output) = 
$self->execute($cat_modified_command, 1);
        if (defined($cat_modified_status) && $cat_modified_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "retrieved modified scripts.ini 
contents");
        }
@@ -6665,12 +6500,10 @@ sub run_gpupdate {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $gpupdate_command = "cmd.exe /c $system32_path/gpupdate.exe /Force";
-       my ($gpupdate_status, $gpupdate_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $gpupdate_command);
+       my ($gpupdate_status, $gpupdate_output) = 
$self->execute($gpupdate_command);
        if (defined($gpupdate_output) && !grep(/error/i, @{$gpupdate_output})) {
                notify($ERRORS{'OK'}, 0, "ran gpupdate /force");
        }
@@ -6703,9 +6536,6 @@ sub run_unix2dos {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Get the arguments
        my $file_path = shift;
        if (!$file_path) {
@@ -6715,7 +6545,7 @@ sub run_unix2dos {
 
        # Run unix2dos on scripts.ini
        my $unix2dos_command = "unix2dos $file_path";
-       my ($unix2dos_status, $unix2dos_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $unix2dos_command);
+       my ($unix2dos_status, $unix2dos_output) = 
$self->execute($unix2dos_command);
        if (defined($unix2dos_status) && $unix2dos_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran unix2dos on $file_path");
        }
@@ -6748,9 +6578,6 @@ sub search_and_replace_in_files {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Get the arguments
        my $base_directory = shift;
        my $search_pattern = shift;
@@ -6780,7 +6607,7 @@ sub search_and_replace_in_files {
        
        # Run grep to find files matching pattern
        my $grep_command = "/bin/grep -ilr \"$search_pattern\" 
\"$base_directory\" 2>&1 | grep -Ev \"\.(exe|dll)\"";
-       my ($grep_status, $grep_output) = run_ssh_command($computer_node_name, 
$management_node_keys, $grep_command, '', '', 0);
+       my ($grep_status, $grep_output) = $self->execute($grep_command, 0);
        if (!defined($grep_status)) {
                notify($ERRORS{'WARNING'}, 0, "unable to run ssh command to run 
grep on directory: $base_directory, pattern: $search_pattern");
                return;
@@ -6811,7 +6638,7 @@ sub search_and_replace_in_files {
                $matching_file =~ s/\\+/\//g;
                # Run grep to find files matching pattern
                my $sed_command = "/bin/sed -i -e 
\"s/$search_pattern/$replace_string/\" \"$matching_file\"";
-               my ($sed_status, $sed_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $sed_command, '', 
'', 0);
+               my ($sed_status, $sed_output) = $self->execute($sed_command, 0);
                if (!defined($sed_status)) {
                        notify($ERRORS{'WARNING'}, 0, "unable to run ssh 
command to run sed on file: $matching_file");
                        $sed_error_count++;
@@ -6862,9 +6689,9 @@ sub copy_capture_configuration_files {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL module object method");
-               return; 
+               return;
        }
-
+       
        my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
@@ -6951,14 +6778,13 @@ sub clean_hard_drive {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
        
        # Run dism.exe
        # The dism.exe file may not be present
        my $dism_command = "$system32_path/dism.exe /online /cleanup-image 
/spsuperseded";
-       my ($dism_exit_status, $dism_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $dism_command, '', 
'', 1);
+       my ($dism_exit_status, $dism_output) = $self->execute($dism_command, 1);
        if (!defined($dism_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to run 
dism.exe");
                return;
@@ -7111,7 +6937,7 @@ EOF
        # Run cleanmgr.exe
        # The cleanmgr.exe file may not be present - it is not installed by 
default on Windows Server 2008 and possibly others
        my $cleanmgr_command = "/bin/cygstart.exe $system32_path/cleanmgr.exe 
/SAGERUN:01";
-       my ($cleanmgr_exit_status, $cleanmgr_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $cleanmgr_command);
+       my ($cleanmgr_exit_status, $cleanmgr_output) = 
$self->execute($cleanmgr_command);
        if (!defined($cleanmgr_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to run 
cleanmgr.exe");
                return;
@@ -7155,9 +6981,7 @@ sub is_process_running {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $process_identifier = shift;
        if (!defined($process_identifier)) {
@@ -7166,7 +6990,7 @@ sub is_process_running {
        }
        
        my $command = "$system32_path/tasklist.exe /FI \"IMAGENAME eq 
$process_identifier\"";
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 0);
+       my ($status, $output) = $self->execute($command, 0);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to 
determine if process is running: $process_identifier");
                return;
@@ -7202,9 +7026,7 @@ sub start_service {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $service_name = shift;
        if (!$service_name) {
@@ -7213,7 +7035,7 @@ sub start_service {
        }
 
        my $command = $system32_path . '/net.exe start "' . $service_name . '"';
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command);
+       my ($status, $output) = $self->execute($command);
        if (defined($status) && $status == 0) {
                notify($ERRORS{'OK'}, 0, "started service: $service_name");
        }
@@ -7249,9 +7071,7 @@ sub stop_service {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $service_name = shift;
        if (!$service_name) {
@@ -7260,7 +7080,7 @@ sub stop_service {
        }
 
        my $command = $system32_path . '/net.exe stop "' . $service_name . '"';
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command);
+       my ($status, $output) = $self->execute($command);
        if (defined($status) && $status == 0) {
                notify($ERRORS{'OK'}, 0, "stopped service: $service_name");
        }
@@ -7301,9 +7121,7 @@ sub restart_service {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $service_name = shift;
        if (!$service_name) {
@@ -7312,7 +7130,7 @@ sub restart_service {
        }
 
        my $command = "$system32_path/net.exe stop \"$service_name\" ; 
$system32_path/net.exe start \"$service_name\"";
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 1);
+       my ($status, $output) = $self->execute($command, 1);
        if (!defined($output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run command to restart 
service: $service_name");
                return;
@@ -7347,9 +7165,7 @@ sub service_exists {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $service_name = shift;
        if (!$service_name) {
@@ -7358,7 +7174,7 @@ sub service_exists {
        }
 
        my $command = $system32_path . '/sc.exe query "' . $service_name . '"';
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command, '', '', 1);
+       my ($status, $output) = $self->execute($command, 1);
        if (defined($output) && grep(/service does not exist/i, @{$output})) {
                notify($ERRORS{'DEBUG'}, 0, "service does not exist: 
$service_name");
                return 0;
@@ -7503,13 +7319,11 @@ sub get_task_list {
                return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Attempt to run tasklist.exe with /NH for no header
        my $tasklist_command = $system32_path . '/tasklist.exe /NH /V';
-       my ($tasklist_exit_status, $tasklist_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $tasklist_command, 
'', '', 0);
+       my ($tasklist_exit_status, $tasklist_output) = 
$self->execute($tasklist_command, 0);
        if (defined($tasklist_exit_status) && $tasklist_exit_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran tasklist.exe");
        }
@@ -7546,13 +7360,11 @@ sub get_task_info {
        
        my $pattern = shift;
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Attempt to run tasklist.exe with /NH for no header
        my $tasklist_command = $system32_path . '/tasklist.exe /V /FO CSV';
-       my ($tasklist_exit_status, $tasklist_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $tasklist_command, 
'', '', 0);
+       my ($tasklist_exit_status, $tasklist_output) = 
$self->execute($tasklist_command, 0);
        if (defined($tasklist_exit_status) && $tasklist_exit_status == 0) {
                notify($ERRORS{'DEBUG'}, 0, "ran tasklist.exe");
        }
@@ -7672,9 +7484,9 @@ sub apply_security_templates {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module:: module object method");
-               return; 
+               return;
        }
-
+       
        my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
@@ -7742,7 +7554,7 @@ sub apply_security_templates {
                        notify($ERRORS{'DEBUG'}, 0, "copied file: 
$computer_node_name:$inf_target_path");
        
                        # Set permission on the copied file
-                       if (!run_ssh_command($computer_node_name, 
$management_node_keys, "/usr/bin/chmod.exe -R 644 $inf_target_path", '', '', 
0)) {
+                       if (!$self->execute("/usr/bin/chmod.exe -R 644 
$inf_target_path", 0)) {
                                notify($ERRORS{'WARNING'}, 0, "could not set 
permissions on $inf_target_path");
                        }
                }
@@ -7767,7 +7579,7 @@ sub apply_security_templates {
                # Task is completed. Warnings occurred for some attributes 
during this operation. It's ok to ignore.
                my $secedit_command = "$secedit_exe /configure /cfg 
\"$inf_target_path\" /db $secedit_db /log $secedit_log /overwrite /quiet";
                
-               my ($secedit_exit_status, $secedit_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $secedit_command, 
'', '', 0);
+               my ($secedit_exit_status, $secedit_output) = 
$self->execute($secedit_command, 0);
                if (defined($secedit_exit_status) && ($secedit_exit_status == 0 
|| $secedit_exit_status == 3)) {
                        notify($ERRORS{'OK'}, 0, "ran secedit.exe to apply 
$inf_file_name");
                }
@@ -7808,19 +7620,17 @@ sub kill_process {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Get the task name pattern argument
        my $task_pattern = shift;
        unless ($task_pattern) {
                notify($ERRORS{'WARNING'}, 0, "task name pattern argument was 
not specified");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Typical output:
        # Task was killed, exit status = 0:
@@ -7834,7 +7644,7 @@ sub kill_process {
        
        # Attempt to kill task
        my $taskkill_command = $system32_path . "/taskkill.exe /F /T /FI 
\"IMAGENAME eq $task_pattern\"";
-       my ($taskkill_exit_status, $taskkill_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $taskkill_command, 
'', '', '1');
+       my ($taskkill_exit_status, $taskkill_output) = 
$self->execute($taskkill_command, '1');
        if (defined($taskkill_exit_status) && $taskkill_exit_status == 0 && (my 
@killed = grep(/SUCCESS/, @$taskkill_output))) {
                notify($ERRORS{'OK'}, 0, scalar @killed . "processe(s) killed 
matching pattern: $task_pattern\n" . join("\n", @killed));
        }
@@ -7871,12 +7681,9 @@ sub disable_ie_configuration_page {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
 
@@ -7924,7 +7731,7 @@ sub enable_rdp_audio {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        my $registry_string .= <<"EOF";
@@ -7975,7 +7782,7 @@ sub enable_client_compatible_rdp_color_d
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        my $registry_string .= <<"EOF";
@@ -8050,7 +7857,6 @@ sub set_computer_name {
                $new_computer_name .= "-$image_id" if $image_id;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        
        my $registry_string .= <<"EOF";
@@ -8072,7 +7878,8 @@ EOF
                notify($ERRORS{'WARNING'}, 0, "failed to set registry keys to 
change the computer name of $computer_node_name to $new_computer_name");
                return;
        }
-
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -8091,12 +7898,9 @@ sub disable_security_center_notification
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<'EOF';
 Windows Registry Editor Version 5.00
 
@@ -8150,12 +7954,9 @@ sub disable_automatic_updates {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<'EOF';
 Windows Registry Editor Version 5.00
 
@@ -8194,12 +7995,9 @@ sub disable_windows_defender {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        my $registry_string .= <<'EOF';
 Windows Registry Editor Version 5.00
 
@@ -8220,7 +8018,7 @@ EOF
        }
        
        # Check if WinDefend service exists
-       if ($self->service_exists('WinDefend')) {       
+       if ($self->service_exists('WinDefend')) {
                # Stop the Windows Defender service
                if ($self->stop_service('WinDefend')) {
                        notify($ERRORS{'DEBUG'}, 0, "stopped the Windows 
Defender service");
@@ -8263,19 +8061,17 @@ sub registry_query_value {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
 
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Get and check the arguments
        my $key_name = shift;
        my $value_name = shift;
        if (!$key_name) {
                notify($ERRORS{'WARNING'}, 0, "registry key name argument was 
not specified");
-               return; 
+               return;
        }
        
        # Assemble the query command string
@@ -8300,7 +8096,7 @@ sub registry_query_value {
        }
        
        # Attempt to query the registry key
-       my ($reg_query_exit_status, $reg_query_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $reg_query_command, 
'', '', 1);
+       my ($reg_query_exit_status, $reg_query_output) = 
$self->execute($reg_query_command, 1);
        if (defined($reg_query_output) && grep(/unable to find the specified 
registry/i, @$reg_query_output)) {
                notify($ERRORS{'OK'}, 0, "registry key or value does not 
exist");
                return;
@@ -8364,12 +8160,10 @@ sub set_static_public_address {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        my $computer_name = $self->data->get_computer_short_name();
 
@@ -8379,7 +8173,7 @@ sub set_static_public_address {
        # Make sure public IP configuration is static or this is a server 
request
        my $ip_configuration = 
$self->data->get_management_node_public_ip_configuration();
        if ($ip_configuration !~ /static/i) {
-                 if( !$server_request_fixedIP ) {
+                 if ( !$server_request_fixedIP ) {
                                notify($ERRORS{'WARNING'}, 0, "static public 
address can only be set if IP configuration is static, current value: 
$ip_configuration \nserver_request_fixedIP=$server_request_fixedIP");
                return;
                }
@@ -8417,9 +8211,9 @@ EOF
                notify($ERRORS{'OK'}, 0, "attempting to set static public IP 
address on $computer_name:\n$configuration_info_string");
        }
 
-   #Try to ping address to make sure it's available
-   #FIXME  -- need to add other tests for checking ip_address is or is not 
available.
-   if(_pingnode($computer_public_ip_address)) {
+   # Try to ping address to make sure it's available
+   # FIXME  -- need to add other tests for checking ip_address is or is not 
available.
+   if (_pingnode($computer_public_ip_address)) {
       notify($ERRORS{'WARNING'}, 0, "ip_address $computer_public_ip_address is 
pingable, can not assign to $computer_name ");
       return;
    }
@@ -8482,15 +8276,12 @@ sub delete_default_routes {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        # Delete all default routes
        my $route_delete_command = "route delete 0.0.0.0";
-       my ($route_delete_exit_status, $route_delete_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$route_delete_command);
+       my ($route_delete_exit_status, $route_delete_output) = 
$self->execute($route_delete_command);
        if (defined($route_delete_exit_status) && $route_delete_exit_status == 
0) {
                notify($ERRORS{'OK'}, 0, "deleted all default routes");
        }
@@ -8522,7 +8313,7 @@ sub set_public_default_route {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Check the management node's DHCP IP configuration mode
@@ -8551,15 +8342,12 @@ sub set_public_default_route {
        # Do this only after successfully retrieving default gateway address
        if (!$self->delete_default_routes()) {
                notify($ERRORS{'WARNING'}, 0, "unable to delete existing 
default routes");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        # Add a persistent route to the public default gateway
        my $route_add_command    = "route -p ADD 0.0.0.0 MASK 0.0.0.0 
$default_gateway METRIC 1";
-       my ($route_add_exit_status, $route_add_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $route_add_command);
+       my ($route_add_exit_status, $route_add_output) = 
$self->execute($route_add_command);
        if (!defined($route_add_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to execute command to add 
persistent route to public default gateway: $default_gateway");
                return;
@@ -8590,15 +8378,12 @@ sub get_volume_list {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
        # Echo the diskpart script to a temp file on the node
        my $for_command = 'for i in `ls /cygdrive 2>/dev/null`; do echo $i; 
done;';
-       my ($for_exit_status, $for_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $for_command, '', 
'', 1);
+       my ($for_exit_status, $for_output) = $self->execute($for_command, 1);
        if (defined($for_exit_status) && $for_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "retrieved drive letter list under 
/cygdrive:\n" . join("\n", @$for_output));
        }
@@ -8639,45 +8424,38 @@ sub configure_time_synchronization {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
-
-       #get Throttle source value from database if set
        my $time_source;
-   my $variable_name = "timesource|" . 
$self->data->get_management_node_hostname();
-   my $variable_name_global = "timesource|global";
-   if(is_variable_set($variable_name)){
-       #fetch variable
-       $time_source = get_variable($variable_name);
-       notify($ERRORS{'DEBUG'}, 0, "time_source is $time_source  set for 
$variable_name");
-    }
-    elsif(is_variable_set($variable_name_global) ) {
-       #fetch variable
-       $time_source = get_variable($variable_name_global);
-       notify($ERRORS{'DEBUG'}, 0, "time_source is $time_source  set for 
$variable_name");
-    }
-        else {
-       $time_source = "time.nist.gov time-a.nist.gov time-b.nist.gov 
time.windows.com";
-       notify($ERRORS{'DEBUG'}, 0, "time_source is not set for $variable_name 
using hardcoded values of $time_source");
-       }       
+       my $variable_name = "timesource|" . 
$self->data->get_management_node_hostname();
+       my $variable_name_global = "timesource|global";
+       if (is_variable_set($variable_name)){
+               $time_source = get_variable($variable_name);
+               notify($ERRORS{'DEBUG'}, 0, "time_source is $time_source  set 
for $variable_name");
+       }
+       elsif (is_variable_set($variable_name_global) ) {
+               $time_source = get_variable($variable_name_global);
+               notify($ERRORS{'DEBUG'}, 0, "time_source is $time_source  set 
for $variable_name");
+       }
+       else {
+               $time_source = "time.nist.gov time-a.nist.gov time-b.nist.gov 
time.windows.com";
+               notify($ERRORS{'DEBUG'}, 0, "time_source is not set for 
$variable_name using hardcoded values of $time_source");
+       }
        
        # Replace commas with single whitespace 
        $time_source =~ s/,/ /g;
        my @time_array = split(/ /, $time_source);
        
-       #Update the registry
-   my $key = 
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers';
-   for my $i (0 .. $#time_array) {
-       my $value = $i+1;
-       if($self->reg_add($key,$value, "REG_SZ", $time_array[$i])){
-       }
-   }
-
+       # Update the registry
+       my $key = 
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers';
+       for my $i (0 .. $#time_array) {
+               my $value = $i+1;
+               $self->reg_add($key,$value, "REG_SZ", $time_array[$i]);
+       }
+       
        # Assemble the time command
        my $time_command;
        
@@ -8696,7 +8474,7 @@ sub configure_time_synchronization {
        $time_command .= "$system32_path/w32tm.exe /resync /nowait";
        
        # Run the assembled command
-       my ($time_exit_status, $time_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $time_command);
+       my ($time_exit_status, $time_output) = $self->execute($time_command);
        if (defined($time_output)  && @$time_output[-1] =~ /The command 
completed successfully/i) {
                notify($ERRORS{'DEBUG'}, 0, "configured and synchronized 
Windows time");
        }
@@ -8736,7 +8514,7 @@ sub is_64_bit {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Check if architecture has previously been determined
@@ -8749,15 +8527,12 @@ sub is_64_bit {
                return 0;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        my $registry_key = 
'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session 
Manager\Environment';
        my $registry_value = 'PROCESSOR_IDENTIFIER';
        
        # Run reg.exe QUERY
        my $query_registry_command .= "reg.exe QUERY \"$registry_key\" /v 
\"$registry_value\"";
-       my ($query_registry_exit_status, $query_registry_output) = 
run_ssh_command($computer_node_name, $management_node_keys, 
$query_registry_command, '', '', 0);
+       my ($query_registry_exit_status, $query_registry_output) = 
$self->execute($query_registry_command, 0);
        
        if (!defined($query_registry_output)) {
                notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to 
query registry key: $registry_key, value: $registry_value");
@@ -8853,7 +8628,7 @@ sub get_product_name {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Check if product name has previously been retrieved from registry
@@ -8862,9 +8637,6 @@ sub get_product_name {
                return $self->{PRODUCT_NAME};
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        # Get the Windows product name from the registry
        my $product_name = $self->reg_query('HKLM/Software/Microsoft/Windows 
NT/CurrentVersion', 'ProductName');
        if ($product_name) {
@@ -8894,14 +8666,14 @@ sub format_path_unix {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Get the path argument
        my $path = shift;
        if (!$path) {
                notify($ERRORS{'WARNING'}, 0, "path argument was not 
specified");
-               return; 
+               return;
        }
        
        # Replace all forward slashes and backslashes with a single forward 
slash
@@ -8932,14 +8704,14 @@ sub format_path_dos {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
        # Get the path argument
        my $path = shift;
        if (!$path) {
                notify($ERRORS{'WARNING'}, 0, "path argument was not 
specified");
-               return; 
+               return;
        }
        
        # Replace all forward slashes with 2 backslashes
@@ -8970,10 +8742,7 @@ sub disable_system_restore {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine was called as a 
function, it must be called as a class method");
                return;
        }
-
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-
+       
        my $registry_string .= <<"EOF";
 Windows Registry Editor Version 5.00
 
@@ -9828,9 +9597,6 @@ sub get_driver_inf_paths {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        # Check if a driver class argument was specified
        my $driver_class = shift;
        if ($driver_class) {
@@ -9854,7 +9620,7 @@ sub get_driver_inf_paths {
        }
        $grep_command .= $drivers_directory;
        
-       my ($grep_exit_status, $grep_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $grep_command, '', 
'', 1);
+       my ($grep_exit_status, $grep_output) = $self->execute($grep_command, 1);
        if (defined($grep_exit_status) && $grep_exit_status > 1) {
                notify($ERRORS{'WARNING'}, 0, "failed to find driver paths, 
exit status: $grep_exit_status, output:\n@{$grep_output}");
                return;
@@ -9897,9 +9663,6 @@ sub set_device_path_key {
                return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       
        my $device_path_value;
        
        # Find the paths of .inf files in the drivers directory
@@ -9955,16 +9718,15 @@ sub disable_hibernation {
        my $self = shift;
        unless (ref($self) && $self->isa('VCL::Module')) {
                notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called 
as a VCL::Module module object method");
-               return; 
+               return;
        }
        
-       my $management_node_keys = $self->data->get_management_node_keys();
        my $computer_node_name   = $self->data->get_computer_node_name();
        my $system32_path        = $self->get_system32_path() || return;
 
        # Run powercfg.exe to disable hibernation
        my $powercfg_command = "$system32_path/powercfg.exe -HIBERNATE OFF";
-       my ($powercfg_exit_status, $powercfg_output) = 
run_ssh_command($computer_node_name, $management_node_keys, $powercfg_command, 
'', '', 1);
+       my ($powercfg_exit_status, $powercfg_output) = 
$self->execute($powercfg_command, 1);
        if (defined($powercfg_exit_status) && $powercfg_exit_status == 0) {
                notify($ERRORS{'OK'}, 0, "disabled hibernation");
        }
@@ -10084,7 +9846,7 @@ sub setup_get_menu {
        my $menu = {
                'Windows Image Configuration' => {
                        'Activation' => {
-                               'Configure Multiple Activation Key (MAK) 
Activation' => \&setup_product_keys,                   
+                               'Configure Multiple Activation Key (MAK) 
Activation' => \&setup_product_keys,
                                'Configure Key Management Service (KMS) 
Activation' => \&setup_kms_servers,
                        }
                },
@@ -10149,6 +9911,8 @@ sub setup_check {
                chomp $message;
                setup_print_wrap("*** $message ***\n\n");
        }
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -10319,6 +10083,8 @@ sub setup_product_keys {
                        }
                }
        }
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -10389,6 +10155,8 @@ sub setup_display_product_key_info {
        
        $product_key_info_string = "<not configured>\n" if 
!$product_key_info_string;
        print "$product_key_info_string";
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -10527,6 +10295,8 @@ sub setup_kms_servers {
                        }
                }
        }
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -10596,6 +10366,8 @@ sub setup_display_kms_server_info {
        
        $kms_server_info_string = "<not configured>\n" if 
!$kms_server_info_string;
        print "$kms_server_info_string";
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -10755,9 +10527,7 @@ sub clear_event_log {
        my @logfile_names = @_;
        @logfile_names = ('Application', 'Security', 'System') if 
!@logfile_names;
        
-       my $management_node_keys = $self->data->get_management_node_keys();
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Assemble the command
        # Call wmic.exe - the WMI shell
@@ -10771,7 +10541,7 @@ sub clear_event_log {
        # Remove the last ' ; ' added to the command
        $command =~ s/[\s;]*$//g;
        
-       my ($status, $output) = run_ssh_command($computer_node_name, 
$management_node_keys, $command);
+       my ($status, $output) = $self->execute($command);
        if (!defined($output)) {
                notify($ERRORS{'DEBUG'}, 0, "failed to run SSH command to clear 
the event log: @logfile_names");
                return;
@@ -11044,9 +10814,8 @@ sub check_connection_on_port {
                return;
        }
        
-       my $management_node_keys             = 
$self->data->get_management_node_keys();
-       my $computer_node_name               = 
$self->data->get_computer_node_name();
-       my $remote_ip                              = 
$self->data->get_reservation_remote_ip();
+       my $computer_node_name          = $self->data->get_computer_node_name();
+       my $remote_ip                   = 
$self->data->get_reservation_remote_ip();
        my $computer_public_ip_address  = 
$self->data->get_computer_public_ip_address();
        my $request_state_name          = $self->data->get_request_state_name();
        
@@ -11401,13 +11170,13 @@ sub install_exe_update {
                notify($ERRORS{'WARNING'}, 0, "failed to execute command to 
install update on $computer_node_name: $command");
                return;
        }
-       elsif ($exit_status eq 194) {
+       elsif ($exit_status eq '194') {
                # Exit status 194 - installed but reboot required
                notify($ERRORS{'DEBUG'}, 0, "installed update on 
$computer_node_name, exit status $exit_status indicates a reboot is required");
                $self->data->set_imagemeta_postoption('reboot');
                return 1;
        }
-       elsif ($exit_status eq 0) {
+       elsif ($exit_status eq '0') {
                notify($ERRORS{'DEBUG'}, 0, "installed update on 
$computer_node_name");
        }
        else {
@@ -11785,6 +11554,8 @@ sub check_image {
                
                $self->update_imagerevision_info($imagerevision_id, join(",", 
@image_user_names_report), $firewall_state);
        }
+       
+       return 1;
 }
 
 #/////////////////////////////////////////////////////////////////////////////
@@ -11871,8 +11642,7 @@ sub get_firewall_state {
                return;
        }
        
-       my $computer_node_name   = $self->data->get_computer_node_name();
-       my $system32_path        = $self->get_system32_path() || return;
+       my $system32_path = $self->get_system32_path() || return;
        
        # Run netsh.exe to get the state of the current firewall profile
        my $command = "$system32_path/netsh.exe firewall show state";
@@ -12027,7 +11797,6 @@ sub get_port_connection_info {
        
        my $computer_node_name = $self->data->get_computer_node_name();
        
-       
        my $command = "netstat -ano";
        my ($exit_status, $output) = $self->execute($command, 0);
        if (!defined($output)) {


Reply via email to