Application deployment! Group Policy vs Push Software.

In the last few months I have had the chance to play with a lot of group policies at work. Not only have I tightened the security for users and workstations, but I started rolling out applications over the network.

Initially when I started to ask around what the best method to push software over the network is, someone pointed me to PDQ deploy. Nice thing about PDQ is that it is completely free. Yes, the free version does not contain some of the features the paid version does, but one can still deploy applications over the network. I tried the software and quickly dismissed it because I wanted everything group policy. So set on my quest to learn Group Policy, in the end I now have a greater understanding of it and am a more competent IT system admin. I ran into so many walls and hurdles playing with the settings trying to push software, that now I have a greater understanding of the features it offers and the features it does not. 

Some of the limitations of deploying software via GPO are a bit annoying. First you need an MSI, if you do not have an MSI you can find MSI wrapper applications online such as the likes of MSI Wrapper or AppDeploy Repackager. These do not always work. You can also wrap applications in msiexec. Orca is a good application to edit MSI packages once you have created them. Creating these packages can be a painful process and I found that MSI Wrapper did a better job than AppDeploy. 

Then came Oracle database. I could not for the life of me wrap this installation in an MSI. At this point I had fixed the ailing Group Policies at work and I was creating software groups in AD to push applications to computers. For Oracle however, this is where I had to go back to PDQ Deploy. Two full days of work and I had created a respectable Oracle deployment, albeit one problem, this was an executable not an MSI. Manual silent installation worked, so I proceeded to add this package to PDQ and test it. Surely enough it was working and I was pushing Oracle database client installations over the network. This is where I made the switch from Group Policy to PDQ deploy.

Group Policy is a bit limited in scope. It can only push applications when the computer is rebooted and each package needs to be wrapped into an MSI. Another problem with this method is that when your software collection grows, your users log on times can increase. So there is no on demand installation, computer needs to be rebooted provided the policy on the computer refreshed, and package needs a special wrapper which may or may not work. Also a lot of applications I deal with I was not able to wrap in MSIs.

PDQ Deploy on the other hand, can push out software on demand and you can watch the progress as it is happening.


You do not need an MSI package and you can run command line arguments, it also uses Active Directory to list computers on the network.


If you purchase the basic or advanced subscription level PDQ already provides some pre packaged applications. Common application packages like Java and PDF reader are available. You can also add multiple steps to your deployment, so you could check for and remove a previous version of an application before deployment.



You can schedule deployments as well. It’s very robust.

PDQ Inventory is worth a mention as well. It is the companion application to PDQ Deploy and in the paid version it allows you to remotely remove software from networked computers. Both very useful applications, to get the full benefit of these you need to purchase the licenses. Try them for free and if you like them purchase the license.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog at

Up ↑

%d bloggers like this: