Export Registry Printer Information I came…

Export Registry Printer Information

I came across this post http://www.oncallpros.com/2011/11/02/powershell-export-your-print-configuration-from-registry/ on exporting printer information from the registry in PowerShell. I wanted to offer some constructive suggestions but could find no way to comment so I'll do so here.

First, the article introduces some good PowerShell concepts. I like that he is using Test-Path. Although I'd suggest using Join-Path instead of concatenation. I also like the use of Write-Host to display progress. An even better approach for a future version might be to use Write-Progress. I'm going to see about using that more myself as I think it is a cmdlet that doesn't get the attention it deserves.

But my main concern with the script is that it feels too much like VBScript and parsing text. He's not really taking advantage of the PowerShell pipeline. The core command can be this one line command.

get-childitem HKLM:SYSTEMCurrentControlSetControlPrint -Recurse |
get-itemproperty |
select @{Name="RegKey";Expression={Convert-Path$_.pspath}},* -exclude PSParentPath,PSChildname,PSProvider,PSPath

I wasn't looking for a one line command, it just turned out that way.

Personally, this is the code that I would put in the script because it writes objects to the pipeline. Now I have options. If I want a formatted text list I can do it:

PS C:> c:sciriptsget-printerregistry.ps1 | format-list | out-file printers.txt

Or perhaps today I need it as an xml file I wan reimport later.

PS C:> c:sciriptsget-printerregistry.ps1 | export-clixml printers.xml

The point is to offer flexibility and think objects in the pipeline.

On a more personal (pet peeve) note, if you are going to post code samples more than a few lines long, please, please offer a text file download. Copying and pasting code from websites is ugly and time consuming.

So, look at the original post and look at my suggestions. What do you think?

Powershell – Export your print configuration from registry | On-Call Pros, LLC

I was asked to produce this script for follow up checking of driver versions later on or possible settings which can cause problems.   The idea would be that a master file is updated on a website and …

TechEd Atlanta – Managing the Registry with PowerShell

My second TechEd talk was about managing the registry with Windows PowerShell. If you were in the session you know that I stressed heavily using the PowerShell provider and cmdlets. For remote computers, leverage PowerShell’s remoting infrastructure. But I also discussed using the “raw” .NET classes as well as WMI (if you are really desperate and like a challenge).

The session video can be found on the TechEd North America site here. A zip file with the demos, a transcript and PDF of the slide deck can be downloaded here.

Get Registry Size and Age

I’m not sure why the registry has been on my mind lately. I probably need a vacation to get out more. But I put together a relatively simple Windows PowerShell function to retrieve registry statistics that you might find useful. My Get-Registry function will return information about the size of a registry as well as its age. Continue reading

Importing and Exporting Registry Items

A while ago I posted a function to export registry items to either a CSV or XML file. Recently I had a question on Twitter about importing, which I assumed meant from my exported file. The import is actually pretty easy as I’ll show you, although it did require a change to the original Export-Registry function. Continue reading

Export Registry

Over the last week or so I’ve posted some functions for testing whether a given registry item exists or not, or even validating its value. To round this out, today I have an advanced function that makes it easier to export parts of the registry on the local computer. Continue reading