Remotely Install Printer Drivers

Posted on Leave a commentPosted in Deployment Examples, PDQ Deploy

There are a few ways to remotely install printer drivers. This post will cover two methods, using a print server and setting up an IP port. Both of these methods are also covered in a tutorial done at a webcast. A recording of this webcast is available below. Let’s dive in!

Remotely Install Printer DriversPrinter

Using Print Server

This method is the easiest and adds the printer for all users on the target machine. To add a printer using print server you’ll need run a couple commands. Using PDQ Deploy, create a new package and add two command steps.

The first command step will delete the printer if it does already exist. Doing this prevents errors that can occur from adding an already existing printer.

%WINDIR%\system32\Printui.exe /gd /q /n"\\TOKEN/Lexmark MS310dn North"

In the second command step, you’ll add the printer. The difference between these commands is the /gd (for global delete) is now a /ga (for global add).

%WINDIR%\system32\Printui.exe /ga /q /n"\\TOKEN/Lexmark MS310dn North"

Remotely Install Printer Drivers - using printer server
In both commands /q is critical for a silent deployment. Without that parameter your deployment will hang. You can see other parameters by entering the following into a command prompt:

printui /?

For your changes to take effect you may need to stop and start the print spooler. If after deploying the printer does not appear, add the following commands to your deployment:

NET STOP SPOOLER 
NET START SPOOLER

IP Port

In this method, you will create a TCP/IP port and then install your printer.

First, spare yourself possible errors and clear out the printer and port. For this deployment package you’ll start off with a command step with the following command (of course, substitute your own printer name and IP address in your commands):

cscript %WINDIR%\system32\Printing_Admin_Scripts\en-US\prnmngr.vbs -d -p "Lexmark MS310"
cscript %WINDIR%\system32\Printing_Admin_Scripts\en-US\prnport.vbs -d -r "IP_10.0.0.246"

In the next command step, you’ll add the port. Again, substitute the appropriate IP address in quotes.

cscript %WINDIR%\system32\Printing_Admin_Scripts\en-US\prnport.vbs -a -r "IP_10.0.0.246" -h 10.0.0246

 

Your next two steps (one for each architecture type, 32-bit vs. 64-bit) will install your printer using an install step. You’ll want to get your install files from the printer vendor and research what parameters you may need to silently install your printer driver.

For our example, (which you can watch in the video below starting at 21:53) we got a batch file from the vendor which is listed in the install step as the install file.  Then, the “Include Entire Directory” box is also checked. This is important if your installation does require multiple files.

 




How to Prevent a Disconnect During GP Update

Posted on Leave a commentPosted in Uncategorized

If you’ve used RDP  and run the gpupdate /force you may have seen the “Remote Desktop Services session has ended” error which forces your RDP to disconnect. Here’s how to prevent a disconnect during GP Update. It just requires a simple registry edit.

Desktop error-prevent disconnect

 

Prevent a Disconnect During GP Update

Reconnect to the machine and go to your registry editor.

Then go to HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet. Once under Current Control Set do a search for fDenyTSConnects. Odds are you’ll see a “1”. Double-click to edit and change the Value data field to 0.

regedit fDeny - Prevent a Disconnect During GP Update

That’s it! When you go to run gpupdate /force again, the policy will successfully update.


Automating Software Installs for Imaged Computers

Posted on Leave a commentPosted in PowerShell

Today we’ll look at automating software installs for imaged computers, all while saving yourself some storage space and more importantly…time.

Before you get started here, you’ll want to have an Active Directory security group and OU for imaged machines set.

Automating Software Installs for Imaged Computers

PowerShell Code

The PowerShell code is really pretty straightforward. It looks to the OU you created where machines will be dropped after they are added to Active Directory by the imaging process. You can set the frequency to whatever fits best with your environment.

New additions to this OU will be assigned to the security group you create, and once they are deployed and moved out of the Imaging OU and into the OU where they will serve their life sentence, the script removes them from the security group. This all syncs up with the dynamic collection you will create in PDQ Inventory!

It’s pretty slick in once you have an image created, and machines in the OU, the PowerShell script works with PDQ Deploy and PDQ Inventory to deploy your baseline applications to the machines. The script will also generate email notifications, alerting you to any changes that it has made to the security group.

#######################################################
# END USER DEFINED VARS #
#######################################################

#Array for computers that will be removed
$removed = @()
#Array of hostnames stripped from $search
$sanitized = @()
#Array of hostnames stripped from $members
$memsanitized = @()


#########################################################
# CONTAINERS FOR CHANGED HOSTS #
#########################################################

#table for hosts added to the Baseline group
$addedtable = New-Object System.Data.DataTable "Added Hosts"
$addedcolumn = New-Object System.Data.DataColumn Name, ([string])
$addedtable.Columns.Add($addedcolumn)

#table for hosts removed from the baseline group
$removedtable = New-Object System.Data.DataTable "Removed Hosts"
$removedcolumn = New-Object System.Data.DataColumn Name, ([string])
$removedtable.Columns.Add($removedcolumn)


####################################
# ADD TO GROUP #
####################################
Foreach ($s in $search){

$sanitized += $s.SamAccountName

}

#If exists in group, skip, else add.
Foreach ($san in $sanitized){

If (Get-ADGroupMember "TUSC Baseline" | Where { $_.SamAccountName -eq $san}){

 Out-Null

 }
Else {

 Add-ADPrincipalGroupMembership -Identity $san -MemberOf "$securitygroup" 

 #actually add data to added table.
 $addedrow = $addedtable.NewRow()
 $addedrow.Name = $san
 $addedtable.Rows.Add($addedrow)
 
 }
}

########################################
# REMOVE FROM GROUP #
########################################

#Trim group members down to a new array of just hostnames
Foreach ($mem in $members){

 $memsanitized += $mem.SamAccountName

}
 
#Do some logic that compares the array and dumps differences to a new array. This array will contain members that need the group stripped away. 
Foreach ($ms in $memsanitized){

 If ($sanitized -contains $ms){

 Out-Null
 
 }
 Else {

 $removed += $ms

 }

}

#If there is actually something in the $removed array, take action and removed that machine from the group.
If ($removed -ge 1) {

 Foreach ($rem in $removed){

 Remove-ADPrincipalGroupMembership -Identity $rem -MemberOf "$securitygroup" -Confirm:$False

 #add data to removed table
 $removedrow = $removedtable.NewRow()
 $removedrow.Name = $rem
 $removedtable.Rows.Add($removedrow)
  }
}

#Counts on the datatables to determine if email will be sent.
$acount = $addedtable.Rows.Count
$rcount = $removedtable.Rows.Count

If ($acount -and $rcount -eq 0) {

Out-Null

}

Else {

###########################################################
# CONVERSION TO HTML TABLE FOR EMAIL #
###########################################################

#This builds the table for machines added to TUSC Baseline
$ahtml = "<br><table><tr><td>Hostnames Added to TUSC Baseline</td></tr><br>"
foreach ($arow in $addedtable.Rows){
 $ahtml += "<tr><td>" + $arow.Name + "</td></tr>"
}

$ahtml += "</table> <br>"

#This builds the table for machines removed from TUSC Baseline
$rhtml = "<br><table><tr><td>Hostnames Removed from TUSC Baseline</td></tr><br><br>"
foreach($rrow in $removedtable.Rows) {

$rhtml += "<tr><td>" + $rrow.Name + "</td></tr>"
}
$rhtml += "</table>"

########################################################
# SEND EMAIL REPORT #
########################################################
#Send the message
#Send-MailMessage -SmtpServer $smtpserver -From $from -to $to -Subject $subject -Body $body -BodyAsHtml
}
$addedtable.Dispose()
$removedtable.Dispose()

Exit

Run this script as a scheduled task. You will want to create the task to run as an account that has been delegated access to manage group memberships in Active Directory. I recommend setting up the scheduled task as a Service Account that has been delegated access to change group memberships in Active Directory.

Also, the Start A Program line you will want to use for the executable is the path for Powershell (Typically C:\windows\WindowsPowershell\v1.0\powershell.exe) and in the Arguments field use:

-noprofile –ExecutionPolicy Bypass –File <path to .ps1 script>

Setting Up Automated Software Deployments

Create a new dynamic collection in PDQ Inventory using the filters as show below. Change the value to match the name of your security group in Active Directory.

dynamic powershell collection



Next in PDQ Deploy, you’ll create a new schedule. (Either select Deploy > New Schedule or go to File > New Schedule.) Set the trigger to Heartbeat (requires a Pro or higher license).  Under the Targets tab, select Link to and select the PDQ Inventory collection you created in the last step. Click OK.

link to collection automating software installs for imaged computers

 

Now that you have your schedule saved, you may attach packages to it for deployment. When the Heartbeat trigger detects a new machine in the PDQ Inventory Collection you have linked to, these packages will be deployed to those target machines.

 

attach package to schedule

 

That’s all there is to it! Now when you image a machine, and it goes into the OU, PowerShell will add it to the appropriate groups, PDQ Inventory will add it to your collection, and PDQ Deploy will push your selected applications to it. When you move the machine out of your Imaging OU, the PowerShell script will detect the change and remove that machine from the Security group, which will update your Dynamic Collection.




Setting Up DFS on Windows Server 2012 R2

Posted on Leave a commentPosted in Uncategorized

Let’s walk through setting up DFS on Windows Server 2012 R2. If reading is not your thing, there is a video tutorial down below that goes through these same steps. The following steps assume that you already have both of your servers set up. You’ll just be setting up roles and replication.

Setting Up DFS on Windows Server 2012 R2

Let’s start with your first server:

  1. Open Site Manager, Manage>Add Roles and Features. This will open the add roles and features wizard, click next to start set up.
  2. Select role-based or feature based installationrole or feature based Setting Up DFS on Windows Server
  3. Select server, in our example that will be SITE1.destination server
  4. The next section will be Server Roles under file and storage services. Check DFS Namespaces and DFS Replication both on this (your main) server. When you go to check Namespaces it there will be a pop up that asks you if you would like to add features. Click Add Features.server roles - Setting Up DFS on Windows Server
  5. Hit next twice to confirm features. Then install.

Now you’re ready to go over and set up site two, go through all the same steps for site one except for in step four in Server Roles. You will only need to select DFS Replication, do select to Add FeaturesYou do not need to select DFS namespaces.

Setting up Namespaces and Replication

Next steps in setting up DFS on Windows Server will be to set up your namespaces and replication. First you’ll set up Namespaces. Namespaces are how you are going to call your shared file area you are replicating.

Go to DFS Management. Once DFS Management is up, right click on Namespaces in the left panel and click New Namespace.

namespace

Enter the name of the server (in our example that’s site1). Click next, then give your namespace a name (our example will use LMFAO). You’ll be given the option to select a Domain-based or Stand-alone namespace. For our example we’ll do a domain-based namespace (which is much easier, so I heartily recommend it).

namespace type

Lastly you will be shown a summary; click create to finish making your new namespace.

Setting up Replication

  1. Back at your home window in DFS Management you’ll now right click on new replication group.new replication group
  2. Select the Multipurpose replication group option.replication group type
  3. You’ll name your replication group in the next window (our example will use the name REPO). After that, you will add both of your servers.replication group members
  4. Once added, the next window select Full mesh. This will ensure that anything on the first server will be on the other server and vice versa.
  5. Next, you’ll set the bandwidth. Here you’ll need to consider your network traffic and set it accordingly. replication schedule and bandwidth
  6. Select primary server and then add a local path of a folder to replicate. Be sure to select Permissions > Custom Permissions to add groups or users and give permissions as appropriate.custom permissions
  7. Once you have made all those changes and hit next, you’ll double click on the servers listed to enable them for replicating. Click enable and specify the path you want to synchronize with.enable replication dfs on windows server

That’s it, the next window will provide you with a summary of your selections. If all looks good to you, click create.

 

In your DFS Management Console, double click on your replication folder and go to the Replicated Folder tab. You’ll notice that the publication status is Not Published. Right click on that and select Share and Publish in Namespace.

publish REPO

Click next until you get to the Namespace path. Browse to the parent folder and name the folder. A preview of the namespace path is listed.

namespace path

Again, after clicking next you’ll see a summary and can click Share. That’s it! Congrats, you’ve successfully finished setting up DFS on Windows Server 2012 R2.

 


What’s New in PDQ Inventory 9

Posted on Leave a commentPosted in PDQ Inventory

Time to upgrade to the new PDQ Inventory 9. Yes, there are new features. Read on to see what’s new in this version. If your PDQ Inventory license is current, you can get these upgrades at no extra charge. Learn more about our licensing.

What’s New in PDQ Inventory 9

Network Discovery

Add computers to PDQ Inventory with the network discovery tool. This handy new feature will scan supplied IP ranges and add the discovered devices to your PDQ Inventory database. This feature does require a current PDQ Inventory license of Pro or higher. Simply to go Add Computers > Network Discovery.

Network discovery

 

This will bring up the Network Discovery window that will allow you to specify a Subnet or IP addresses or IP address ranges to find computers. Click Start Discovery to begin adding computers and devices to PDQ Inventory, which will open the Network Discovery Status window to allow you to see the progress.

Network discover ip addresses

 

Automatic Backups

Now your PDQ Inventory database is automatically backed up. These settings can be found under File > Preferences > Database. The image below shows the default setting for backups. Change them up as you see fit to what best suits you. You also have the option to run a back up at any time by clicking Backup Now. These backups do count against your set number of backups kept, and the oldest backup will be deleted to maintain the number of backups as set. Pro or Enterprise mode required.

pdq inventory database backup

Feature Improvements

Registry Scanner Improvements

PDQ Inventory 9 introduces wildcards for use in creating registry scanners (these are similar to the changes introduced in the File Scanner back in version 8). Registry scanners are a Pro or higher feature. Add a registry scanner in File > Preferences > Scan Profiles. Click New and in the Scan Profile: New Scan Profile window, select Add > Registry. Available wildcards are listed for your reference. For example the Registry scanner below scans all subkeys and values under HKEY_LOCAL_MACHINE\SOFTWARE\Google\Update\ClientState. The data collected can be used to determine if the 32 or 64-bit version of Chrome is installed.

NewRegistryScanner

Edit IP Address

In PDQ Inventory 8 the ability to add non-Windows devices was added to help you better keep track of various devices that cannot be scanned like your Windows computers. In this new release, you can now add or edit the IP address listed for these devices. To edit fields for these items (that have Allow Scan disabled), simply double click on the device listed in the PDQ Inventory console. Fields that are white can be edited.

ip address edit

Adding Product Keys

Save product key information in PDQ Inventory. Double-click on a computer and select Product Keys from the left pane to enter in keys.




Real World Applied PowerShell

Posted on 1 CommentPosted in Uncategorized

Webcast: Real World Applied PowerShell

If you missed this week’s live webcast, well, you’re in luck! We have a recording available as well as some of the scripts used in this webcast for your copy+paste pleasure.

Clearing Event Logs

# This will clear a single log
Clear-EventLog -Log Application, System 
# This will clear all the logs
Get-EventLog -List | Foreach-Object {Clear-EventLog -Log $_.Log}

Note: The Get-EventLog cmdlet only grabs the classic Event Log logs. If you need to view all the windows logs, including the more modern logs in modern OSes, you may wish to use the Get-WinEvent cmdlet.
To see the difference, compare:

Get-EventLog -List

with

GetWinEvent -ListLog *

DISM

Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient

 

In this video…

PowerShell improvements – 1:46
Package Library installing PowerShell 5 – 2:42
Is it worth upgrading all my clients to Win 10 for PS5? – 4:51
Common tasks for administrators / Batch vs PowerShell – 6:13
Clearing event logs using cmd – 7:02
Clearing event logs using PowerShell – 8:09
Can I upgrade from PS2 to PS5 in Win7, or do I need to install PS3 then PS4, then PS5? – 10:26
Making PowerShell scripts silent with PDQ Deploy – 13:08
Enabling and disabling Windows features using DISM- 16:34
Enabling and disabling Windows features using PowerShell – 17:20
Should I use PowerShell to set (not force) a users default ‘open with’ program, or would a group policy be better? – 23:35
PS5 (Win 10) has an Execution Policy Change that prevents security risks from running scripts. How do you bypass this without having to press [A] – yes to all? – 25:06


Disable Windows 10 Upgrade Notice On All Computers

Posted on Leave a commentPosted in Deployment Examples, PDQ Deploy

Microsoft has really gone all-in when it comes to alerting (some would say “annoying”) their Windows 7 and 8.1 users about upgrading to Windows 10. As a sys admin, you’re probably wanting to disable Windows 10 upgrade notice for all of your computers. (Note: These notifications do not occur in the Enterprise and Embedded editions of 7 and 8.1)

There are several methods for preventing either an OS upgrade or the notifications but, as usual, let’s focus on how to disable these silently across many computers in your organization.

Disable Windows 10 Upgrade Notice

Option I – Import the pre-built package from the Package Library

If you use PDQ Deploy and you have access to the Package Library you can import the package called Disable Windows 10 (GWX) Notification.

DisableGWXPackageLibrary

After importing you can simply deploy this package to your existing Windows 7 and 8.1 computers. If you use PDQ Inventory you can select a the appropriate collections for these OSes as your targets. This will help you avoid deploying this unnecessarily to Non 7/8.1 targets.

The package in the Package Library already has the OS conditions set to only use Windows 7 and 8.1.



Option II – Build your own PDQ Deploy package

I am going to use a batch file so that this can accommodate the users of the Free version of PDQ Deploy. In the Pro and Enterprise versions you could simply use Command steps.

  1. Create a batch file using an appropriate editor such as Notepad or Notepad++. Enter the following four lines into your new batch file.
    ECHO OFF
    %SYSTEMROOT%\System32\taskkill.exe /f /im GWX.exe /im GWXUX.exe
    
    REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\Gwx" /v DisableGwx /t REG_DWORD /d 1 /f
    REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DisableOSUpgrade /t REG_DWORD /d 1 /f
  2. Save your new batch file. In this example I am calling the file DisableGWX.bat and placing it in a new folder on my C:\ drive called Deploy.
  3. In PDQ Deploy create a new package and name it appropriately (or inappropriately, I don’t care).
  4. Add your batch file to the Install File field. In this example you don’t really need to modify the Success Codes field. Just a note, if you are using Command Steps and you are separating the Taskkill line into a separate command then make sure to use the following Success Codes: 0,128
  5. DisableGWXStepDetails

  6. If you are using the Pro or Enterprise version of PDQ Deploy go to the Conditions tab and deselect all the O/S Versions except Windows 7 and Windows 8.1.           Disable Windows 10 Upgrade Notice
  7. Save and close your new PDQ package.
  8. Click the Deploy button and deploy this to a few test computers. If you have a computer near-to-hand that has the Get Windows 10 (GWX) icon in the systray then you will be able to get pretty fast feedback as to whether or not this deployment works. The batch file will simply kill the gwx.exe and gwxux.exe processes (if they are running) and then add some registry values which will prevent further notifications and/or upgrades.

Optionally, you could uninstall the offending patch (KB3035583)  that placed GWX on the system but, depending on how your Windows updates get delivered, it could get reinstalled.  By making the registry changes listed above you should be covered.

I won’t go into deleting the Task Schedules created by the KB3035583 patch because the registry settings above effectively neuter these tasks.



Option III – Group Policy

You can also use Group Policy to disable Windows 10 upgrade notice as well as upgrades. You can see how to do this (as well get some other useful information) by visiting this Microsoft KB article.

 

 


Silently Install Adobe Creative Cloud

Posted on 2 CommentsPosted in Deployment Examples, PDQ Deploy

You’ve got some users that need access to Adobe Photoshop or Dreamweaver perhaps…that’s where deploying Adobe Creative Cloud comes in. This post will have two parts. First you will make configurations using the Creative Cloud Packager, then you will create a deployment package to silently install Adobe Creative Cloud.

Note: These steps will ONLY work for Team, Enterprise, or Education plans of Creative Cloud, NOT individual.

Making Configurations with the Creative Cloud Packager

You’ll need to have administrator access to the Creative Cloud account. Log in at Adobe.com and select Manage team. From there you will be able to download the Creative Cloud Packager under Deployment Tools > Download Win.

creative cloud packager download

This will download the CCPLauncher.exe. Launch the executable and login, then you will be able to select Create Package.

create package adobe

Now you’ll need to give the package a name, a location where the package should be saved, architecture (32 or 64-bit), and the license type. License type will vary from plan to plan. Named License is available for the Teams plan. Serial Number License is available for the Enterprise plan, and Device License is available for the education plan. You should only see the license(s) applicable to your account.

adobe license type

In Package configurations, de-select the Applications & Updates via the Apps Panel options if the users are not also local administrators. This will keep your users from getting update notifications or otherwise being prompted to install updates. 

silently install adobe creative cloud no update notifications

Next, select the applications and/or updates you wish to build into your installer.

installing adobe products

That’s it! Click build and the Creative Cloud Packager will create a directory containing your MSI installer.

Silently Install Adobe Creative Cloud Package

For these next steps you’ll need to have PDQ Deploy downloaded. The free version works great for deploying to either 32-bit or 64-bit architectures. However if you want to create a deployment package that will deploy to both the 64-bit installer and the 32-bit installer to the respective target computers, you’ll want a two-step package that allows you to specify which architecture each package is to be deployed.

For our example we will create a two step package to silently install Adobe Creative Cloud Package to both architecture types.



  1. In PDQ Deploy click New Package or select File > New Package
  2. Name the Package and make sure you have your copy mode set to pull. Pull is recommended due to the size of this installation. Using the pull copy mode also requires that you place the Repository on an accessible file share. (Learn more about Push vs. Pull Deployments.deploy adobe creative cloud
  3. Click on Step 1, give the step a title. For the Install File, navigate to the directory where you downloaded the Creative Cloud 32-bit installer. Make sure you select Include Entire Directory. If left unchecked your deployment WILL FAIL as you will be missing important pieces required for the installation. adding adobe msi
  4. Click on the Conditions tab and select the O/S Version. Since Adobe Creative Cloud products will only run on Windows 7 and above, exclude XP and Vista. Exclude servers unless required.

    Select the appropriate architecture. Since this step is installing the 32-bit Creative Cloud applications, select 32-bit from Architecture.architecture adobe cc

  5. If you have PDQ Deploy Pro or Enterprise mode and need to deploy another architecture type, add a new Install step. Repeat steps 1-4 with the new install file. If you are using the free version of PDQ Deploy or only need to deploy to one architecture type you’re ready to save and silently install Adobe Creative Cloud. install adobe cc

After you save the package you will find it in the Packages folder in the left side tree. Highlight the package, and click Deploy > Deploy Once in the right corner of the console.



IMPORTANT: While we make every effort to test on multiple platforms and architectures, it is highly recommended you test the deployment before a general release into production. Given the possibility of the package being substantially sized, testing will provide important information on bandwidth limitations and deployment times. In our tests, a single instance of Photoshop took anywhere from 15 – 20 minutes to deploy.

Troubleshooting Deployment Issues

If the package deployment fails and/or you receive a 1603 error, please try the following.

  • Machines should be fully patched and not in need of a reboot.
  • Check to ensure sufficient space is available on the drive where Adobe CC will be installed. Some Creative Cloud deployments can be several gigabytes in size, which includes the files copied to the target and the installed size.
  • Clear out %WINDIR%\Temp directory.
  • Review the troubleshooting steps in this article: http://support.adminarsenal.com/entries/448443

This post was adapted from a Knowledge Base article available at support.adminarsenal.com


New in PDQ Deploy 9

Posted on Leave a commentPosted in PDQ Deploy

PowerShell stepPDQ Deploy 9 is now available! You can upgrade to PDQ Deploy 9 by clicking the link in the status bar at the bottom of your console. Once you’re up-to-date, you’ll probably like to know what new features you’ll see! Well, you’ve come to the right place, read on…

What’s New in PDQ Deploy 9

PowerShell Step

Include PowerShell cmdlets as a package step in your deployments. You can still include PowerShell scripts in an Install Step as a ps1 file, but with a PowerShell step you can enter your cmdlets(s) without having a separate script. Either type or paste your script in to the text box or add a ps1 file by clicking Insert PowerShell Script at the bottom of the text area. You’re ready to save and deploy! You can also add the PowerShell script step (as other steps such as the reboot or message) before and after Auto Deployments as well.

Why PowerShell? PowerShell is a sys admin’s best friend. Get acquainted with PowerShell with these tutorials on some handy scripts that will make your job that much easier. PowerShell helps you with tasks such as setting static and DHCP IP addresses and getting screenshots.

powershell step

The PowerShell step is available in Pro and Enterprise levels of PDQ Deploy.

Automatic Database Backup

Below are the default settings for backing up your PDQ Deploy database. These settings can be found under File > Preferences > Database. Change them up as you see fit to what best suits you. You also have the option to run a back up at any time by clicking Backup Now. These backups do count against your set number of backups kept, and the oldest backup will be deleted to maintain the number of backups as set.

database backups pdq deploy

Clean Up Repository

Repository getting a bit full? Now you’re just a click away from clearing out those unused repository files with your PDQ Deploy Pro or Enterprise mode license. This option can be found under File > Preferences > Repository.

This only clears out unused files associated with a package. Clicking the See Unused Files button opens a new window that will show the files that will be removed if you were to click delete.

clean PDQ Deploy Repository



Join a free LIVE webcast this Thursday, May 5th, 2016 at 9 AM PDT/12 PM EDT for in depth tutorials and explanations on these features. We will be taking questions LIVE during the webcast as well, see you there! 


Keeping .NET Dependent Applications Up-to-Date

Posted on Leave a commentPosted in PDQ Inventory

Some applications have requirements for a certain version of .NET to be installed. In a case like this, not only do you need to make sure that you have the correct version of the application you want to install, but you also need to make sure you have the correct version of .NET. An example of this is Paint.NET

Updating Paint.NET

Paint.NET is a free (and quite handy) image editing tool. It is a fairly popular download from the PDQ Deploy Package Library. Tracking machines that have out-of-date versions of this application is fairly easy; however, there is one gotcha when you want to get the latest version out to some of these computers.

The issue is that the latest (as of this writing) versions of Paint.NET require that Microsoft .NET 4.6 or later is installed. If you attempt to deploy Paint.NET 4.09 to a computer that doesn’t have the correct .NET runtime you will get a 1603 error. This is why you will want to have two collections (if you use PDQ Inventory) to track old Paint.NET versions.



Getting Organized with Collections

The image below shows the Paint.NET collections in PDQ Inventory. These collections are available in the Collection Library, so you won’t need to build them yourself if you have PDQ Inventory in Enterprise mode. Notice how there is an extra “Old” collection titled “Paint.NET(Old – Require Microsoft .NET 4.6 or higher)”.

Paint.net Collections

Below are two images showing the Old collections. The first shows machines that have an old Paint.NET and have the appropriate .NET runtime. The second shows machines with an old Paint.NET but also have an old .NET runtime. These computers will need to have Microsoft .NET 4.6 (or higher) deployed to them. Yes, this package is also available in the Package Library.

Paint.net Old with correct NET

Paint.net Old with old NET

Creating custom collections like these are sometimes necessary when you have applications that must meet certain prerequisites before being upgraded.

It is very important to remember something when checking prerequisites. Usually you need to perform some extra magic with your collection filters when you are looking for machines that are missing certain applications. Tracking .NET versions is different than looking for old versions of software. PDQ Inventory places all detected versions of .NET in a single row with each version delimited by a comma. This is why we could use a simple filter of .NET Versions “Does Not Contain” 4.6.

Let’s say you have an application that requires a target computer to have the Microsoft Visual C++ 2015 runtime. To find computers that don’t have this runtime and also have an old version of your app would require filters that looks something like the image below. Notice the Group Filter that is set to Not Any.

Requires VIsual C runtime