This one turned out to be much simpler to put together. I may end up doing a more detailed write up in the future just to show how easy it can be to create a DSC resource. Take a look at how simple the config looks for MapPrinter.
MapPrinter NetworkPrinter { Path = '\\server\EpsonPrinter' }
It does not get much simpler than that. And removing a printer mapped this way is just as easy.
MapPrinter NetworkPrinter { Path = '\\server\EpsonPrinter' Ensure = "Absent" }
This will map this printer for every user on the system. There is no way to target just a user with the method that I used. To correctly remove a printer mapped this way, it is best to use the DSC resource to do so. If you have to remove it by hand, here is the command that does the magic.
$path = "\\server\EpsonPrinter" rundll32 printui.dll,PrintUIEntry /gd /n$path
It feels like the printer is slow to show up the first time this is ran. Restarting the spooler speeds up the process. I don't think the spooler immediately sees the changes.
The KevMar_MapPrinter was added to my other module that I have up on https://github.com/kmarquette/Powershell
No comments:
Post a Comment