The starting point of LoginAM is the startup task (a windows scheduled task). Almost every functionality of LoginAM is started directly or indirectly by this task. But what does it do? This is something usually discussed in training sessions at customers as part of a more comprehensive training. But even with the more advanced administrators that use LoginAM the knowledge of the task isn’t great. Which really is a pity because when you understand the startup task it makes troubleshooting and creating more complex packages much easier.
Since its the starting point for a lot of the functionality of LoginAM it isn’t something that is easily explained. I’ve made a flowchart to get an overview of the startup task. To keep the overview compact I’ve removed the imaging plugin. I’ll write a blogpost about this later.
I’ll go through the different steps and give you an explanation along the way.
|Cache update & computer policy update||At every boot the LoginAM cache is updated. All other tasks are executed from the cache. Also the computer policy is updated to make sure these are the current policies.|
|Is deployment flag true||This flag can either be set manually or if the previous reboot was a so-called deployment reboot. This flag indicates if the deployment plugin may run.|
|Shortcuts: clear shortcuts||The shortcut cache is cleared. Later on these are filled again with the latest shortcuts that are configured within the packages.|
|System configuration: check and create OU & Move machine to OU.||The system configuration plugin creates the configured OU if needed and moves the machine to this OU if it isn't already in the OU.|
|Process for each package||For each individual package the separate plugins are executed.|
|Computer policy update||Another computer policy update is executed.|
|Check if reboot is required||If one of the packages executed invokes the reboot actionitem further execution of packages is halted and at this point this reboot is executed.|
|Is windows update integration enabled||If all packages have been executed and windows update execution is enabled updates will be installed.|
|Check if reboot is required||If any of the updates requires a reboot this will be executed|
|Set deployment flag to false||If all packages and windows updates have been installed and no more reboots are required the deployment flag will be set to false|
That covers the overview of the entire process. But it’s interesting to zoom in specifically on the “Package process”. For each package all plugins are executed each time the startup task is run. The only plugin that is able to perform a reboot is the deployment plugin. This plugin is the only plugin that runs only once. In the registry (HKLM:\Software\Automation Machine\Tracking) is saved which packages have already processed the deployment plugin this is called the tracking cache. If the deployment plugin initiates a reboot the package process is stopped and the machine immediately receives the reboot. Upon startup the Startup task starts again. Each task is run as it would normally and only the deployment plugin will start where it has left off thanks to the tracking cache. This process is repeated until all packages have been installed. Since the deployment plugin encompasses more then that and the other plugins also have a lot of features I’ll cover that in a separate blogpost.
I hope this was an informative post, if you have any questions please don’t hesitate to leave a comment.