Hi.
I'm trying to determine the best way to programmatically detect when sysprep has finished executing all SynchronousCommands in FirstLogonCommands from C:\Windows\Panther\unattend.xml.
I'd like to do this without having to do something special in unattend.xml, like write to a file as the last command and then if the file exists, then this determines sysprep has finished.
I'm wondering if the commands in unattend.xml are written to the registry (like HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce) and then the commands are actually run from the registry?
Or does sysprep parse the commands and runs them directly from unattend.xml?
What I currently have in mind is as follows:
1. Parse unattend.xml
2. For each SynchronousCommand parse the CommandLine to get the executable
3. Wait until all executables are not running.
I'm just wondering if there's a better way because this process is error-prone in at least two ways:
1. There may be a gap in-between the time subsequent SynchronousCommands are run.
2. This process will wait indefinitely if CommandLine contains a process which is the same as one that is run in the background as a service for example.
Thank you.