We are trying to complete a project that the previous team failed with.
The product being developed is LAN Windows Server system. The server acts as an admin to client PC's connected on the LAN. This 'Admin' service stores info on all the PC's in the network. Some of these PC's will have a windows client (Delphi .exe) installed. The Admin service will send work requests to this exe. (this is all working)
There are 3 requests that do not work. Create Disk Image (and store this image in Admin database), Wipe/Erase Disks, and Restore Image on local PC from copy stored on server.
The above 3 are currently handled by a Linux in-memory O/S. How? The client .exe alters the boot.ini to boot up with Linux, then issues a reboot command. When Linux boots up into memory it reads a file with BASH scripts (we think) and executes the scripts. After completing the work Linux reboots PC back into windows.
(the above is a summary, there is more to it of course)
The piece we need help with is this:
1. We need to get the in-memory Linux to properly execute the scripts for the work that has been requested by the Admin server. We get parse errors.
2. Information about the work completed must get back to the Admin for storing in the DB. (eg the image being backed up)
3. Upon completion, reboot client PC into Windows.
The above is sort of working now for us with XP PCs. boot.ini is being changed (but not changed back) so linux just keeps rebooting itself. we are createing the image, but its not getting stored in Admin. We are at a loss how to debug linux scripts.
This is all XP. However, with Vista came the new "Boot Loader" or BCD. BCD is the new way. So, in addition to the above which works for XP it wont work for Vista, W7, W8, W10. We need a different approach. Some have suggested Windows PE, while others think a PowerShell executing bcdedit commands would work.
What we want to do here, and dont really care 'how' it is done, is to be able to
1. Create an Image of the client PC partitions and store these on the server. and,
2. Restore the images if requested to do so by the Admin and.
3. Wipe the PC's hard drive if requested to do so by the Admin
Is in-memory Linux the right way? Is Powershell the way to go? Or maybe Windows PE (in memory) might be best choice? Lets talk!
I should add that for you to do this project you will need a couple of local VM's W2003 Server + Windows XP and for BCD testing, a W7 PC.
Update: We have been urged to closely at Windows PE as this in-memory OS could potentially be used to achieve the above goal.