- July 21, 2016 at 7:30 am #47699
I'm quite new to PowerShell and need some advise/help from you. The goal is to delete all mapped printers that are listed in a file.
It works with only one printer name in the text file, but not with multiple. I'm using Windows 7 with SP1
Thanks in advance for your help.
July 21, 2016 at 9:14 am #47720
- This topic was modified 2 months, 1 week ago by Daniel Tobler.
Your where-object statement is actually comparing anything to the list of printers. Also its inefficient to read the file of printer names for every object on the pipeline
Run this to test that you're seeing the printers you expect
$printers = Get-Content C:\MFPs.txt
Get-WmiObject -Class Win32_Printer | where Name -in $printers
There isn't a Delete method on the Win23_Printer class so try
Get-WmiObject -Class Win32_Printer | where Name -in $printers | Remove-WmiObjectJuly 21, 2016 at 2:08 pm #47750
Thanks for your fast reply. The command you suggest is working as excepted, thanks a lot. Good hint regarding getting content of file.
Get-WmiObject -Class Win32_Printer | Where-Object -Property ShareName -In $Printers | Remove-WmiObject
What is better, WmiObject or CimInstance? Does it matter?
Do you have an idea or advise how to handle printers that are set as "default printers"? When I remove such a printer trough the script, none of the remaining printers get assigned as "default printer".
Thanks and best regards,
DanielJuly 21, 2016 at 2:38 pm #47766
guruParticipantJuly 21, 2016 at 8:10 pm #47840
Thanks for the link.
@Richard Siddaway, thanks for the post.
You must be logged in to reply to this topic.