Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
WMIC sur Debian via le CPU_ARMhf ( celui de la Raspberry_PI3)
#1
Bonjour à tous,

Je me permet de consulter la communauté aujourd'hui car je cherche à monitorer un Ordinateur sous Windows 7 avec un environnement Debian, celui du Raspberry, plus concrètement Raspbian. De la manière la moins intrusive possible soit avec ce qu'il possède déjà les commandes WMIC du protocole WMI(ma cible Windows7).
Ayant trouver des libraires me permettant de le faire avec un CPU x86 sous Debian, je cherche des équivalences pour un CPU ARMhf ( celui de la Raspberry 3).
Voici ces librairie:
https://www.krenger.ch/blog/wmi-commands-from-linux/

auriez vous une solution à mon problème, ou une alternative aussi puissante que les cmd wmic, executable depuis l'environnement Raspbian ?
J'ai déjà pensé au SNMP mais il n'est pas assez orienter hardware ..

Cordialement,

Thibz 8)
Répondre
#2
Tu peux peut-être jeter un oeil sur http://www.edcint.co.nz/checkwmiplus/Ins...nalSession (WMI client à compiler).
Ensuite, tout dépend de ce que tu veux réellement faire.

A des fins de tests, j'avais installé munin sur mon RPi et une adaptation pour windows de munin-node sur mon PC sous Win7, ça fonctionnait pas trop mal. Mais c'était limité au monitoring des disques et de la carte réseau, je n'ai pas pris le temps de chercher et/ou développer les systèmes pour ce qui est processeur et ram.
Répondre
#3
En claire j'ai besoin de récupérer les information suivante :
Charge CPU
 RAM
 ECC Memory error count
 Disk drive usage
 Disk space available
 Disk drive status using « SMART » drives
 Motherboard °C
 CPU °C
en gros munin serait un peu light sachant que j'ai aussi besoin de récupérer les information ci-dessus et aussi la Charge CPU, RAM de composant relier à mon ordinateur Windows 7.

J'ai déjà réussi à récupérer ces informations depuis mon ordinateur Windows 7 avec les commandes WMIC.
Pour le lien que tu m'a proposé le seule problème(si j'ai bien compris) c'est qu'il est intrusif, en gros j'ai besoin d'installer des choses lié a l'environnement nagios en plus d'avoir le protocole WMI et d'activer avec les bon droit d'utilisateur sur ma cible non ?
Répondre
#4
J'ai juste survolé ce qui était dit, mais à mon avis l'installation de wmic (http://www.edcint.co.nz/checkwmiplus/wmi-1.3.14.tar.gz) devrait suffire.
Il semblerait que Nagios est nécessaire pour check-wmic-plus.

Donc, pour toi, ne faire que:
Citation :Download wmic
Code :
Fed16 Min:/tmp# wget www.edcint.co.nz/checkwmiplus/wmi-1.3.14.tar.gz
--2012-11-18 17:23:45-- http://www.edcint.co.nz/checkwmiplus/wmi-1.3.14.tar.gz
Resolving www.edcint.co.nz... 50.22.11.45
Connecting to www.edcint.co.nz|50.22.11.45|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3994744 (3.8M) [application/x-gzip]
Saving to: œwmi-1.3.14.tar.gz

100%[=========================================================================================>] 3,994,744 419K/s in 11s

2012-11-18 17:23:57 (366 KB/s) - wmi-1.3.14.tar.gz saved [3994744/3994744]

Unpack wmic
Code :
Fed16 Min:/tmp# tar xzvf wmi-1.3.14.tar.gz

Show Tar Output
Code :
Fed16 Min:/tmp# cd wmi-1.3.14

Compile wmic (takes about 3-4 minutes)
Code :
Fed16 Min:/tmp/wmi-1.3.14# make
Update June 2015: You may need to use the following command line. Refer to this FAQ article.
Fed16 Min:/tmp/wmi-1.3.14# make "CPP=gcc -E -ffreestanding"
Update Nov 2015: If you get the error Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./pidl/pidl line 583.
(you are probably using Perl version 5.22+) then you need to edit line 583 of Samba/source//pidl/pidl and remove the "defined" from the start of the line (just like the error message says)

Test wmic
Code :
Fed16 Min:/tmp/wmi-1.3.14#wmic
Usage: [-?|--help] [--usage] [-d|--debuglevel DEBUGLEVEL] [--debug-stderr]
[-s|--configfile CONFIGFILE] [--option=name=value]
[-l|--log-basename LOGFILEBASE] [--leak-report] [--leak-report-full]
[-R|--name-resolve NAME-RESOLVE-ORDER]
[-O|--socket-options SOCKETOPTIONS] [-n|--netbiosname NETBIOSNAME]
[-W|--workgroup WORKGROUP] [--realm=REALM] [-i|--scope SCOPE]
[-m|--maxprotocol MAXPROTOCOL] [-U|--user [DOMAIN\]USERNAME[%PASSWORD]]
[-N|--no-pass] [--password=STRING] [-A|--authentication-file FILE]
[-S|--signing on|off|required] [-P|--machine-pass]
[--simple-bind-dn=STRING] [-k|--kerberos STRING]
[--use-security-mechanisms=STRING] [-V|--version] [--namespace=STRING]
[--delimiter=STRING]
//host query

Example: wmic -U [domain/]adminuser%password //host "select * from Win32_ComputerSystem"
Fed16 Min:/tmp/wmi-1.3.14#/bin/wmic -U USER%PASS //HOST 'Select Caption From Win32_OperatingSystem'
CLASS: Win32_OperatingSystem
Caption|Name
Microsoft Windows XP Professional|Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1
Répondre
#5
Smile Merci de ton aide !
Les machines virtuel fedora 16, que je ne connais pas du tout , peuvent s'apparenter aux caractéristiques de l'environnement d'un RPI 3, comme tout les exemple sont dessus.
Répondre
#6
Salutation,
Je voulais vous faire un retour de cette solution, car je suis un peu bloqué au moment de compiler la lib wmic, pour résoudre se problème.
j'ai suivi le conseil que le message d'erreur ma donné mais je suis rester bloqué..
J'ai donc supprimé au début de la ligne 583 le "defined".
mais l'erreur suivant reviens :
Code :
Using shared libraries internally: no (specify --enable-dso)

make[1]: Entering directory '/home/pi/wmi-1.3.14/Samba/source'
Compiling ./librpc/idl/atsvc.idl
/usr/include/stdc-predef.h:0: Syntax error near '3'
Can't use an undefined value as an ARRAY reference at ./pidl/pidl line 583.
Makefile:28880: recipe for target 'idl' failed
make[1]: *** [idl] Error 1
make[1]: Leaving directory '/home/pi/wmi-1.3.14/Samba/source'
cd Samba/source ; \
cp bin/winexe /bin ; \
cp bin/wmic /bin ; \
cp bin/shared/*async_wmi_lib.so.0* /lib/python
cp: cannot stat ‘bin/winexe’: No such file or directory
cp: cannot stat ‘bin/wmic’: No such file or directory
cp: cannot stat ‘bin/shared/*async_wmi_lib.so.0*’: No such file or directory
GNUmakefile:42: recipe for target 'pywmi-installed' failed
make: *** [pywmi-installed] Error 1

Si quelqu'un peut m'aiguiller sur la résolution de ce problème je lui en serait fort reconnaissant Big Grin

Bien à vous ! Thibz
Répondre
#7
Une fois que tu as retiré la ligne, as-tu pensé à faire un make clean ?
Répondre
#8
ouais j'y est pensé et ca a marché après la je suis entrain de tester les requêtes mais une erreur reviens en permanence :
Code :
[== Indéfini ==]
[librpc/rpc/dcerpc_util.c:1290:dcerpc_pipe_auth_recv()] Failed to bind to uuid 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 - NT_STATUS_NET_WRITE_FAULT
[librpc/rpc/dcerpc_connect.c:790:dcerpc_pipe_connect_b_recv()] failed NT status (c0000022) in dcerpc_pipe_connect_b_recv
[wmi/wmic.c:196:main()] ERROR: Login to remote object.
NTSTATUS: NT_STATUS_ACCESS_DENIED - Access denied


je pense que cela viens d'une mauvaise définition de ma cible.
ayant pour schéma cette commande : wmic -U USER%PASS //HOST 'Select Caption From Win32_OperatingSystem'
je met dans user=pi(user principal de mon partage samba) puis son password et pour HOST je ne sais pas trop quoi lui mettre ? pour instant j'ai tester son IP cible IP target et le nom e l'ordinateur cible...
c'est possible que je n'ai rien compris au paramétrage de la communication ..
En tout cas merci pour ton attention !
Répondre
#9
Ce que tu dois mettre comme utilisateur, pass et host concerne la machine cible.

Si ton compte sur le PC windows (ip 192.168.1.25) est toto et son mot de passe est tata, la commande est:
Code :
wmic -U toto%tata //192.168.1.25 'Select Caption From Win32_OperatingSystem'
Répondre
#10
c'est à nouveau moi, alors j'ai bien testé la ligne que tu ma expliqué avec les bons arguments et une erreur persiste, j'ai remarqué que même quand je met une fausse IP ou un faux mdp la réponse ne change pas.
La voici :
Code :
[== Indéfini ==]
[librpc/rpc/dcerpc_connect.c:329:dcerpc_pipe_connect_ncacn_ip_tcp_recv()] failed NT status (c000023d) in dcerpc_pipe_connect_ncacn_ip_tcp_recv
[librpc/rpc/dcerpc_connect.c:790:dcerpc_pipe_connect_b_recv()] failed NT status (c000023d) in dcerpc_pipe_connect_b_recv
[wmi/wmic.c:196:main()] ERROR: Login to remote object.
NTSTATUS: NT_STATUS_HOST_UNREACHABLE - NT_STATUS_HOST_UNREACHABLE


Elle revient vraiment systématiquement ..
Pour info, l'adresse IP que j'utilise dans ma requête est celle que j'observe en fesant ipconfig sous Windows
et je prend la seule qui me propose la IpV4, mais a mon humble avis le problème viens d'ailleurs.
Répondre
#11
Peut-être qu'il faut faire un réglage dans WMI pour autoriser un client externe à s'y connecter, ou bien c'est une question de port.
Répondre
#12
J'ai enfin réussi à atteindre mon première objectif, si Quelqu'un à des question sur le sujet qu'il n'hésite pas à me contacter en privé!
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

A propos de Communauté francophone RPi

Communauté francophone RPi est un forum d'aide et de partage autour du Raspberry Pi et des micro-ordinateurs.