Em vez de canalizar as impressoras para um arquivo de texto e, em seguida, tentar usá-las, lendo-as novamente como strings básicas, use as propriedades dos objetos retornados de Get-Printer.
E.G .:
# Get list of printers from computer "print-server".
$Printers = Get-Printer -ComputerName print-server
# Iterate through the returned list of printers.
ForEach ($Printer in $Printers)
{
# Check to see if the current printer is shared or not.
If ($Printer.Shared) {
# If it's shared, add it by using the print server name and printer name properties of the current printer object.
Add-Printer -ConnectionName "\$($Printer.ComputerName)\$($Printer.Name)"
}
}