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!!!
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.
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.