The problem: A machine in a frozen state loses all changes made to it at its next reboot. This is great for keeping machines in a consistent state for each user every day in, for example, lab environments. However, when the machine does not come out of a frozen state during a maintenance window, changes to software managed by PDQ Deploy are lost the next time it reboots. This can cause inconsistencies in lab environments and wreak havoc on reporting. How do you go about deploying to computers frozen with Deep Freeze? How can you keep your changes from reboot to reboot?
Faronics has produced a nice utility to allow for Command Line management of the Deep Freeze agent on client machines. When used with PDQ Deploy this shifts responsibility of controlling state away from Deep Freeze Tasks to the PDQ Deploy console itself.
Deploying to computers frozen with Deep Freeze
1. Grab yourself a copy of DFC.exe. You can get this from the downloads section of Faronic’s website, but if not you can reach out to their support and they will provide you with a copy. According to the Deep Freeze comparison chart DFC is available in Deep Freeze Enterprise and Cloud. It is not offered in the Standard versions.
2. Configure an RDX file to enable Command Line access. You’ll want to edit a current one or create a new RDX file. On the passwords tab click Enable on one of the entries, change Type to Command Line, and provide a password. The password is alphanumeric and does not support special characters.
3. Save and update your configuration on your target machines.
4. Deploy DFC.exe to your lab computers.
For this I created a simple Package that includes 1 file copy step. I placed a copy of DFC.exe in my PDQ Deploy repository and set the deployment to “Push”. The target directory is C:\windows\system32. You could use C:\windows\SysWoW64, or any other directory that is in the target’s PATH. This will make things a little easier in a further step.
NOTE: You’ll want to go into Deep Freeze and THAW the machines you are deploying this package to so that the copied file will actually be there upon subsequent reboots.
Creating your deployment
5. Create deployments wrapped around DFC
In this example, we will use the Auto Deployment package 7-Zip which is available from the Package Library. If you don’t have access to the Package Library due to your license level, or simply wish to do this with another package, the process is the same, so just follow along modifying the package(s) that you care about. The only slight difference you will see is that with Auto Deployments things go into the Pre and Post Deployment steps, so it looks different from a normal package, but is functionally identical.
Here’s a rundown of what’s included in the pre and post deployment steps:
Pre-Deployment Command Step containing:
dfc.exe <yourpassword> /THAWNEXTBOOT
Add a Reboot Step. This allows the PDQRunner service to control the next package steps, and the machine will be thawed to the DFC command you ran in Step 1.
Post-Deployment Command Step containing:
dfc.exe <yourpassword> /FREEZENEXTBOOT
Add another Reboot Step which will cause the machine to be Frozen after the step completes, and the deployment will show as successful.