You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2009/06/01 21:41:23 UTC

svn commit: r780798 - in /incubator/vcl/trunk/managementnode/lib/VCL/Module/OS: Windows_mod.pm Windows_mod/Version_6/Vista_mod.pm

Author: arkurth
Date: Mon Jun  1 19:41:22 2009
New Revision: 780798

URL: http://svn.apache.org/viewvc?rev=780798&view=rev
Log:
VCL-23
Added prepare_newsid() to Windows_mod.pm. It configures a computer to automatically call the run_newsid.cmd script the next time a user logs on. Also removed call to enable_autoadminlogon() from pre_capture(). The prepare_newsid() or Sysprep script files control this.

Fixed accidental exit call that got saved in Vista_mod.pm.

Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod/Version_6/Vista_mod.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm?rev=780798&r1=780797&r2=780798&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod.pm Mon Jun  1 19:41:22 2009
@@ -323,17 +323,6 @@
 
 =item *
 
-Enable autoadminlogon
-
-=cut
-
-	if (!$self->enable_autoadminlogon()) {
-		notify($ERRORS{'WARNING'}, 0, "unable to enable autoadminlogon");
-		return 0;
-	}
-
-=item *
-
 Set sshd service startup mode to manual
 
 =cut
@@ -2794,6 +2783,74 @@
 
 #/////////////////////////////////////////////////////////////////////////////
 
+=head2 prepare_newsid
+
+ Parameters  : None.
+ Returns     : If successful: true
+               If failed: false
+ Description : This subroutine prepares a computer to automatically run
+               newsid.exe the next time it is booted. Newsid.exe is a utility
+					which generates a new SID (security identifier) for the computer.
+					
+					This subroutine enables autoadminlogon so that root automatically
+					logs on the next time the computer is booted.
+					
+					A registry key is created under
+					HKLM\Software\Microsoft\Windows\CurrentVersion\Run.
+					This key calls the run_newsid.cmd script. This script will run
+					as root when it automatically logs on.
+					
+					The run_newsid.cmd script runs newsid.exe, removes the HKLM...Run
+					key which caused itself to be called, and configures another
+					HKLM...Run key to call post_load.cmd at next logon. The script
+					then reboots the computer.
+
+=cut
+
+sub prepare_newsid {
+	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 $end_state = $self->{end_state} || 'off';
+	
+	# Get the node configuration directory
+	my $node_configuration_directory = $self->get_node_configuration_directory();
+	unless ($node_configuration_directory) {
+		notify($ERRORS{'WARNING'}, 0, "node configuration directory could not be determined");
+		return;
+	}
+	
+	# Add HKLM run key to call run_newsid.cmd after the image comes up
+	if (!$self->add_hklm_run_registry_key('run_newsid.cmd', $node_configuration_directory . '/Scripts/run_newsid.cmd  >> ' . $node_configuration_directory . '/Logs/run_newsid.log')) {
+		notify($ERRORS{'WARNING'}, 0, "unable to create run key to call run_newsid.cmd");
+		return;
+	}
+	
+	# Enable autoadminlogon
+	if (!$self->enable_autoadminlogon()) {
+		notify($ERRORS{'WARNING'}, 0, "unable to enable autoadminlogon");
+		return 0;
+	}
+	
+	exit;
+	# Shut down computer unless end_state argument was passed with a value other than 'off'
+	if ($end_state eq 'off') {
+		if (!$self->shutdown()) {
+			notify($ERRORS{'WARNING'}, 0, "failed to shut down computer");
+			return;
+		}
+	}
+	
+	return 1;
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
 =head2 run_newsid
 
  Parameters  : 

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod/Version_6/Vista_mod.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod/Version_6/Vista_mod.pm?rev=780798&r1=780797&r2=780798&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod/Version_6/Vista_mod.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows_mod/Version_6/Vista_mod.pm Mon Jun  1 19:41:22 2009
@@ -129,7 +129,7 @@
 			return;
 		}
 	}
-exit;
+	
 	notify($ERRORS{'OK'}, 0, "returning 1");
 	return 1;
 } ## end sub pre_capture