# Find Local Printers (VBS)



## JoshJarvis (Sep 13, 2008)

I need a script that will do the following: 


1. Find all local printers for both XP and W2k. 
2. Put all the local printer names in a text file c:\localprinters.txt. 
3. If no local printers are found exit script without writing a text file. 




This is what I have been working with: 

Const ForWriting = 2 
strComputer = "." 
Set objNetwork = CreateObject("Wscript.Network") 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
'strText = vbCrLf


Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer") 
For Each objPrinter in colPrinters 
If objPrinter.Attributes And 64 Then 
strText = strText & objPrinter.Name & vbCrLf
End If 
Next 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.CreateTextFile _ 
("C:\LocalPrinters.txt", ForWriting, True) 
objFile.Write strText 
objFile.Close 

This creates a text file named: c:\localprinters.txt even if it didn't find a local printer installed (It just leaves it blank.)

Thank you,


----------

