No admin ever: “Working with printers is the best thing in the world!”
Working with printers is just something we need to deal with and moving from Hybrid Azure AD join to Azure AD join usually include a hard time for admins, in-regards to printers. #PrinterNightmare should still be considered and moving away from GPOs is key in the modern world.
Rock my Printers in action
Latest changes (full changelog is found at the end)
.Version 2024.10.22
- UI changes.
- New buttons
- Black, high contrast theme
- A progressbar has been added to make it easy to follow the progress while managing multiple printers
- Optimized logging
- The tool will not upload the same printer twice. Remove printers from the _packages folder if necessary
- Bug fix: Logos will now upload correctly
- Bug fix: The “Get printers” button will not add the same printer twice to the printer list
Rock my Printers: Why
Rock my Printers will save you a lot of time when it comes to moving away from those pesky GPO’s to a more modern approach. Use Intune to install both drivers and printers, remember that we can still use a print server for the queues.
High level view of what is going to happen:
- Export related printer drivers from the server.
- Create an installation package per printer, to be installed from Intune.
- Automatically upload the installation package to Intune (Win32 app).
- Logo, install/uninstallation commands, detection rule will be handled by the tool, so no need to spend time on repetitive activities.
- We will now be able to install the driver and map the printer in one go.
Prerequisites
We will use @NickolajA PowerShell module called: “IntuneWin32Apps” to upload the package to Intune. Check it out over at Github: GitHub – MSEndpointMgr/IntuneWin32App: Provides a set of functions to manage all aspects of Win32 apps in Microsoft Endpoint Manager (Intune).
- Open: PowerShell as an administrator
- Run: Install-Module -Name IntuneWin32App -Confirm:$false -Force:$true -AllowClobber
❗You must have at least version 1.4.3 of the IntuneWin32App module to successfully run RockMyPrinters. - Make sure you are able to manually run PowerShell commands against the printer server if you want to run the tool on a remote device. Example:
Get-Printer -ComputerName %PrinterServer%
- You may need to change your PowerShell execution policy to allow the tool to run.
Read more: about Execution Policies – PowerShell | Microsoft Learn - Each device must have line of sight to AD during printer installation.
- If using Azure AD-joined devices and passwordless: Make sure you have hybrid cloud trust set up.
Register app to be used by Rock my Printers
Microsoft has retired the Intune PowerShell application id: d1ddf0e4-d672-4dae-b554-9d5bdfd93547. This means that we must from now on register our own app to be used by Rock my Printers.
This is not a big deal, follow below steps and you will be good to go:
- Open: Entra ID -> Identity -> Applications -> App registrations
- Click: New registration
- Name: Rock my Printers (or something by your preference)
- Redirect URI: Public client/native (mobile & desktop)
- URL: https://login.microsoftonline.com/common/oauth2/nativeclient
- Click: Register
- Save the Application (client) ID and Directory (tenant) ID as we will need it later
- Click: API permissions
- Click: +Add a permission
- Click: Microsoft Graph
- Click: Delegated permissions
- Add following permissions
- DeviceManagementApps.ReadWrite.All
- Click: Add permissions
- Click: Grant admin consent
Rock my Printers: Contents
Rock my Printers use PowerShell App Deployment Toolkit (PSADT) for printer installation. We will configure a template which the tool will use to create each unique printer installation package.
After you have downloaded the tool you will find:
- RockMyPrinters.exe (this is the executable to run the tool)
- Tools (this folder contains exported drivers, logos logfile etc…)
The installation package will install the printer drivers in system context and run the printer mapping in user context. PSADT has this cool function called Execute-ProcessAsUser, that will create a temporary scheduled task which in-turn will be run as the currently logged on user.
⭐This is just one of the excellent stuff we get access to by using PSADT.
Rock my Printers: Preparation
- We will start off by downloading the tool from: NicklasAhlberg/RockMyPrinters (github.com) 💡You will always find the latest version in the Releases section.
- Extract the zip file and you will find a Tools folder and RockMyPrinters.exe
- Navigate to: Tools -> _Template
- Open: %Deploy-Application.ps1% with your favorite editor, I am using VSCode.
- Scroll down to line 29 and add your Organizational name as the $appVendor variable. In this demo I will use RockEnrollTech. The appVendor variable will be used for detection after the installation package has run.
- Optional: Scroll down to line: 134 to check the Execute-ProcessAsUser function in action to learn more.
Rock my Printers: Supported manufacturers
All manufacturers are supported by the tool. Below logos have been uploaded and will be used as logo by the Intune Win32 app. All other manufacturers will have a generic logo (see below).
❓Want to add more manufacturers to the list? Tweet at me and I will make it happen!
Rock my Printers: Run the tool
Now that we have made sure that all prerequisites are fulfilled and taken the preparational steps, it is time to run the tool 🤩
- Open: Tools folder and Config.txt
- Add TenantId, ClientId, Domain FQDN and printserver hostname. See below example
- Save and close the .txt file
- Run: RockMyPrinters.exe either directly on the print server or from a remote device.
It is recommended to run it from a remote device, such as Windows 11, as we usually do not want to add “unnecessary” PowerShell modules to our servers. - Click: Settings -> Connect to tenant
- Login with an account with sufficient Intune privileges
Note: The sign in prompt will only show if you are not already signed in/have a token. - Click: Get printers
- Select: the printers you want to export to Intune
- Click: the Rock My Printers button to have them exported to Intune.
Note: This will not impact the server itself.
This will take some time depending on a lot of parameters such as file copy speed between client and server, amount of selected printers and internet speed to upload the content to Intune. Count with about 30 seconds to 3 minutes per printer, this is still much fast than doing it manually. - ❗Time-out after 15 minutes. Please note that the token will live for 15 minutes and you will need to re-authenticate. As demonstrated below, drivers will be exported and packages created but not uploaded to Intune, if we do not have a valid token.
💡Choose not to connect to the tenant when you do not want to upload the content to Intune. The .intunewin file is found in the Intune folder within each package.
Rock my Printers: Install from Intune (company portal)
✅Now that we have uploaded our printers to Intune all we need to do is create assignments.
I usually add the printers as available and let the users decide which printers to install. It is fully supported to create required assignments as well, this is totally up to each organization to decide upon.
User experience using available assignments.
Rock my Printers: Detection
We are using the registry to detect the printer installation.
💡Update the _template version variable (found at line 27) to create new package versions.
Change log:
.Version 1.0.2.1
- UI changes.
- Rock my Printers now requires an app registration as the Intune PowerShell application has been retired. ❗See prerequisites for detailed info on how to register the app.
- Config.txt has been introduced to make it easier to define tenant id, app id, printserver and domain names. ❗The instructions have been updated.
.Version 1.0.1.6
- UI changes
- Faster uploads to Intune
❗Exchange all files and make sure you run at least version 1.4.3 of the IntuneWin32App PowerShell module.
.Version 1.0.1.4
- The printer installation log is moved to: C:\Users%userprofile%\RockMyPrinters use this for troubleshooting.
- Better error handling while creating packages.
- The rock enroll theme has been changed to slightly darker.
- ❗Change all files (including the tools folder) and remember to change $appVendor (as mentioned in the instructions) as per your need.
.Version 1.0.0.9
- Stability fixes and added Epson as supported manufacturer.
.Version 1.0.0.8
- -MinimumSupportedWindowsRelease now reflects the latest changes while uploading the package to Intune
.Version 1.0.0.7
- Changed how the “minimum supported Windows requirement” is set while creating the Intune W32 app
- _template has been updated to PSADT 3.9.3
v1.0.0.7 has been tested on:
- Azure AD-joined Windows 11-22H2
- Hybrid Azure AD-joined Windows 11-22H2
- Hybrid Azure AD-joined Windows 10-22H2
.Version 1.0.0.6
- Fixed: Microsoft recently changed the way Windows Minimum Supported WindowsRelease for Win32 App requirements are set.
- The tool will now set “W10_20H2” as the minimum supported Windows release instead of “20H2”.
_template has been updated to PSADT 3.9.3 https://github.com/PSAppDeployToolkit/PSAppDeployToolkit/releases
.Version 1.0.0.5
- Added Intermec, NiceLabel and Riso logos
.Version 1.0.0.4
- Added a new textbox to set the AD domain name. This will simplify the printer mapping while using Azure AD-joined devices.
.Version 1.0.0.3
- Added Konica Minolta support and logo
.Version 1.0.0.2
- Fixed a case sensitive issue which would throw $driverPath error
- Added Lexmark and Ricoh logos
117 thoughts on “Rock my Printers”
This is awesome! We currently have two print servers that service two separate geographical locations. We typically don’t install both sites printers everywhere but rather if you work in Site A, you get Site A print server. For this scenario would you recommend two separate apps with different app names or should I just change the print server and get printers from both sites and package all together?
✅Hi, I have found the issue and the v1.0.0.1 release has been updated with the fix.
The issue was related to how different PowerShell versions read the $driverPath variable.
I am running PS7 which is not case sensitive but older versions are.
I also thought of something else, when you have multiple printers deployed that all use the same driver (eg HP Universal), does the app download the same package for each one? Or can it evaluate the driver used first and if it exists, just copy the driver?
✅Hi, I have found the issue and the v1.0.0.1 release has been updated with the fix.
The issue was related to how different PowerShell versions read the $driverPath variable.
I am running PS7 which is not case sensitive but older versions are.
So sorry, I just saw the animated gif showing duplicate drivers are already handled. But I did encounter an issue – no drivers were downloaded from the print servers when I ran this. The logs show it trying to download drivers from my own laptop, not the print server. It looks like $driverPath wasn’t properly set but all printers were discovered and packages created, but unfortunately no drivers. Any thoughts?
✅Hi, I have found the issue and the v1.0.0.1 release has been updated with the fix.
The issue was related to how different PowerShell versions read the $driverPath variable.
I am running PS7 which is not case sensitive but older versions are.
Hi.
Thank you for a great tool.
I have a issue when i try to deploy the printers to Intune with your tool.
When i start deployment, it’s says uploading to intune.
but nothing is happening in intune.
Am i doing anything wrong or is this an error?
Hi,
Thanks for reaching out!
I have updated the tool to a new version as I found a case sensitive issue that could throw the error you are experiencing.
You will find the new version (v1.0.0.2) over at github, directlink: https://github.com/NicklasAhlberg/RockMyPrinters/releases/tag/v1.0.0.2
Hi Nicklas!
Dont know if I am dooing something wrong but I am not able to extort the printer drivers from the printserver.
All I get is this error
Cannot bind argument to parameter ‘Path’ because it is an empty string.
Is the RockMyPrinters,exe built from powershell , if so is it possible to get the sourcecode?
Hi Niklas,
Thanks for reaching out!
did you declare the $appVendor variable in the template?
Snipped from the post:
“Scroll down to line 25 and add your Organizational name as the $appVendor variable. In this demo I will use RockEnrollTech. The appVendor variable will be used for detection after the installation package has run.”
The upload towards Intune does not work for me:
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘Publisher’. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.”
Add-IntuneWin32App : Cannot validate argument on parameter ‘Publisher’. The argument is null or empty. Provide an argume
nt that is not null or empty, and then try the command again.
At line:17259 char:38
+ … $Win32App = Add-IntuneWin32App @addIntuneWin32AppParameters -Icon $ …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Add-IntuneWin32App], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Add-IntuneWin32App
Add-IntuneWin32App : Cannot validate argument on parameter ‘Publisher’. The arg
ument is null or empty. Provide an argument that is not null or empty, and then
try the command again.
At line:17259 char:38
+ … $Win32App = Add-IntuneWin32App @addIntuneWin32AppParameters -Icon $ …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Add-IntuneWin32App], Parameter
BindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Add-IntuneWin32
App
**********************
Windows PowerShell transcript end
End time: 20230323115045
**********************
Hi Mitch, it seems you have not declared the $appVendor variable in the template.
Snipped from the post:
“Scroll down to line 25 and add your Organizational name as the $appVendor variable. In this demo I will use RockEnrollTech. The appVendor variable will be used for detection after the installation package has run.”
Yup that was it! Thnx
I have the packages uploaded to Intune and the deployment works. But after deployment I cannot see the print queue on my test machine. Any idea?
Hi Mitch, thanks for reaching out.
As for now your device must have line of sight to the print server during the time the printer is mapped.
Also, if you are using passwordless (Window Hello for Business) you must make sure the device is able to authorize during printer mapping.
//Nicklas
Hi Nicklas,
Nice looking tool!
Maybe I am doing something wrong but when the Intune app is installed the printer won’t show up in Devices & Printers or Printmgmt. The driver is installed and the registry keys are made. Intune status says Installed. Tried installing on system with and without local admin rights. Also the repair file won’t fix the issue.
Hi Niels, thanks for reaching out!
As for now your device must have line of sight to the print server during the time the printer is mapped.
Also, if you are using passwordless (Window Hello for Business) you must make sure the device is able to authorize during printer mapping.
I have updated the blog post to clarify this.
//Nicklas
Absolutely awesome!! Great work.
Do you think it would be easy to add Intermec / Nicelabel drivers to your solution?
Hi, thanks for reaching out. v1.0.0.5 comes with added support for NiceLabel, Intermec and Riso 🙂
//Nicklas
Same here. Everything is deployed. Line of sight. Reg keys exist.
But no printers (Canon)
Hi, thanks for reaching out. There have been some changes in how the W10/11 minimum os version requirements are set while uploading the W32app to Intune.
I have updated the tool to reflect the changes in v1.0.0.7
//Nicklas
Hello
Thanks for the great app.
I can download drivers from printer server, but no Intune package is created?
Output from App. “Success! All selected printers have been exported”
And then noting happens? What are i missing?
App runs from a server 2022 with PowerShell 7 (not printer server).
Connected to Tenant, and module IntuneWin32Apps installed
There is nothing in logfile(only that script started).
Hi Nicke, thanks for reaching out! I have received reports of others with the same challenge when running the tool on a server.
Please try to use the New-IntuneWin32AppPackage manually once just to make sure it works. This has been the main issue for other with same challenge.
Do you find any leads in logfile.log (found in the tools folder)?
Let me know how it goes!
Wow, many thanks Nicklas! Really appreciate the work you have put into this!
Hi Nicklas,
Great tool, works like a charm 🙂
An improvement to consider is the ability to add a prefix and postfix to the AppName in intune so all printers could be prefixed with i.e PRN- so they are easy to find in the app list ?
Hi Morten,
Thanks for reaching out and for the feedback. That is an excellent idea I will do my best to make it happen!
//Nicklas Ahlberg
Hi Nicklas,
I am currently trying your tool, and it seems like when the package is installed without line of site to dc the first time, it wont map the printer anymore with a “re-install” button in the company portal. Is this correct?
Would it be an idea to combine this solution from Florian Salzbach to create a scheduled task for the mapping part? This will be even more close to the old gpo style.
And then we could also deploy the package to devices instead of users.
Just an idea. Kind regards!
Manuel
Hi Manuel, thanks for reaching out and the great feedback. Yeah, line of sight to AD is a pre-req for this to properly work as for now, and I’m actually working on a new release similar to your feedback.
Regards
//Nicklas
Forgot to add Florians solution:
https://scloud.work/en/shared-printer-intune/?amp=1
I stuck at “Connect-MSIntuneGraph’ is not recognized as the name of a cmdlet. I’ve istalled the module with “Install-Module Microsoft.Graph -Scope AllUsers”.
If i try “Connect-MgGraph”, it works. What am i doing worng?
Hi Robert, thanks for reaching out.
MS has released some changes to the old PS-modules and I have not had time to update Rock my Printers due to summer holidays.
//Nicklas
Hi Nicklas,
Do you have an ETA on this?
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Good evening Nicklas,
I have the same issue of Nicke but unfortunately I don’t understand your solution: I need to manually launch the “New-IntuneWin32AppPackage” command for create the package?
What kind of source file I need to indicate?
Once I have generated the package, what steps are needed for upload the one into Endpoint Manager Apps? (Step-by-step)?
Thanks
Hi, Rock my Printers will take care of all the steps as long as the powershell module: IntuneWin32App is present
//Nicklas
will this also work for exporting local tcp/ip printers without print server or ad to import into intune for per device deployment?
Hi,
Thanks for your question. I have not tested this but will definitively look into it!
//Nicklas
I just tested and it worked perfectly. Just add your device as the printer server and you are good to go. You do not need to add an AD domain name when using your local device as printer server.
//Nicklas
Hi, I’ve successfully deployed the package for adding a virtual printer via print server (pull printing) but computers won’t add the printer queue, only the drivers.
The detection rule is present in destination client.
I know the issue is probably the client is not in sight with print server if won’t first connected to VPN, any advice for this?
Regards
Hi, you will need to have line of sight to the server while installing the printer. You could re-write the installation script (Deploy-Application.ps1) to add a scheduled task triggered when the device has line of sight.
//Nicklas
Hi Nicklas,
Really cool tool, but when I export a printer, it comes fine in intune as a package.
But when I install this package, it only installs the driver and not the printer.
The computer is Azure-AD Joined.
I am on local network when I try to install.
I can access netlogon on our DC.
I can access and install a printer from our print server via \\”printerservername”\”printshare”
I have SSO to \\”printservername” via Hybrid Cloud Trust
What am I doing wrong?
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
I just tried making a package and it downloads the driver and the package just fine, and it also uploads to intune just fine.
But when I install the package, it only installs the driver, not the printer.
I have access to local DC from the computer I am trying to install this printer.
I also have access to the print server from the computer I’m trying to install the printer on.
can access \\”dcname”\NETLOGON with SSO
Can access \\”printservername” with SSO
Can install printer \\”printservername”\”printshare” with SSO
Hybrid Cloud Trust is set up.
What am I doing wrong?
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
I have now tested with the new version, but it fails when it tries to upload to Intune.
**********************
WARNING: Unable to detect expected ‘Deploy-Application.exe.intunewin’ file after IntuneWinAppUtil.exe invocation
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
**********************
Microsoft broke the IntuneWinAppUtil.exe. When you put Version 1.8.4 into %TEMP%, everything works.
https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool/releases/tag/v1.8.4
With the old IntuneWinAppUtil.exe it can now upload the package to Intune.
But still have the same error with it only installing the driver and not the printer.
Are you accepting push requests to improve this awesome app? Is there an option to upgrade a print driver by redeploying the intune package and changing the version number for the package? Also, if I’m replacing my current printers with these packages, I would need a way to remove the printer if it’s already installed.
Thanks for your work on this.
Thanks Nicklas for the great tool. It’s really awesome.
But I did had an issue getting the printers to be mapped on the user. I had to modify the post-installation section in the deploy-application.ps1, so the user got access to run the script.ps1 script, that maps the printer.
By default it doesn’t seem like the user has access to run a PowerShell script, and has access to the %windir%\temp folder.
So I modified the section, so it looked like this instead, and got it to work:
$TempScriptPath = “$envSystemDrive\RockMyPrinters”
New-Folder -Path $TempScriptPath
Write-Log “Copying script.ps1 to $TempScriptPath”
Copy-Item -Path “$dirSupportFiles\Script.ps1” -Destination $TempScriptPath -Force
Execute-ProcessAsUser -Path “$PSHOME\powershell.exe” -Parameters “-ExecutionPolicy Bypass -Command & { & `”%SystemDrive%\RockMyPrinters\Script.ps1`”; Exit `$LastExitCode }” -Wait
Remove-Folder -Path $TempScriptPath
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Hi Nicklas,
I have just tested the latest version. But I’m getting the following error in the log file, when I try to create a new package using the tool:
WARNING: Unable to detect expected ‘Deploy-Application.exe.intunewin’ file after IntuneWinAppUtil.exe invocation
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
So the intunewin file doesn’t get created. Do you know why this happens suddenly?
I get the same error, when using an older version of the tool.
/Lasse
Hi Lasse, try to replace the IntuneWinAppUtil.exe to version 1.8.4 found here: https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool/releases/tag/v1.8.4
Does this solve the issue?
//Nicklas
Hi Nicklas,
I have now tried it, but it comes with the same error as well. The same happens with the latest version (1.8.5) of the tool.
Also, it seems like this tool does not come with the Rock My Printers tool anymere (I believe it did before).
/Lasse
Thanks for this excellent utility. After following the guide, I have exported some on-premises printers into inTune without issues.
However, when assigned to my test machines the driver appears to get installed as I can see the registry information is present. However, the printer is not mapped for the logged-on user.
Any ideas as to what logs I can check to see why?
Thanks
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Hello.
I don’t know why… but when i run your tool i get the message that all drivers was exported, but when i look in the driver folder there is nothing…
Do you have any idea of what the issue can be?
Hi again,
Thanks for this tool once again.
I’ve been experiencing an issue where the script.ps1 log reports the following error:
“Test-Connection : Testing connection to computer ‘%yourdomain.domain%’ failed: Der opstod en uoprettelig fejl under et databaseopslag”
Sorry for the danish language, but the error means, that the computer could not connect to the domain, for some odd reason (the domain is correct), and when the same command is run manually later, it successfully connects.
But even though the error happens, the script.ps1 exits with exit code 0, so the app installs successfully, but the printer will not get mapped.
So my suggestion to improve this tool, would be to develop some error handling in the script.ps1 script, so if the script outputs an error, the app will not install successfully, so that the end user will get the option to try to reinstall the app.
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Strange, worked for a couple of weeks but with the latest updates it doesn’t work anymore.
Which logfiles can I post to help find the solution?
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Good evening is it possible to deploy USB printers?
Hello! Yes, I believe that should work as long as the printer is connected to USB- and shared by another computer/server.
//Nicklas
Testing the deployment – It fails when uploading the package to Intune.
**********************
PS>TerminatingError(New-IntuneWin32AppIcon): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(New-IntuneWin32AppIcon): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
**********************
Printer Driver is Konica Minolta
Hi, I just released a new version: v1.0.1.4 have a look and let me how it goes
//Nicklas
Hi, make sure the prereqs are fulfilled.
//Nicklas
With the old IntuneWinAppUtil.exe it can now upload the package to Intune.
But still have the same error with it only installing the driver and not the printer.
where is the tool i can’t see it on the site https://github.com/NicklasAhlberg/RockMyPrinters
You will find it on the Releases section to the right.
I keep getting the following error even after replacing IntuneWinAppUtil to 1.8.5
WARNING: Unable to detect expected ‘Deploy-Application.exe.intunewin’ file after IntuneWinAppUtil.exe invocation
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
Hi Tom,
Are you able to use Add-IntuneWin32App manually to create and upload the package to Intune?
//Nicklas
Hi Nicklas,
do you have and email address so i can get some help as i get this error message
WARNING: Unable to detect expected ‘Deploy-Application.exe.intunewin’ file after IntuneWinAppUtil.exe invocation
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
any help with this please
Hi, thanks for reaching out.
We have seen some issues with the latest version of IntuneWinAppUtil.exe located here: %userprofile%/Appdata/Local/Temp
Try to swap it to v1.8.4 instead of v1.8.5
let me know how it goes!
//Nicklas
thanks that worked thanks for all your help
This is really nice work, kudos! Would this work to install virtual queue from i.e. PaperCut?
Glad you like it!
I have not had a chance to test it with PaperCut but I’d say that installing the PaperCut app directly from Intune should be sufficient and RockMyPrinters should not be needed at that point.
But let me know if you have a scenario where it would make sense to use RockMyPrinters for PaperCut and I will look into it.
Best
Nicklas
Hello,
The Intune File is not generated and of course not uploaded.
I get the error message:
WARNING: Unexpected error occurred while packaging Win32 app. Return code from invocation: -532462766
PS>TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
I replaced the IntuneWinAppUtil.exe in Win%userprofile%/Appdata/Local/Temp/2 with version 1.8.4 without success.
The GUI itself doesn’t generate any error:
Depending upon the amount of printers selected, this may take a while
***KONICA MINOLTA C650iSeriesPCL*** Skipping duplicate driver
***FollowMe*** Uploading to Intune
All done. See the log file for more info.
Any suggestions?
Regards,
Roger
Hi Roger,
The IntuneWin32app module has recently been updated. Try to update to the latest version by running: Install-Module -Name IntuneWin32App -Confirm:$false -Force:$true -AllowClobber
Confirm the module has been updated by running:
Import-Module intunewin32app
Get-Module intunewin32app
Make sure you have version 1.4.3
After you have updated you will no longer need to manually replace IntuneWinAppUtil.exe
br,
Nicklas
Hi
thank you for the quick response. I did run the install command again and verified the version which is correct but I still get the same error.
Regards,
Roger
I installed IntuneWin32App on another Server as well and receive the same error as on the other Server.
The Intune package is not generated 🙁
Are you running IntuneWin32App in an elevated command prompt?
Hi Nicklas
Thank you for your awesome work and this great tool, deploying printers.
Do you have any plans separating the user installation part from the system driver installation? We have some shared devices where with your solution only the first user gets the printer connection.
Thanks again for your great work!
Regards,
Reto
Hi Nicklas
Thank you for your awesome work and this great tool,
I have question regarding devices that are used by many users and thye need use the same printer. With actuall verison of th software when i install the printer as a intune app genereate by your software the detection is checking registry keys and if they exist it means that the app (printer) is installed, the registry key is stored in HKEY_LOCAL_MACHINE. With that i have face issue that if i logon with different user on the same device and i will assign the app to this user, intune will detect already existing registry keys and will not install the printer for next user because it will think that this app (printer) is already used. Do you have maybe idea or suggestion how i can overcome this problem and be able to still use your software. I know that i can add custom detection rule in intune but this will brake my automation process and add additontal step to it. I prefer to not go this way becasue i love your out of the box solution.
Hi Nicklas
I have installed the latest version (v.1.0.0.6) from you and also made sure that I have installed version 1.4.3 (Get-Module intunewin32app).
Unfortunately I have the following errors in the log when I want to upload a driver to Intune:
>> TerminatingError”Invoke-Executable : The term ‘Invoke-Executable’ is not recognized as the name…”
>> TerminatingError(Add-IntuneWin32App): “Cannot validate argument on parameter ‘FilePath’. File or folder does not exist”
Thanks for your help 🙂
Hi, this happens if you have not added the required info to the _template before running the tool.
Double check the instructions and let me know still get the same error.
//Nicklas
Are you running IntuneWin32App in an elevated command prompt?
Hello,
thank you for your contribution to the community with this tool. I try to use this everything works great expect installing the printer itself. Intune deployment comes back successful but the printer is not added to the print queue (control panel)
Hi! Does the device have line of sight during the installation?
//Nicklas
Thank you for the reply; yes, the device has a line of sight.
Hi RockenRoll
I have a customer where the printer fails to get added to the local printer list (some of the printers), after they have been uploaded to Intune using RockMyPrinters tool, the following shows in the logfile in RockMyPrinters folder:
Transcript started, output file is C:\Users\Intune\RockMyPrinters\Install-Printer ROS-A4FS-Kontor01 Farve.log
Test-Connection : Testing connection to computer ‘systemfashion.local’ failed: Fejl pga. manglende ressourcer
At C:\Users\Intune\RockMyPrinters\Script.ps1:2 char:5
+ if (Test-Connection ‘systemfashion.local’ -Count 3) {
Hi,
The computer must have line of sight to the printer server to be able to map the printer.
I usually tell my customers to enable VPN when they are working remotely.
//Nicklas
I’ve been using this software successfully until today. Now, I’m getting an “identifier not found” error when trying to log in to a tenant. I’ve tried this with several tenants, and I’m encountering the same issue. Does anyone know how to fix this?
Hi,
A new version will be released in a few days.
//Nicklas
Version 1.0.2.1 is now available.
Hi,
wanted to deploy the RockMyPrinter to my environment – if i wanted to connect to my tenant, there is an error when I want to connect to my tenant.
AADSTS700016: Application with identifier ‘d1ddf0e4-d672-4dae-b554-9d5bdfd93547’ was not found in the directory “TENANTNAME”.
My research on google told me, that on 1st april the hard-coded application registration ID was removed. Is anybody got the same error?
Hi, I am working on a new version. Hope to have it available the next coming days.
Br
Nicklas
Version 1.0.2.1 is now available.
Hi,
I’m working with version 1.0.2.1. The print drivers installed but the printer it self does not show up on the windows device. Also these are HP and Brother printers but they are getting a generic logo.
Does the computer have line of sight to the printer server while installing the printer?
I usually assign the printer as available through the Company Portal and add a note in the description, letting the user know that VPN is required if working remotely.
//Nicklas
Yes, there is line of sight. It’s on the network in the same location as the printer.
Hi, is the printer deployed for all user on devices ?
I need deploy print to shared devices so I need the print for all users.
Hi, it is possible to target it against all users.
You must manually add an assignment to each app/printer as the tool doesn’t create assignments.
//Nicklas
ok that is because i’m deploying it to devices group, not users, because I do not know which user will use shared device, that’s my problem.
Nicklas, I am not a scripting expert and appreciate you creating this tool. We’re just struggling our way through getting Intune setup. I successfully used the tool, without errors and the Win32 apps were created in my Intune portal. However, the printers do not show up on the devices that are a member of the assigned group. What might I be missing?
Hi Carole,
Does the computer have line of sight to the printer server while installing the printer?
I usually assign the printer as available through the Company Portal and add a note in the description, letting the user know that VPN is required if working remotely.
hi nicklas, great tool thank you.
Is there a way to add a domain connectivity before start deploying printer ? Because if the computer is not line of sight to the printer server, the folders are created in registry (HKLM\software\rockmyprinter installation/detection) but the printer is not deployed, so the win32 never try again to deploy when line of sight to the server come back.
Maybe soemething like this in Deploy-Application.ps1 _template file ?
if (Test-Connection $PrintServerIP) {
script to map printer
} else {
no domain communication, ok bye!
Exit
}
Thank you
I corrected the problem changing line 231 in Deploy-Application.ps1 from this :
” If ($deploymentType -ne ‘Uninstall’) {”
to this ” If (($deploymentType -ne ‘Uninstall’) -and (Test-Connection “10.75.10.11” -Quiet)) {”
where 10.75.10.11 is my print server IP, so if the server is not joignable, the registry value are not written.
Hi Nicklas, thank you for developing this smart tool. The install script (%userprofile\RockMyPrinters\Script.ps1) on the client currently performs a connectivity test by pinging the specified domain before installing the printer (Test-Connection ‘my.domain’ -Count 3). Is there a way I can configure or customize this test? In our environment, I need to test connectivity differently.
Also, I’ve successfully installed the printer manually using the “Add-Printer -ConnectionName “\server.domain\printer” from the script, but since the test fails, this will not complete. Again, thank you!
Hi Tore,
Ping is the only available solution at this point. What other method would you like to see?
//Nicklas
Hello again, ping is fine, but in our case we cannot test against the domain. For now, we moved forward by removing the test in script.ps1, packaging it, and manually uploading the new intunewin file.
Thanks for this Nicklas! One question – The deployment shows all of the printers installed on my laptop and also show up the registry. However, I noticed that when I pull up the printer list in Settings not all are there. I deployed seven printers and only four show up.
Is there any troubleshooting you recommend?
Hi Nicklas,
Thanks for building this tool, its working perfectly for our FollowYou Ricoh printers (Using the Ricoh Universal Driver). We are gonna test further with our Zebra label printers.
Is is possible to include support for our SATO CL4NX and CL6NX label printers in future versions?
Thanks!
Hi Nicklas,
I have just updated to version 1.0.2.1 and for all printers that is uploaded to Intune the following info is missing/incorrect
AppVersion
Logo – is generic printer logo for all printers
I have tested with Brother, Konika Minolta, Lexmark and Ricoh and all of them are uploaded with the Generic Logo.
I have earlier suggested that you add the posibility to add the ability to add a prefix when uploading printers in intune so it is easier to find the printers among all the applications as they can be difficult to find depending on the naming standard.
Also it would nice if it was possible to set the App Category when uploading as I normally add a Printers category.
Hello, installed version 1.0.2.1 today but at starting the app i get the following error:
Connecting to tenant, please wait..
The term ‘Connect-MSIntuneGraph’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Please advice
Hi,
You must install the module: IntuneWin32App before running the tool.
//Nicklas
Hi, i am using the latest version available. When connecting to a tenant, i get an error message:
AADSTS500113: No reply address is registered for the application.
What Reply address do i put in?
Hi Gabe,
Did you check the guide over at: https://www.rockenroll.tech/2023/03/14/rock-my-printers/ ?
Specifically check this part: “Register app to be used by Rock my Printers”
Let me know if you still have questions
br
Nicklas