@echo off | |
rem Licensed to the Apache Software Foundation (ASF) under one or more | |
rem contributor license agreements. See the NOTICE file distributed with | |
rem this work for additional information regarding copyright ownership. | |
rem The ASF licenses this file to You under the Apache License, Version 2.0 | |
rem (the "License"); you may not use this file except in compliance with | |
rem the License. You may obtain a copy of the License at | |
rem | |
rem http://www.apache.org/licenses/LICENSE-2.0 | |
rem | |
rem Unless required by applicable law or agreed to in writing, software | |
rem distributed under the License is distributed on an "AS IS" BASIS, | |
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
rem See the License for the specific language governing permissions and | |
rem limitations under the License. | |
rem DESCRIPTION: | |
rem This script runs after an image which is configured to use NewSID is booted. | |
rem It enables autologon, configures a HKLM run key which causes post_load.cmd to | |
rem automatically run for the next user who logs on, sets the computer name, and | |
rem then runs newsid.exe, which reboots the computer. | |
set /A STATUS=0 | |
rem Get the name of this batch file and the directory it is running from | |
set SCRIPT_NAME=%~n0 | |
set SCRIPT_FILENAME=%~nx0 | |
set SCRIPT_DIR=%~dp0 | |
rem Remove trailing slash from SCRIPT_DIR | |
set SCRIPT_DIR=%SCRIPT_DIR:~0,-1% | |
set LOGS_DIR=%SCRIPT_DIR%\..\Logs\%SCRIPT_NAME% | |
if not exist %LOGS_DIR% mkdir %LOGS_DIR% | |
echo ====================================================================== | |
echo %SCRIPT_FILENAME% beginning to run at: %DATE% %TIME% | |
echo Directory %SCRIPT_FILENAME% is running from: %SCRIPT_DIR% | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo %TIME%: Calling %SCRIPT_DIR%\debug_info.cmd... | |
echo *** %SCRIPT_FILENAME% start: *** >> %LOGS_DIR%\debug_info.log | |
start "debug_info.cmd" /WAIT cmd.exe /c "%SCRIPT_DIR%\debug_info.cmd >> %LOGS_DIR%\debug_info.log 2>&1" | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo Sleeping for 5 seconds to allow networking to initialize... | |
C:\Cygwin\bin\sleep.exe 5 2>&1 | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo %TIME%: Executing %SCRIPT_DIR%\autologon_enable.cmd... | |
start "autologon_enable.cmd" /WAIT cmd.exe /c "%SCRIPT_DIR%\autologon_enable.cmd >> %LOGS_DIR%\autologon_enable.log 2>&1" | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo %TIME%: Executing %SCRIPT_DIR%\add_post_load_run_key.cmd... | |
start "add_post_load_run_key.cmd" /WAIT cmd.exe /c "%SCRIPT_DIR%\add_post_load_run_key.cmd >> %LOGS_DIR%\add_post_load_run_key.log 2>&1" | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo %TIME%: Executing %SCRIPT_DIR%\set_computer_name.vbs... | |
start "set_computer_name.vbs" /WAIT cmd.exe /c "C:\Windows\system32\cscript.exe //NoLogo %SCRIPT_DIR%\set_computer_name.vbs >> %LOGS_DIR%\set_computer_name.log 2>&1" | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo Deleting registry HKLM-Run command to run %SCRIPT_FILENAME%... | |
"%SystemRoot%\system32\reg.exe" DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "%SCRIPT_FILENAME%" /f | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo. | |
echo ---------------------------------------------------------------------- | |
echo Adding EulaAccepted registry key so newsid.exe doesn't hang... | |
"%SystemRoot%\system32\reg.exe" ADD "HKEY_CURRENT_USER\Software\Sysinternals\NewSID" /v EulaAccepted /d 1 /t REG_DWORD /f | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo ---------------------------------------------------------------------- | |
echo %TIME%: Executing newsid.exe, this should reboot the computer... | |
start "newsid.exe" /WAIT cmd.exe /c "%SCRIPT_DIR%\..\Utilities\NewSID\newsid.exe /a" | |
echo ERRORLEVEL: %ERRORLEVEL% | |
set /A STATUS+=%ERRORLEVEL% | |
echo ---------------------------------------------------------------------- | |
echo %SCRIPT_FILENAME% finished at: %DATE% %TIME% | |
echo exiting with status: %STATUS% | |
"%SystemRoot%\system32\eventcreate.exe" /T INFORMATION /L APPLICATION /SO %SCRIPT_FILENAME% /ID 555 /D "exit status: %STATUS%" 2>&1 | |
exit /B %STATUS% |