2010-12-16 154 views
1

Je travaille sur la récupération du journal des événements Windows à partir d'une machine distante en utilisant Python.Comment puis-je utiliser python pour lire le journal des événements Windows à partir d'une machine distante?

J'ai essayé le code suivant:

import win32evtlog 

server = 'aRemoteMachineHostName' 
logtype = 'System' 
hand = win32evtlog.OpenEventLog(server,logtype) 
total = win32evtlog.GetNumberOfEventLogRecords(hand) 

et je reçois un erreur d'accès refusé.

Ensuite, j'ai essayé d'utiliser win32security.logon pour faire l'authentification avant d'accéder au journal des événements. Mais je trouve dans le document win32security.logon, il dit que l'API ne supporte que l'ouverture de session locale.

Donc, je suis un peu coincé ici. Je me demande si Python peut faire une connexion Windows à distance? Des conseils ou des astuces seront utiles.

Merci.

+0

question Dumb, peut-être, mais sont la machine locale et la machine distante sur le même domaine Windows? –

+0

Les deux machines sont considérées comme deux machines séparées, pas nécessairement dans le même domaine, elles peuvent être simplement un serveur autonome ou un ordinateur de domaine. Mais les informations d'identification pour le serveur cible sont données. – Bingo

Répondre

0

pourrait être plus facile à utiliser snmp

+0

hmm, mais je ne peux pas demander à chaque application d'envoyer snmp ... – Bingo

+0

vous pourriez être en mesure d'exposer le journal des événements via SNMP – user406905

+0

oui, si un agent local est défini, nous pouvons faire beaucoup de choses avec le journal des événements. Je pourrais préférer aucune agence locale, cela sera un peu plus facile pour l'installation avant d'utiliser la fonction. – Bingo

0

Tant que l'utilisateur qui exécute le script a les informations d'identification pour se connecter et lire le journal des événements, cette recette Activestate fonctionne pour moi. Je l'ai utilisé dans quelques situations différentes.

ActiveState WinEvtLogViewer