Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
No me devuelve valores ejecución powershell
#1
Buenas tardes,

Estoy configurando un módulo de powershell que me revisa el estado de las impresoras, el módulo llega al servidor Pandora pero con un valor nulo. En cambio si lo ejecuto por consola me devuelve el siguiente valor:

Error

\\srvprinter01\POS-80C-SAL09


He probado el módulo de distintas maneras, ya no sé ni cuantas vueltas le he dado, solo me falta probar como module_plugin, también he probado como generic_data_string pero en este caso ni inicia el módulo.

module_begin
module_name Estado_Impresoras
module_type async_string
module_exec "C:\WINDOWS\system32\WindowsPowerShell\v1.0\"powershell.exe -File "%ProgramFiles%\Pandora_Agent\util"\statusprinters.ps1
module_description Revisa el estado impresoras
module_group Networking
module_end

module_begin
module_name Printer_Status
module_type async_string
module_exec C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -Command "get-printer | select printerstatus, name, computername  | Foreach { If ($_.PrinterStatus -ne "'normal'") {Write-Output $_.PrinterStatus, $_.name}}"
module_description Revisa el estado impresoras
module_group Networking
module_end



Muchas gracias.
 Reply
#2
(02-26-2019, 05:51 PM)rnacher Wrote: Buenas tardes,

Estoy configurando un módulo de powershell que me revisa el estado de las impresoras, el módulo llega al servidor Pandora pero con un valor nulo. En cambio si lo ejecuto por consola me devuelve el siguiente valor:

Error

\\srvprinter01\POS-80C-SAL09


He probado el módulo de distintas maneras, ya no sé ni cuantas vueltas le he dado, solo me falta probar como module_plugin, también he probado como generic_data_string pero en este caso ni inicia el módulo.

module_begin
module_name Estado_Impresoras
module_type async_string
module_exec "C:\WINDOWS\system32\WindowsPowerShell\v1.0\"powershell.exe -File "%ProgramFiles%\Pandora_Agent\util"\statusprinters.ps1
module_description Revisa el estado impresoras
module_group Networking
module_end

module_begin
module_name Printer_Status
module_type async_string
module_exec C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -Command "get-printer | select printerstatus, name, computername  | Foreach { If ($_.PrinterStatus -ne "'normal'") {Write-Output $_.PrinterStatus, $_.name}}"
module_description Revisa el estado impresoras
module_group Networking
module_end



Muchas gracias.

Buenos días, rnacher

Prueba a ejecutar el módulo ajustando los parámetros indicados: 

module_type (tanto generic_data_string como async_string)

module_exec [ruta]\powershell.exe -Command [ruta]\statusprinters.ps1

La ejecución del primer módulo debería ser correcta cambiando el parámetro "-File" por "-Command" como indico en la línea superior. 

Un saludo, 

Eduardo.
 Reply
#3
(02-27-2019, 12:06 PM)eduardo.corral Wrote:
(02-26-2019, 05:51 PM)rnacher Wrote: Buenas tardes,

Estoy configurando un módulo de powershell que me revisa el estado de las impresoras, el módulo llega al servidor Pandora pero con un valor nulo. En cambio si lo ejecuto por consola me devuelve el siguiente valor:

Error

\\srvprinter01\POS-80C-SAL09


He probado el módulo de distintas maneras, ya no sé ni cuantas vueltas le he dado, solo me falta probar como module_plugin, también he probado como generic_data_string pero en este caso ni inicia el módulo.

module_begin
module_name Estado_Impresoras
module_type async_string
module_exec "C:\WINDOWS\system32\WindowsPowerShell\v1.0\"powershell.exe -File "%ProgramFiles%\Pandora_Agent\util"\statusprinters.ps1
module_description Revisa el estado impresoras
module_group Networking
module_end

module_begin
module_name Printer_Status
module_type async_string
module_exec C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -Command "get-printer | select printerstatus, name, computername  | Foreach { If ($_.PrinterStatus -ne "'normal'") {Write-Output $_.PrinterStatus, $_.name}}"
module_description Revisa el estado impresoras
module_group Networking
module_end



Muchas gracias.

Buenos días, rnacher

Prueba a ejecutar el módulo ajustando los parámetros indicados: 

module_type (tanto generic_data_string como async_string)

module_exec [ruta]\powershell.exe -Command [ruta]\statusprinters.ps1

La ejecución del primer módulo debería ser correcta cambiando el parámetro "-File" por "-Command" como indico en la línea superior. 

Un saludo, 

Eduardo.

Hola Eduardo,

También lo probé, pero lo he probado de nuevo por si acaso, aclarar que con el espacio de program files no responde igual que si ponemos file, así que he puesto el ps1 en una carpeta sin espacios.

El resultado es el mismo, me llega sin ningún valor (mira la imagen adjunta). Pone un 0, pero si me sitúo encima no hay valores. El campo está definido como async_string

Y si pruebo de ejecutarlo desde el interprete de comandos me devuelve varios valores (mirar segunda imagen adjunta)

Saludos.


Attached Files


.png   ps1.PNG (Size: 3.63 KB / Downloads: 3)
.png   ps2.PNG (Size: 5.83 KB / Downloads: 3)
 Reply
#4
(02-27-2019, 01:25 PM)rnacher Wrote:
(02-27-2019, 12:06 PM)eduardo.corral Wrote:
(02-26-2019, 05:51 PM)rnacher Wrote: Buenas tardes,

Estoy configurando un módulo de powershell que me revisa el estado de las impresoras, el módulo llega al servidor Pandora pero con un valor nulo. En cambio si lo ejecuto por consola me devuelve el siguiente valor:

Error

\\srvprinter01\POS-80C-SAL09


He probado el módulo de distintas maneras, ya no sé ni cuantas vueltas le he dado, solo me falta probar como module_plugin, también he probado como generic_data_string pero en este caso ni inicia el módulo.

module_begin
module_name Estado_Impresoras
module_type async_string
module_exec "C:\WINDOWS\system32\WindowsPowerShell\v1.0\"powershell.exe -File "%ProgramFiles%\Pandora_Agent\util"\statusprinters.ps1
module_description Revisa el estado impresoras
module_group Networking
module_end

module_begin
module_name Printer_Status
module_type async_string
module_exec C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -Command "get-printer | select printerstatus, name, computername  | Foreach { If ($_.PrinterStatus -ne "'normal'") {Write-Output $_.PrinterStatus, $_.name}}"
module_description Revisa el estado impresoras
module_group Networking
module_end



Muchas gracias.

Buenos días, rnacher

Prueba a ejecutar el módulo ajustando los parámetros indicados: 

module_type (tanto generic_data_string como async_string)

module_exec [ruta]\powershell.exe -Command [ruta]\statusprinters.ps1

La ejecución del primer módulo debería ser correcta cambiando el parámetro "-File" por "-Command" como indico en la línea superior. 

Un saludo, 

Eduardo.

Hola Eduardo,

También lo probé, pero lo he probado de nuevo por si acaso, aclarar que con el espacio de program files no responde igual que si ponemos file, así que he puesto el ps1 en una carpeta sin espacios.

El resultado es el mismo, me llega sin ningún valor (mira la imagen adjunta). Pone un 0, pero si me sitúo encima no hay valores. El campo está definido como async_string

Y si pruebo de ejecutarlo desde el interprete de comandos me devuelve varios valores (mirar segunda imagen adjunta)

Saludos.

Investigando un poco más creo haber encontrado una parte del problema. Si me guardo el resultado del module_exec en un fichero de texto también está vacío, y he caído en que Pandora se ejecuta como system, y yo estoy haciendo una consulta de las impresoras del usuario administrador. Ahora he configurado el servicio de pandora para que se ejecute como administrador y en el fichero de texto que guardo ya no está vacío pero el resultado que me llega a Pandora sigue siendo vacío. Podría ser que el resultado se obtenga de una segunda ventana y por eso no aparece nada? por lo que veo en el debug ejecuta un cmd /c y después el powershell, al final son ventanas independientes y el Pandora se queda con el resultado del cmd?

Hola Eduardo,

Ya he conseguido solventarlo, pero metiendo todo el contenido del script en la misma línea, y eso podría indicar que realmente el problema es que abre otra ventana distinta y Pandora se queda con el resultado de la ventana de origen, que es vacío.

Si encuentras la forma de ejecutar scripts ya me dices, de momento lo dejo así y arrancando el servicio como Administrador:

module_begin
module_name Printer_Status
module_type async_string
module_exec C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -Command "get-printer | select printerstatus, name, computername  | Foreach { If ($_.PrinterStatus -ne "'normal'") {Write-Output $_.PrinterStatus, $_.name}}"
module_description Revisa el estado impresoras
module_group Networking
module_end
 Reply


Users browsing this thread: 1 Guest(s)


(c) 2006-2018 Artica Soluciones Tecnológicas. Contents of this wiki are under Create Common Attribution v3 licence. | pandorafms.com | pandorafms.org

Theme © MyBB Themes