Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created December 30, 2017 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/202d09f1e52a3de07a9d2fc955dda12b to your computer and use it in GitHub Desktop.
Save parzibyte/202d09f1e52a3de07a9d2fc955dda12b to your computer and use it in GitHub Desktop.
Obtener lista de impresoras usando PHP y el powershell de Windows (funciona sólo cuando versión de Windows > 7)
<?php
$ruta_powershell = 'c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'; #Necesitamos el powershell
$opciones_para_ejecutar_comando = "-c";#Ejecutamos el powershell y necesitamos el "-c" para decirle que ejecutaremos un comando
$espacio = " "; #ayudante para concatenar
$comillas = '"'; #ayudante para concatenar
$comando = 'get-WmiObject -class Win32_printer |ft name'; #Comando de powershell para obtener lista de impresoras
$lista_de_impresoras = array(); #Aquí pondremos las impresoras
exec(
$ruta_powershell
. $espacio
. $opciones_para_ejecutar_comando
. $espacio
. $comillas
. $comando
. $comillas,
$resultado,
$codigo_salida);
if ($codigo_salida === 0) {
if (is_array($resultado)) {
#Omitir los primeros 3 datos del arreglo, pues son el encabezado
for($x = 3; $x < count($resultado); $x++){
$impresora = trim($resultado[$x]);
if (strlen($impresora) > 0) # Ignorar los espacios en blanco o líneas vacías
array_push($lista_de_impresoras, $impresora);
}
}
echo "<pre>";
print_r($lista_de_impresoras);
echo "</pre>";
} else {
echo "Error al ejecutar el comando.";
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment