Showing posts with label wmi. Show all posts
Showing posts with label wmi. Show all posts

Wednesday, December 26, 2007

wmi - IronPython


import System
import clr
clr.AddReference("System.Management")
import System.Management

def requestWMI(squery,sproperties):
output = ""
objMgt = System.Management.ManagementObjectSearcher(squery)
for result in objMgt.Get():
output += result.GetPropertyValue(sproperties)
return output

print requestWMI("Select * from Win32_BIOS", "Caption")
raw_input()


Powered by ScribeFire.

Sunday, October 7, 2007

Boo - Asynchronous call

import System
import System.Collections
import System.Threading
import System.Net

def callback(result as IAsyncResult):
    print("callback")
    
def run():
    print "Executing"
    
print("started")

result = run.BeginInvoke(callback, null)
System.Threading.Thread.Sleep(50ms)
run.EndInvoke(result)

print ("done")

request = WebRequest.Create("http://www.python.org/")

result = request.GetResponse.BeginInvoke(null, null)
while not result.IsCompleted:
    Console.Write("!")
    Thread.Sleep(25ms)
Console.WriteLine()

// ready to get the response
response = request.GetResponse.EndInvoke(result)

Console.WriteLine("${response.ContentLength} bytes.")

print "Press any key to continue . . . "
Console.ReadKey(true)

Sunday, July 15, 2007

Python et WMI

WMI (Windows Managment Instrumentation) est un ensemble de classes permettant d'auditer des serveurs Windows.
L'accés à ces classe est très aisée en Python comme le montre cet exemple:


from win32com.client import GetObject

ChaineConnexion = r"WinMgMts:\\%s\%s"

def getAllObjects(serveur = ".", espaceDenom = "root\cimv2", classe = "Win32_Process"):
c = GetObject(ChaineConnexion%(serveur,espaceDenom))
objects = c.ExecQuery(r"select * from %s"%classe)
return objects

def test():
allObj = getAllObjects()
for proc in allObj:
print proc.Name

if __name__ == "__main__":
test()