Pagina 1 di 1

[RISOLTO] wmi_info e comandi remoti

Pubblicato: 23 marzo 2018 - 17:56
di empbilly
Ciao a tutti,

Come posso dichiarare l'opzione wmi_filter? Può essere come segue?

Codice: Seleziona tutto

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

Re: wmi_info

Pubblicato: 23 marzo 2018 - 19:17
di dcardon
Ciao Empbilly,
empbilly ha scritto: 23 marzo 2018 - 17:56 Ciao a tutti,

Come posso dichiarare l'opzione wmi_filter? Può essere come segue?

Codice: Seleziona tutto

wmi_info(keys=['Win32_NetworkAdapter'])['name']['index']
wmi_info fornisce una struttura dati dal modulo wmi. È possibile stampare la struttura dati o le sue parti interne:

Codice: Seleziona tutto

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']


Saluti,

Denis

Re: wmi_info

Pubblicato: 23 marzo 2018 - 20:45
di empbilly
Dall'esempio sopra, potrei creare uno script che disabiliti tramite wapt, ad esempio, una scheda wireless per computer?

Re: wmi_info

Pubblicato: 24 marzo 2018 - 23:33
di dcardon
Ciao Empbilly,
empbilly ha scritto: 23 marzo 2018 - 20:45 Dall'esempio sopra, potrei creare uno script che disabiliti tramite wapt, ad esempio, una scheda wireless del computer?
wmi_info() fornisce semplicemente una struttura dati Python di tipo list/dict con informazioni per l'inventario. Non è possibile eseguire alcuna azione tramite la funzione wmi_info(). Tuttavia, è possibile importare il modulo Python wmi e utilizzarlo nel proprio script.

Per quanto riguarda l'argomento specifico della tua domanda, se hai il nome dell'interfaccia, potresti usare netsh con qualcosa del tipo:

Codice: Seleziona tutto

netsh interface set interface "network_adapter_name" admin=disable
Ma non è sempre facile trovare il nome corretto per la scheda di rete, soprattutto se il tuo Windows non è in lingua inglese e ha un accento nel nome...

Saluti,

Denis

Re: wmi_info

Pubblicato: 26 marzo 2018 - 19:46
di empbilly
Ok. Sto cercando di far funzionare lo script qui sotto. Il problema è l'accento sul testo "Conex"hao locale 2" che riceve la variabile "con". Ho provato diversi modi per decodificare e codificare in utf-8, ma senza successo.

>>> con = 'Connessione locale 2'.decode('utf-8')
>>> stampa con
Conexão local 2
>>> contro
u'Conex\xe3o locale 2'
>>>

Come posso risolvere questo problema?

Codice: Seleziona tutto

# -*- 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

Pubblicato: 26 marzo 2018 - 21:27
di empbilly
Adesso funziona!!! :D

Codice: Seleziona tutto

# -*- 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: [RISOLTO] wmi_info e comandi remoti

Pubblicato: 26 marzo 2018 - 21:34
di vcardon
Ciao Empbilly,

vedo dei commenti in portoghese nel tuo script per disabilitare le connessioni Wi-Fi. Scrivi dal Brasile?

In tal caso, sarebbe fantastico poter iniziare ad avere WAPT anche in Sud America.

Se la tua lingua è il portoghese, pensi che sarebbe utile avere WAPT internazionalizzato in portoghese, o ritieni che gli amministratori qui abbiano una conoscenza sufficiente dell'inglese?

Grazie,

Vincent

Re: [RISOLTO] wmi_info e comandi remoti

Pubblicato: 27 marzo 2018 - 02:14
di empbilly
Vedo commenti in portoghese nel tuo script per disattivare le connessioni Wi-Fi. Stai scrivendo dal Brasile?
Sì. Vivo in Brasile e lavoro in un istituto scolastico.

Se così fosse, sarebbe fantastico iniziare ad avere WAPT in Sud America.
:D

Se la tua lingua è il portoghese, ritieni che sarebbe utile internazionalizzare WAPT in portoghese o ritieni che gli amministratori abbiano sufficiente familiarità con l'inglese nella tua zona?
Penso che sarebbe fantastico avere, principalmente, la documentazione wapt in portoghese. Parlando degli amministratori di sistema del nostro istituto nel suo complesso, circa 20 campus, la stragrande maggioranza non ha un intermediario con competenze avanzate in inglese.