TL;DR: Use PDQ Connect to deploy software to remote or hybrid Windows and macOS devices. Use PDQ Deploy & Inventory for on-prem Windows endpoints, Group Policy for straightforward MSI installations in Active Directory, and PowerShell when you need flexible scripted deployments.
The best software deployment method depends on where your devices are located, which operating systems you manage, and how much automation and reporting you need. For 500 or more endpoints, use a centralized deployment platform rather than relying only on custom scripts or Group Policy.
Method | Best for | Remote capable | Skill level |
|---|---|---|---|
PowerShell | Custom Windows deployments and scripted workflows | Yes, with PowerShell remoting and network access | High |
Group Policy | Basic MSI deployment to domain-joined Windows devices | Limited to devices with domain and network connectivity | Medium |
PDQ Connect | Remote and hybrid Windows and macOS devices | Yes, with an internet connection and installed agent | Low to medium |
PDQ Deploy & Inventory | On-prem Windows devices | Limited to devices reachable over the local network or VPN | Low to medium |
How do you deploy software with PowerShell?
You can deploy software packages with PowerShell by copying an MSI installer to target devices and running it silently with msiexec. Here’s an example script:
#Only works with MSI and only one installer in the source folder at a time
#Add computer targets ("computer1", "computer2", etc...)
$computers = "<computer1>", "<computer2>"
#Path to your installer share driver
$installer = Get-ChildItem \\<server_name>\<installer_share_drive>
#Installer destination path
$tempPath = "C$\Temp"
#Start foreach loop
foreach ($computer in $computers) {
#Test if the installer destination path exists; if not, create it
If(!(Test-Path "\\$computer\$tempPath")){
New-Item -ItemType Directory -Force -Path "\\$computer\C$\Temp"
}
#Copy the installer to destination
Copy-Item -Path $installer -Destination "\\$computer\$tempPath" -Force
#Run copied MSI silently on target PC
Invoke-Command -ComputerName $computer -ScriptBlock {msiexec.exe /i "C:\Temp\$($using:installer.Name)" /qn}
}This script copies an MSI installer from a network share to the targeted computers, then runs it silently. You can expand it to target devices from a CSV or run multiple MSIs with additional loops.
Remember: When executing PowerShell against devices other than your local computer, you may need to enable Windows Remote Management (WinRM) for it to work. In this example, you also need a network share with the proper permissions to ensure that the installer files can be copied to target devices.
How do you deploy packages using Group Policy?
Group Policy can install MSI packages across an Active Directory domain. It works best for on-prem devices. Here’s how:
Create a network share containing your MSI installer files.
Open Group Policy Management.
Right-click on the domain or OU you want the Group Policy Object (GPO) applied to, then click Create a GPO in this domain, and Link it here.

Enter a name for the GPO, then click OK.
Right-click on the newly created GPO, then click Edit.
Go to Computer Configuration > Policies > Software Settings > Software installation.

Click Action > New > Package.
Navigate to the network share that contains the install files, select the MSI files you want to deploy, and click Open.

Select Assigned and click OK for both packages.

Once you apply the policies and restart the selected computers, the applications attached to this policy will install. Group Policy works well for basic MSI deployment because administrators can target domain-joined computers by domain, organizational unit, or security group.
Remember: Ensure your permissions are configured correctly so the appropriate users and devices can access the share.
How do you deploy packages to remote computers with PDQ Connect?
PDQ Connect is an agent-based, cloud-hosted option for deploying software to remote or hybrid Windows and macOS devices. After installing the PDQ Connect agent, you can target devices or groups from the web console without requiring a VPN, Active Directory, or on-premises deployment server.
You can deploy a package in three steps:
In PDQ Connect, click Packages.
Select the package, then click Deploy.

Enter device or group names, then click Deploy again.

All the device needs is an internet connection and the PDQ Connect agent. PDQ Connect also supports custom packages, device groups, deployment history, and automated deployments.
Automate patching with PDQ Connect
Keep Windows & macOS devices patched and secure from the cloud.
Can PDQ Connect deploy software to macOS devices?
PDQ Connect can deploy supported software packages and run management workflows on Windows and macOS devices from the same cloud console. Package availability and supported features may differ by operating system, so confirm that the package supports macOS before targeting Mac devices.
How do you deploy packages to local computers with PDQ Deploy & Inventory?
PDQ Deploy & Inventory provide a straightforward way to deploy software to on-prem Windows computers. With hundreds of prebuilt packages, many common applications can be installed without building a package from scratch. Here’s how:
This example uses a prebuilt package and collection in PDQ Deploy & Inventory. Check out our guide on creating custom packages and building custom collections if you need help building your own packages and collections.
In PDQ Deploy, click on Package Library.
Select the package you want to deploy, then click Download Selected (As Auto Download).

Right-click the package, then select Deploy Once.

Click Choose Targets > PDQ Inventory > Collection.
Filter your search by entering the application name in the search field, then select the collection you want to target.

The computers in the collection are automatically added to the target list for your deployment. Review the targets, then click Deploy Now.

In a few minutes, the package will be deployed to the targeted devices.
Which software deployment method should you use?
Choose a software deployment method based on device location, operating system, network access, and the level of automation and reporting you need:
Use PowerShell when you need a flexible, custom Windows deployment and have the scripting experience to build and troubleshoot it.
Use Group Policy for straightforward MSI installations across domain-joined Windows computers.
Use PDQ Connect for remote, hybrid, or mixed Windows and macOS environments with recurring deployments.
Use PDQ Deploy & Inventory when your Windows endpoints are reachable through the local network or VPN.
The best method depends on your device locations, operating systems, and deployment requirements. For recurring deployments, automate the workflow instead of relying on one-time installations.
Trial PDQ Connect or PDQ Deploy free for 14 days to see which works best for your unique environment.
Which deployment method is best for 500 or more endpoints?
For 500 or more endpoints, use a centralized deployment platform with automated targeting, scheduling, deployment history, and failure reporting. Choose PDQ Connect for remote, hybrid, or mixed Windows and macOS fleets. Choose PDQ Deploy & Inventory for Windows devices that remain reachable through the local network or VPN.
Deploying software packages FAQs
What is Group Policy?
Group Policy is a Windows management tool that can deploy software across an Active Directory domain.
How does Group Policy work for software installation?
It supports MSI files only, allowing administrators to automatically install or publish applications for users or computers. The process involves creating a Group Policy Object (GPO), linking it to the desired OU, and specifying whether the software is Assigned (mandatory) or Published (optional). The MSI file must be stored in a network-accessible location for deployment.
What is msiexec?
msiexec is the Windows Installer command-line tool used to install, modify, or remove MSI-based software packages. When deploying software with PowerShell or scripts, msiexec /i installs the package, and msiexec /qn runs it silently without user interaction.
Why does a software deployment fail?
Software deployments commonly fail because the target device is offline, credentials are incorrect, the installer source is inaccessible, the silent installation parameters are invalid, or the installer returns an error. Check device connectivity and permissions first, then review the deployment output or Windows Installer exit code.
Can you deploy software to an offline computer?
Most deployment methods require the computer to be reachable when the installation begins. PowerShell and Group Policy depend on network or domain connectivity. PDQ can queue a deployment while a managed device is offline and retry it after the agent reconnects.
How do you troubleshoot a failed MSI deployment?
Run the MSI manually on a test computer using the same silent parameters, confirm that the device can access the installer path, and verify that the deployment account has sufficient permissions. You can also enable verbose Windows Installer logging to identify the step or return code that caused the failure.
Can you deploy software to both Windows and macOS computers?
Yes, but the available methods differ. PowerShell, Group Policy, and PDQ Deploy & Inventory are primarily Windows-focused. PDQ Connect supports managed Windows and macOS devices through its cloud console and installed endpoint agent.














