How to Effortlessly Deploy Printers Across All Users with PowerShell & RMM

Table of Contents
š Deploying Printers with PowerShell on Windows
Deploying a printer in Windows using PowerShell is straightforward with a bit of scripting. Before diving in, it’s important to understand some key concepts. Letās walk through them together.
šØļø Printer Drivers & User Profiles: What You Need to Know
In Windows, printer drivers and their availability depend heavily on user profiles and installation context. Understanding how printers are installedāwhether per user or system-wideāis essential to ensure every user can access the printer without issues. Letās break down the key points you need to know.
š¤ Printers Are Installed Per User Profile
In Windows, printers are typically installed per user profile. This means if you install a printer for User A, it wonāt automatically be available to User B ā unless the installation is done under the SYSTEM context or with elevated permissions.
š ļø Manual Installation vs. Vendor Installer
How you install the printer driver matters:
- Manual installation via Windows’ built-in wizard usually installs the printer only for the current user.
- Using a vendor-provided installer or running the installation with administrator or SYSTEM privileges is often required to make the printer available to all users on the machine.
š§ RMM Tools & SYSTEM Permissions: Why They Matter
Remote Monitoring and Management (RMM) tools like Datto RMM typically run commands under the SYSTEM context, which offers major advantages:
- Installing a printer driver under SYSTEM permissions makes the printer available to every user on the machine.
- SYSTEM context has access to all user profiles, ensuring universal printer availability after installation.
ā ļø Security Considerations When Installing Drivers as SYSTEM
While installing drivers with SYSTEM privileges improves accessibility, it also raises security concerns:
- Vulnerabilities in printer drivers installed under SYSTEM context can be exploited across all user profiles.
- This risk increases if the printer manufacturer does not regularly update or patch their drivers, potentially exposing the entire system.
š¦ Preparing the Printer Driver Package (Brother MFC-L3770CDW Example)
These steps use the Brother MFC-L3770CDW series as an example, but the process is similar for most printers.
Step 1: Download the Driver Package
- Visit the Brother driver download page.
- Locate and download the āAdd Printer Wizard Driverā package.
Step 2: Extract the Driver Files
- Find the downloaded file named
Y17E_C1-hostm-D1.exe
. - Option 1: Run the installer to extract the files.
- Option 2: Use 7-Zip to extract the files without running the installer:
- Right-click > 7-Zip > Extract to
Y17E_C1-hostm-D1
.
- Right-click > 7-Zip > Extract to
The extracted folder will contain multiple .inf
driver files.
Step 3: Review and Identify the Correct .inf
File
- Open each
.inf
file with Notepad. - Look for the āFunctionā section to understand each fileās purpose.
- Identify:
- USB driver file
- Scanner driver for USB/LAN
- Plug and Play driver for TCP/IP (usually named something like
BRPRC17A.inf
) ā this is the one youāll use.
Step 4: Record the Driver Name
- Open
BRPRC17A.inf
. - Find the āDriverNameā section and note the exact name (e.g., Brother MFC-L3770CDW series).
Important: Recording the correct driver name is essential ā the script will fail without it.
Step 5: Create a ZIP Archive of the Driver Files
- Select all extracted files (.inf, .cat, and others).
- Create a
.ZIP
archive containing all necessary installation files.
Step 6: Plan the Extraction Location
- Decide on a folder where the driver files will be extracted on the remote machine.
- Ensure the script has access to this location (e.g.,
C:\Windows\LTSvc\Printers\Brother MFC-L3770CDW series
).
š» PowerShell Script for Deployment (ConnectWise Automate Example)
Here is the script I use for ConnectWise Automate below. ConnectWise Automate is different in that you have to copy the driver package to your LTShare then pull it down in your script first via “File Transfer (Forced)” option.
# Define path for printer driver files
$DriverPath = "C:\Windows\LTSvc\Printers"
# Extract Brother driver ZIP to folder
Expand-Archive -LiteralPath "$DriverPath\Brother-MFC-L3770CDW-series.zip" -DestinationPath "$DriverPath\Brother-MFC-L3770CDW-series"
# Install printer driver from .INF file
PnPUtil /Add-Driver "$DriverPath\Brother-MFC-L3770CDW-series\BRPRC17A.INF" /Install
# Create printer port with static IP
Add-PrinterPort -Name "10.0.1.20_IP" -PrinterHostAddress "10.0.1.20"
# Find driver .INF path
Get-WindowsDriver -All -Online | Where-Object {$_.OriginalFileName -like '*BRPRC17A.INF'} | Select-Object -ExpandProperty OriginalFileName -OutVariable InfPath
# Display .INF contents (optional)
Get-Content -Path $InfPath
# Add printer driver by name
Add-PrinterDriver -Name "Brother MFC-L3770CDW series" -InfPath $InfPath
# List all installed printer drivers (confirmation)
Get-PrinterDriver
# Add printer using driver, name, and port
Add-Printer -DriverName "Brother MFC-L3770CDW series" -Name "(Tech Floor) Brother MFC-L3770CDW" -PortName "10.0.1.20_IP"
# Cleanup ZIP and extracted folder
Remove-Item -Path "$DriverPath\Brother-MFC-L3770CDW-series.zip" -Force
Remove-Item -Path "$DriverPath\Brother-MFC-L3770CDW-series" -Recurse -Force
š¤ Using Datto RMM for Deployment
Datto RMM pulls down the attached driver package to a unique script directory on the remote host. You can reference this directory in your script like this:
$ExecutingScriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
ā Conclusion
Once installed under SYSTEM permissions, the printer becomes accessible to all user accounts on the machine. Iāve successfully deployed many printer models this wayāwhen users request a printer, I simply run the RMM job, and itās done in minutes. No need to remote in or interrupt the user.
šæ Final Thoughts
Deploying printers with PowerShell under SYSTEM permissions is a powerful and efficient method to ensure seamless access for all users on a Windows machine. While it requires careful preparation and attention to driver details, the payoff is a streamlined, repeatable process that saves time and reduces support overhead. Just remember to stay mindful of security risks by using trusted drivers and keeping them updated. With this approach, managing printers at scale becomes much simpler ā giving you more time to focus on what really matters.

My name is Dex, author at WinReflection.
I am a Christian, conservative, truth-seeker, and problem-solver who is not afraid to be vocal about important or controversial issuesāsilence leads to death. There’s more to life than the worldly status quo, and that’s why many are sad and depressedāthey’re suffocating. Truth and purpose can bring fresh air into one’s life, and that’s my mission. My sidebar content should not trigger you, the proof is all there.
šĀ John 3:16: For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
Leave a Reply
Want to join the discussion?Feel free to contribute!