Uso de winexe para ejecutar commands "wmic" en una máquina con Windows

Usamos winexe para ejecutar commands en nuestras máquinas Windows desde Linux. Por ejemplo:

winexe -A authfile //syspc4.domain.com "ipconfig /all" 

Es de esperar que lo anterior imprima lo mismo que si hubiera ejecutado cmd.exe en una máquina con Windows y escrito "ipconfig / all"

Mi objective final es get de forma remota (desde Linux) el número de serie y el nombre del model de la máquina de Windows. Esto es muy fácil de lograr con los dos commands siguientes en cmd.exe localmente en la máquina de Windows (Windows XP):

 wmic bios get serialnumber wmic computersystem get model 

Sin embargo, cualquier bash de ejecutar esto a través de winexe simplemente no funciona — después de presionar Enter, no pasa nada. Sin error, nada Simplemente parecerá estar congelado hasta que ctrl + c salga de él.

Aquí están los commands que he intentado:

 winexe -A authfile //syspc4.domain.com "wmic bios get serialnumber" winexe -A authfile //syspc4.domain.com "cmd wmic bios get serialnumber" winexe -A authfile //syspc4.domain.com "cmd /c wmic bios get serialnumber" winexe -A authfile //syspc4.domain.com "cmd" Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>wmic bios get serialnumber 

En todos los casos, sin respuesta. Una vista rápida de winexe –help revela una opción de logging, pero incluso con ese set, no hay ningún logging de salida de ningún tipo.

Encontré la siguiente publicación en otro foro, en el que la persona pregunta casi exactamente lo mismo que yo, y naturalmente nunca recibió una respuesta: http://www.linuxquestions.org/questions/linux-software-2/ winexe-780343 /

EDITAR : con la debugging activada, aquí es donde se bloquea:

 winexe -d 6 -A authfile //syspc4.domain.com "wmic bios get serialnumber" ... IN: async_open(\pipe\ahexec, 2) IN: async_open_recv CTRL: Sending command: get version CTRL: Sending command: run wmic bios get serialnumber CTRL: Recieved command: std_io_err 15C40030 IN: async_open(\pipe\ahexec_stdin15C40030, 2) IN: async_open(\pipe\ahexec_stdout15C40030, 2) IN: async_open(\pipe\ahexec_stderr15C40030, 2) IN: async_open_recv IN: async_open_recv IN: async_open_recv **hangs forever here** Then ctrl+c: ^CAborting... ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: on_ctrl_pipe_error - NT_STATUS_PIPE_DISCONNECTED 

Sin embargo, lo curioso es que incluso con un command que no falla (como ipconfig / all), da exactamente lo mismo:

 ... IN: async_open(\pipe\ahexec, 2) IN: async_open_recv CTRL: Sending command: get version CTRL: Sending command: run ipconfig /all CTRL: Recieved command: std_io_err 15C40031 IN: async_open(\pipe\ahexec_stdin15C40031, 2) IN: async_open(\pipe\ahexec_stdout15C40031, 2) IN: async_open(\pipe\ahexec_stderr15C40031, 2) IN: async_open_recv IN: async_open_recv IN: async_open_recv Windows IP Configuration ... ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: smb_raw_read_recv - NT_STATUS_PIPE_DISCONNECTED ERROR: on_ctrl_pipe_error - NT_STATUS_PIPE_DISCONNECTED 

Solutions Collecting From Web of "Uso de winexe para ejecutar commands "wmic" en una máquina con Windows"

Utilice el Cliente WMI aquí: http://www.orvant.com/packages/ y ejecute los commands WMIC directamente desde Linux, aunque deberá usar los equivalentes WQL de sus commands, ya que esta versión no es compatible con los commands no WMIC. Consultas WQL.

El último código winexe (del repository "actual" de git, también conocido como "winexe-waf"; date de noviembre de 2013) no se bloquea cuando lo pruebo. Construyo winexe en Debian Wheezy con Samba 4.0.10 packages de Unstable y ejecuto winexe -U "<user>%<pwd>" //192.168.1.2 'wmic bios get serialnumber' donde 192.168.1.2 es la dirección IP de un VirtualBox máquina virtual con Windows 7 Professional SP1. La salida es la siguiente.

 $ winexe -U "<user>%<pwd>" //192.168.1.2 'wmic bios get serialnumber' SerialNumber 0 $ winexe -U "<user>%<pwd>" //192.168.1.2 'wmic computersystem get model' Model VirtualBox 

Intentaría esos commands con el interruptor de debugging de winexe activado. Puede upload el nivel de debugging (parece ser un número como 0,1,2,3, etc.).

Ejemplo

Aquí estoy ejecutando su command tal como está, excepto que agregué el modificador -d 3 .

 $ winexe -A authfile -d 3 //syspc4.domain.com "wmic bios get serialnumber" ERROR: Unable to open cnetworkingentials file! [param/loadparm.c:587:init_globals()] Initialising global parameters [param/loadparm.c:2462:lp_load()] lp_load: refreshing parameters from /dev/null [param/params.c:556:pm_process()] params.c:pm_process() - Processing configuration file "/dev/null" [param/loadparm.c:1343:lp_add_hidden()] adding hidden service IPC$ [param/loadparm.c:1343:lp_add_hidden()] adding hidden service ADMIN$ [auth/cnetworkingentials/cnetworkingentials_krb5.c:171:cli_cnetworkingentials_set_ccache()] failed to get principal from default ccache: No such file or directory: open(/tmp/krb5cc_500): No such file or directory [winexe/winexe.c:304:main()] winexe version 0.80 This program may be freely networkingistributed under the terms of the GNU GPL [auth/auth.c:447:auth_register()] AUTH backend 'winbind_samba3' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'winbind' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'name_to_ntstatus' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'fixed_challenge' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'unix' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'anonymous' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'sam' registenetworking [auth/auth.c:447:auth_register()] AUTH backend 'sam_ignonetworkingomain' registenetworking [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'krb5' registenetworking [auth/gensec/gensec.c:1205:gensec_register()] gensec subsystem fake_gssapi_krb5 is disabled [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'schannel' registenetworking [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'spnego' registenetworking [auth/gensec/gensec.c:1205:gensec_register()] gensec subsystem gssapi_spnego is disabled [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'gssapi_krb5' registenetworking [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'gssapi_krb5_sasl' registenetworking [auth/gensec/gensec.c:1229:gensec_register()] GENSEC backend 'ntlmssp' registenetworking [lib/util/util.c:334:interpret_addr()] sys_gethostbyname: Unknown host. syspc4.domain.com [lib/socket/interface.c:103:add_interface()] added interface ip=192.168.1.110 nmask=255.255.255.0 [winexe/winexe.c:322:main()] ERROR: Failed to open connection - NT_STATUS_NO_MEMORY