We hear variations of this question quite often. Sys Admins write in and say something like "Hey, it's great that I can see what applications are installed but how can I find the computers that are missing certain applications?"
This is a valid question and, good news, you can, most likely, have it answered quickly and for free. PDQ Inventory Collections are a great way to organize your office computers by which software is or ISN'T installed.
Let's take Microsoft Office. Out of the box PDQ Inventory has a collection called Systems with Microsoft Office. Under this collection exist 3 child (or Sub) collections. The parent collection (Systems with Microsoft Office) has a simple filter. Show all computers that have an application containing Microsoft Office in the name. (OK, it's a tad smarter than that, but I'll get into the specifics of the filter later). Each child collection has a filter which identifies even more specifically as to whether the computers have 2003, 2007 or 2010 versions of Microsoft Office. That is all fine and good but let's take this a little farther and identify computers missing Office.
There are two excellent ways to do this. One is slightly more intuitive so we'll discuss this method today.
Since we already have a Collection which already identifies which systems have Microsoft Office you can build a collection which effectively says "show me computers that aren't in the collection called "Systems with Microsoft Office". Let's use the following steps:
- Create a Dynamic Collection called "Systems missing Microsoft Office"
- Add a filter type of Collection and specify that any computer cannot be a member of the collection "Systems with Microsoft Office"
- Save it and look at the results. Wait... We don't care about Servers since they will never have Office installed. So let's define another filter to strip out servers.
- Edit the Collection and add a new Operating System filter (click the blue + icon to add a new filter) where the OS Name does not contain the word "server". Let's also add a Never Scanned is False filter to strip out any computer from showing up which has never had an inventory scan.
Here is a video showing how to create this collection.
See more examples on our public forums
Rock on. We just released (OK, a few days ago... gimme a break I've been helping a friend move) Beta 4 of PDQ Deploy. You can get it here.
Here is a quick summary of the features introduced since beta 3:
- New Offline Policy option to send Wake-on-LAN (WOL) to offline computers before deployment.
- This feature is enabled in Pro mode of PDQ Inventory
- PDQ Inventory (free or pro) required
- Add descriptions to all Credentials that are used in PDQ Deploy.
- Recurring scheduled deployments only send out email notifications if the status of computers has changed since the last scheduled run.
- PDQ Deploy will automatically create additional target (staging) directories if previous deployment left locked files on the target.
- Ability to run individual deployments and schedules as Local System. (This was, previously, a global setting)
- Added Started and Run Time values to each computer in a deployment.
- Option to send or not send email notifications per deployment or schedule. (This was, previously, a global setting)
Thanks to our online community of users who have been using the beta versions of PDQ Deploy. From bug reports to feature requests to offers to "buy the next round" we are very grateful.
Speaking to the screaming hordes of fans that live in his head, Adam Ruth calmly laid out plans for the official release of PDQ Deploy 1.5 by saying "...yeah, it'll be released pretty soon, I guess."
Touching and inspiring words from a man who once performed a Dramatic Interpretation (for which he received the fish-belly white Participant ribbon) on the history Cheese during a drama competition in 1989.
What do you do when you need to run a command on a remote computer?
Using the free PDQ Inventory you can run commands on remote computers all you want. If you've ever used the awesome PSTools then you'll know how important it is to run a good Windows remote command on your networked computers.
Before we begin, it's important to understand what is happening when we use the "Remote Command" feature in PDQ Inventory. When you initiate a Remote Command against a target computer you are actually running that command "locally" on the actual target. The "remote" part comes from the fact that you are defining the command from your PDQ Inventory console. When you actually submit the Remote Command a Windows Service is created on the target computer and that service passes the command you defined to the local CMD.exe process. This means that any command you supply has to exist (or is accessible) on the target system. Let's get started.
To kill a Freecell game on a remote computer you could type:
taskkill /f /im freecell.exe
Plus, with Remote Command in PDQ Inventory you don't have to limit yourself to running a command on just one computer. If you really want to piss off the freecell players at your company you can select multiple computers or even a PDQ Inventory Collection as your target. The screenshot below shows me killing freecell.exe on all the computers in the "Accounting computers" collection.
The 11 computers in the Collection called "Accounting computers" would then be targets for the Remote Command.
How about wanting to quickly stop and start a service. You can "restart" a service by running two commands on the same command line. In the example below we will stop and start the DNS Client service. This can be handy when a target computer needs its DNS cache updated.
In the command above I simply passed to "net.exe" commands. One to stop the DNS Client service (the service name is dnscache) and one to start it. (Windows doesn't have a native CLI, outside of PowerShell, to "restart" a service). This is a great example, however, of running two commands in sequence. We separate the different commands with a single Ampersand '&'. BTW, you can use two Ampersands '&&' and that will run the next command only if the preceding command finished successfully.
Let's get a little trickier. Since the awesome suite of tools ( I mentioned them earlier) known as PsTools are freely available I highly recommend that you download and use them in your everyday Sys Admin tasks. In this case, let's use the command 'PsService' to actually RESTART a service. This way we wouldn't have to use the two separate net.exe commands (shown above) to stop and then start a service.
In this example I have the PsTools suite available on a file server known as Scranton (for you The Office fans out there...you'll get the reference). The Share name on Scranton is called "Deploy". I just need to type in the full UNC to the PsService.exe command to run it.
\\Scranton\Deploy\Microsoft\PsTools\PsService.exe restart dnscache -accepteula
The arguments that I pass PsService.exe are 1) the service instruction (restart) and 2) the name of the service (dnscache). I also pass the
argument to prevent the End User License Agreement (EULA) window from hanging the entire process.
Note the Credentials field. The user account I am using is Quintana running in the Deadwood domain. In this case, Quintana MUST have the appropriate permissions to access and execute the PsService.exe utility on the remote server (Scranton). Quintana also must (obviously) have Administrator rights on the target computers.
One more note: Any command that you execute from Remote Command cannot have any prompts or windows that must be answered to execute correctly. An example is this:
Let's say you want to copy an updated file called CompanyRules.avi from a network share to the target computer. You intend to use the native 'copy' command in Windows. If the target computer already has an older copy of CompanyRules.avi you will get a prompt asking if you want to overwrite the existing file. This prompt will cause the Remote Command to hang indefinitely since this prompt cannot be answered remotely. To get around this you would need to use the /Y argument.
In the example below you will see that I locally ran two copy commands. The first without the /Y argument. Since CompanyRules.avi already existed I was prompted to confirm that I wanted to proceed. Since I was running this locally I was able to answer 'Y' and proceed. This would have, however, Timed Out using a Remote Command unless I passed the /Y argument. You can see two examples of passing /Y. Once locally and once via Remote Command.
Here is how you would do this via a Remote Command in PDQ Inventory
So there you go. Definitely use the Remote Command feature. It will become essential in your everyday duties. Think of the commands that you commonly need to run and consider using them here. Now, go kill some more Freecell games.
One of the first things that most Sys Admins like to do after they deploy Java is to disable the automatic upgrade check. The last thing a sys admin wants is to receive hundreds of calls all asking the same question "I have a window saying that there is a...one minute... Java J-R-E update. Do I have a virus?"
Using PDQ Inventory you can send a remote command to turn off the automatic upgrade check. If you have the Pro mode of PDQ Inventory enabled you can also verify all the systems that do or don't have this setting applied.
The following video shows the steps needed to nail this down. In the first step we create a dynamic collection to display which systems have Java version 6.
Follow along in your own environments and you will get a good idea of how PDQ Inventory can help you get control of your computers.