Anyone Attempting Deploying Printers through SaltStack?
-
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
-
Hmm, the thing is each printer will have its own definition.
I treat this as I would with any software installer, use SS for performance and not rely much of its module but more of my batch scripting.
So you create state where you would through some files on the client machines, then batch file next to it, and then the state would launch the the batch file and execute commands.
Unless SS create module for this, there is no easy way.
-
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
I was thinking of looking in to this because there are some issues where, through Group Policy Preferences, Windows machines do not get printers/copiers deployed to them (via GP) unless the printer's driver had been previously installed.
It was only an issue on Win10 machines where the logged in user was not a local admin.
SS is good at getting stuff done, so I had thought about looking in to this a while ago, but haven't yet.
-
I did a quick look, and I can't find ANYTHING on SaltStack and printer deployment.
So I'm thinking the only way to do it in a non-domain environment is using a mix of SaltStack's Local Group Policy module and a Scheduled Task (at logon) to run a PowerShell script that adds the printers:
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.win_lgpo.html
https://docs.microsoft.com/en-us/powershell/module/printmanagement/add-printer?view=win10-psIt seems pretty straight forward from the high-level overview I just did, perhaps I'll look deeper into it sometime in the next couple weeks if you don't get to it sooner.
-
@scottalanmiller Haven't looked into that yet but I plan on investigating. I do it all manually right now.
-
I never tested this, but I wondered what If I create VM machine, could be windows server, could be normal windows and installed every printer on it, without any fancy roles.
And shared the printer from the Windows machine, cause installed printers on windows is easy and you would expect every company to support windows the best.
Then users would be told to go to ip using windows explorer and double click printer to add it.
That would work ? right ?
-
Somewhere in my email I have a PDF about deploying printers via Powershell. My plan was if I ever wanted to create something in salt to deploy printers I would look at that first.
-
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
-
@jaredbusch said in Anyone Attempting Deploying Printers through SaltStack?:
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
We might do that if we can't get this figured out in a better way.
-
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
@jaredbusch said in Anyone Attempting Deploying Printers through SaltStack?:
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
We might do that if we can't get this figured out in a better way.
You can run the powershell with SaltStack so the end result is what you need.
-
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
@jaredbusch said in Anyone Attempting Deploying Printers through SaltStack?:
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
We might do that if we can't get this figured out in a better way.
Something like this should work.
salt 'host' cmd.powershell 'command'
-
@black3dynamite said in Anyone Attempting Deploying Printers through SaltStack?:
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
@jaredbusch said in Anyone Attempting Deploying Printers through SaltStack?:
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
We might do that if we can't get this figured out in a better way.
Something like this should work.
salt 'host' cmd.powershell 'command'
Well yes, but that's just running PowerShell and using Salt as the transport. Letter of the approach, but not the intent.
-
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
@jaredbusch said in Anyone Attempting Deploying Printers through SaltStack?:
I cast my part-time person to set up printer deployment via power shell. And I know we have that working with a few caveats that still need testing.
We might do that if we can't get this figured out in a better way.
Like what?
There's no actual Salt module or Salt states module specifically for printers. This means you'll need to do it via the win_lgpo module and PowerShell.
The win_lgpo module uses the local admx/adml files, so make sure those are up to date on your Windows systems if you use any of them.
-
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
I was thinking of looking in to this because there are some issues where, through Group Policy Preferences, Windows machines do not get printers/copiers deployed to them (via GP) unless the printer's driver had been previously installed.
It was only an issue on Win10 machines where the logged in user was not a local admin.
SS is good at getting stuff done, so I had thought about looking in to this a while ago, but haven't yet.
I solved this with GPO GPP by having a print server with the drivers, so the Win10 machines could reference the print queue for the driver, yet set them up as an IP (direct) printer. You can set the ability to install the drivers even as non admin via GPO as well.
-
@dashrender said in Anyone Attempting Deploying Printers through SaltStack?:
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
I was thinking of looking in to this because there are some issues where, through Group Policy Preferences, Windows machines do not get printers/copiers deployed to them (via GP) unless the printer's driver had been previously installed.
It was only an issue on Win10 machines where the logged in user was not a local admin.
SS is good at getting stuff done, so I had thought about looking in to this a while ago, but haven't yet.
I solved this with GPO GPP by having a print server with the drivers, so the Win10 machines could reference the print queue for the driver, yet set them up as an IP (direct) printer. You can set the ability to install the drivers even as non admin via GPO as well.
I am already deploying them via GPP via a print server. I cannot deploy them via TCP/IP, they need to be deployed as "Shared" or the PaperCut software won't work correctly. Unless that's changed within the last 3 years, I have to keep doing it via "Shared" method in Group Policy Preferences.
It was working out perfectly for the last few years... it's only recently the issue came up. Something in Win10 changed compared to how it was previously, where any new printers deployed to a computer via GPP where the printer driver wasn't previously installed will not install unless a user with local admin privs logs in to do it first.
I'd rather not hijack this thread about that, it's a very infrequent thing because new images have the drivers on them already. So not really worth discussing in a new topic as I'm not worrying about it anymore.
I'm still interested in sometime seeing if SaltStack would be able to deploy printers to computers as effectively or more so than current methods. I may look in to it more soon, but the priority is low because things are working fine as they are.
I'm mainly focused on getting SaltStack to manage the more global configurations first... before getting into more granular configurations like printer deployments.
-
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
@dashrender said in Anyone Attempting Deploying Printers through SaltStack?:
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
I was thinking of looking in to this because there are some issues where, through Group Policy Preferences, Windows machines do not get printers/copiers deployed to them (via GP) unless the printer's driver had been previously installed.
It was only an issue on Win10 machines where the logged in user was not a local admin.
SS is good at getting stuff done, so I had thought about looking in to this a while ago, but haven't yet.
I solved this with GPO GPP by having a print server with the drivers, so the Win10 machines could reference the print queue for the driver, yet set them up as an IP (direct) printer. You can set the ability to install the drivers even as non admin via GPO as well.
I am already deploying them via GPP via a print server. I cannot deploy them via TCP/IP, they need to be deployed as "Shared" or the PaperCut software won't work correctly. Unless that's changed within the last 3 years, I have to keep doing it via "Shared" method in Group Policy Preferences.
It was working out perfectly for the last few years... it's only recently the issue came up. Something in Win10 changed compared to how it was previously, where any new printers deployed to a computer via GPP where the printer driver wasn't previously installed will not install unless a user with local admin privs logs in to do it first.
I'd rather not hijack this thread about that, it's a very infrequent thing because new images have the drivers on them already. So not really worth discussing in a new topic as I'm not worrying about it anymore.
I'm still interested in sometime seeing if SaltStack would be able to deploy printers to computers as effectively or more so than current methods. I may look in to it more soon, but the priority is low because things are working fine as they are.
I'm mainly focused on getting SaltStack to manage the more global configurations first... before getting into more granular configurations like printer deployments.
I only mentioned Direct IP printing because that's what I'm doing, but shared should work just as well.
-
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
It was working out perfectly for the last few years... it's only recently the issue came up. Something in Win10 changed compared to how it was previously, where any new printers deployed to a computer via GPP where the printer driver wasn't previously installed will not install unless a user with local admin privs logs in to do it first.
That changed early last year. New drivers now need to be signed and it is taking printer manufactures forever to get them signed the way Microsoft wants them to... it's bitten us more then once.
-
I've created a Salt execution module before, and it wasn't that hard, anyone with a bit of Python experience should be able to make one. I imagine a state module wouldn't be much harder.
- Here is how I would tackle this:
- Take a look at how you would do this in powershell
- Use Process Monitor so see anything behind the scenes that is being done
- If Powershell isn't enough, reverse engineer lgpo
- I haven't done this before so I don't know if there might be a better way to do this other than
- Process Monitor
- Look at the Salt source code to see what interfaces they provide to interacting with Windows already
- Create module
- Take a look at how you would do this in powershell
- Here is how I would tackle this:
-
@flaxking that thought had crossed my mind, and as we use Salt broadly with many clients, it could easily make sense to invest the time in that.
-
@obsolesce said in Anyone Attempting Deploying Printers through SaltStack?:
@scottalanmiller said in Anyone Attempting Deploying Printers through SaltStack?:
That's pretty much it. Windows desktops (and laptops) and we'd like to try using Salt to deploy printers instead of going through traditional Group Policy or login scripts. Anyone attempted this or know the recommended approach?
I was thinking of looking in to this because there are some issues where, through Group Policy Preferences, Windows machines do not get printers/copiers deployed to them (via GP) unless the printer's driver had been previously installed.
It was only an issue on Win10 machines where the logged in user was not a local admin.
SS is good at getting stuff done, so I had thought about looking in to this a while ago, but haven't yet.
Did the issue with GPP and Windows 10 have to do with the point to print issue and the driver not being a packaged driver?