script para cambiar el nombre de una impresora que ya existe:
# — CONFIGURACIÓN —
$nombreFijo = “fax-immutable”
$rutaLog = “C:\remoto\log_fax.txt”
# 1. Espera breve
Start-Sleep -Seconds 2
# DIAGNÓSTICO: Muestra en pantalla qué impresoras redirigidas ve el sistema
Write-Host “— IMPRESORAS REDIRIGIDAS DETECTADAS —” -ForegroundColor Cyan
Get-Printer | Where-Object { $_.Name -like “*redir*” } | Select-Object Name, PortName | Format-Table -AutoSize
Write-Host “—————————————–” -ForegroundColor Cyan
# 2. BÚSQUEDA: “fax” Y “redir” (Sin distinción de mayúsculas/minúsculas)
$impresoraOrigen = Get-Printer | Where-Object { $_.Name -like “*fax*” -and $_.Name -like “*redir*” } | Select-Object -First 1
if ($impresoraOrigen) {
$nombreReal = $impresoraOrigen.Name
$puertoDinamic = $impresoraOrigen.PortName
# Escribe en el log sin tildes para evitar errores
“$(Get-Date): ENCONTRADO → $nombreReal (Puerto: $puertoDinamic)” | Out-File $rutaLog -Append
try {
# 3. EL CAMBIAZO (Set-Printer)
$miFija = Get-Printer -Name $nombreFijo -ErrorAction Stop
if ($miFija.PortName -ne $puertoDinamic) {
Set-Printer -Name $nombreFijo -PortName $puertoDinamic
“$(Get-Date): EXITO - Puerto actualizado a $puertoDinamic” | Out-File $rutaLog -Append
Write-Host “CAMBIO REALIZADO CORRECTAMENTE” -ForegroundColor Green
} else {
“$(Get-Date): OK - El puerto ya era correcto.” | Out-File $rutaLog -Append
Write-Host “OK: Ya estaba configurada.” -ForegroundColor Green
}
} catch {
$err = $_.Exception.Message
“$(Get-Date): ERROR CRITICO: $err” | Out-File $rutaLog -Append
Write-Host “FALLO: $err” -ForegroundColor Red
}
} else {
“$(Get-Date): ERROR - No se encontro impresora con 'fax' + 'redir'” | Out-File $rutaLog -Append
Write-Host “NO SE ENCONTRO NINGUNA IMPRESORA QUE COINCIDA” -ForegroundColor Yellow
Write-Host “Revisa la lista azul de arriba para ver los nombres reales.” -ForegroundColor Yellow
}
la prueba se hizo con un fax. ojo.
y este es para abrir el cajon:
# Busca cualquier impresora que contenga “TM-m30” en el nombre
$printer = Get-Printer | Where-Object { $_.Name -like “*TM-m30*” } | Select-Object -First 1
if ($printer) {
# Comando ESC/POS binario puro para Epson
$command = [char]27 + [char]112 + [char]0 + [char]25 + [char]250
$command | Out-Printer -Name $printer.Name
}
