Página 1 de 1

[RESUELTO] wmi_info y comandos remotos

Publicado: 23 de marzo de 2018 - 17:56
por empbilly
Hola amigos,

¿Cómo puedo declarar la opción wmi_filter? ¿Podría ser como se muestra a continuación?

Código: Seleccionar todo

wmi_info(keys=['Win32_NetworkAdapter'])['name']['index']

Re: wmi_info

Publicado: 23 de marzo de 2018 - 19:17
por dcardon
Hola Empbilly,
empbilly escribió: 23 de marzo de 2018 - 17:56 Hola amigos,

¿Cómo puedo declarar la opción wmi_filter? ¿Podría ser como se muestra a continuación?

Código: Seleccionar todo

wmi_info(keys=['Win32_NetworkAdapter'])['name']['index']
wmi_info genera una estructura de datos del módulo wmi. Puede imprimir la estructura de datos o sus partes internas:

Código: Seleccionar todo

wmi_data = wmi_info(keys=['Win32_NetworkAdapter'])['Win32_NetworkAdapter']
print wmi_data
print(wmi_data[0].keys())
for item in wmi_data:
    print item['Caption']


Salud,

Denis

Re: wmi_info

Publicado: 23 de marzo de 2018 - 20:45
por empbilly
A partir del ejemplo anterior, ¿podría hacer un script que deshabilite vía wapt, por ejemplo una tarjeta inalámbrica de computadora?

Re: wmi_info

Publicado: 24 de marzo de 2018 - 23:33
por dcardon
Hola Empbilly,
empbilly escribió: 23 de marzo de 2018 - 20:45. A partir del ejemplo anterior, ¿podría crear un script que desactive, por ejemplo, la tarjeta inalámbrica de un ordenador mediante wapt?
wmi_info() simplemente proporciona una estructura de datos de lista/diccionario de Python con información para el inventario. No se puede realizar ninguna acción desde esa función wmi_info(). Sin embargo, se puede importar el módulo wmi de Python y usarlo en el script.

Respecto al tema específico de tu pregunta, si tienes el nombre de la interfaz, entonces podrías usar netsh con algo como:

Código: Seleccionar todo

netsh interface set interface "network_adapter_name" admin=disable
Pero no siempre es fácil obtener el network_adapter_name correcto, especialmente si su Windows no es inglés y tiene acento en el nombre...

Salud,

Denis

Re: wmi_info

Publicado: 26 de marzo de 2018 - 19:46
por empbilly
Bien. Estoy intentando que el script a continuación funcione. El problema es el acento en el texto "Conex"tieneo local 2" que recibe la variable "con". Intenté varias maneras de decodificar y codificar a UTF-8, pero sin éxito.

>>> con = 'Conexión local 2'.decode('utf-8')
>>> impresión con
Conexión local 2
>>> estafa
u'Conexión\xe3o local 2'
>>>

¿Como puedo solucionar este problema?

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
import subprocess

uninstallkey = []

con = 'Conexão local 2'

def install():
    print "Instalando Wi-fi adapter disable"
    try:
        x = subprocess.Popen(["cmd.exe", "/c", "wmic path win32_networkadapter where NetConnectionID='%s' call disable" % (con)], stdout=subprocess.PIPE, shell=True)
        print (x.stdout.read())
    except (RuntimeError, TypeError, NameError):
        print "Erro na execução do cmd.exe"

Re: wmi_info

Publicado: 26 de marzo de 2018 - 21:27
por empbilly
¡¡¡Ahora funciona!!! :D

Código: Seleccionar todo

# -*- coding: UTF-8 -*-
from setuphelpers import *
import subprocess
import locale

uninstallkey = []

con = u'Conexão de Rede sem Fio'

def install():
    print u"Exercutando Wi-fi card disable"
    try:
        x = subprocess.Popen(["cmd.exe", "/c", "wmic path win32_networkadapter where NetConnectionID='%s' call disable" % (con.encode(locale.getpreferredencoding()))], stdout=subprocess.PIPE, shell=True)
        print (x.stdout.read())
    except (RuntimeError, TypeError, NameError):
        print u"Erro na execução do cmd.exe"

Re: [RESUELTO] wmi_info y comandos remotos

Publicado: 26 de marzo de 2018 - 21:34
por vcardon
Hola Empbilly,

veo comentarios en portugués en tu script para deshabilitar las conexiones wifi. ¿Estás escribiendo desde Brasil?

Si es así, sería genial empezar a tener WAPT en Sudamérica.

Si tu idioma es el portugués, ¿crees que sería útil tener WAPT internacionalizado en portugués, o crees que los administradores de sistemas están suficientemente familiarizados con el inglés donde vives?

Gracias.

Vincent

Re: [RESUELTO] wmi_info y comandos remotos

Publicado: 27 de marzo de 2018 - 02:14
por empbilly
Veo comentarios en portugués en tu script para deshabilitar las conexiones wifi, ¿estás escribiendo desde Brasil?
Sí. Vivo en Brasil y trabajo en una institución educativa.

Si ese es el caso, sería genial comenzar a tener WAPT en Sudamérica.
:D

Si tu idioma es el portugués, ¿crees que sería útil tener WAPT internacionalizado en portugués, o crees que los adminsys están suficientemente familiarizados con el inglés donde vives?
Creo que sería fantástico tener, principalmente, la documentación de wapt en portugués. En cuanto a los administradores de sistemas de nuestra institución en general, aproximadamente unos 20 campus, la gran mayoría no tiene conocimientos de inglés de nivel intermedio a avanzado.