Tim Johnson wrote: > Hmm, I'm getting a different error now. Could it be having trouble passing > one wmi object as a parameter to the method of another? > > import wmi > site = 'MV1' > wmi_server = 'mtv-sql-2' > resource = 23012 > wmi_namespace = 'root\\sms\\site_%s' % site > conn = wmi.WMI(computer=wmi_server, namespace=wmi_namespace) > coll = conn.Get('SMS_Collection.CollectionID="MV100362"') > rule = conn.Get('SMS_CollectionRuleDirect').SpawnInstance_() > rule.ResourceID = resource > rule.RuleName = 'ResourceID: ' +str(resource) > rule.ResourceClassName = 'SMS_R_System' > coll.AddMembershipRule(rule) > > Gives me : > > Traceback (most recent call last): > File "C:\Users\timjohnson\Desktop\addrule.py", line 16, in ? > coll.AddMembershipRule(rule) > File "C:\Python24\Lib\site-packages\win32com\client\dynamic.py", line 491, > in __getattr__ > raise pythoncom.com_error, details > pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, > 'SWbemObjectEx', 'Not found ', None, 0, -2147217406), None) > > But this: > > import wmi > site = 'MV1' > wmi_server = 'mtv-sql-2' > resource = 23012 > wmi_namespace = 'root\\sms\\site_%s' % site > conn = wmi.WMI(computer=wmi_server, namespace=wmi_namespace) > coll = conn.SMS_Collection(CollectionID='MV100362')[0] > rule = conn.SMS_CollectionRuleDirect.new() > rule.ResourceID = resource > rule.RuleName = 'ResourceID: ' +str(resource) > rule.ResourceClassName = 'SMS_R_System' > coll.AddMembershipRule(rule) > > Gives me: > > Traceback (most recent call last): > File "C:\Users\timjohnson\Desktop\addrule.py", line 16, in ? > coll.AddMembershipRule(rule) > TypeError: __call__() takes exactly 1 argument (2 given)
Hi, Tim. This is one of those ones where I can't easily check my suspicions because I don't have the namespace on my box. I can probably give a hint or two, though. And I'll almost certainly find along the way that you're doing something no-one's asked the wmi module to do before and which, therefore, I don't support too cleanly! No. 1 - get the latest release: http://timgolden.me.uk/python/downloads/wmi-1.3.2.zip which may actually solve the first problem if it's what I think it is, and will certainly help you with the second. If I'm wrong -- and even if I'm right :) -- feel free to post back. The first one *might* be a symptom of a long-standing bug I've just squashed which over-cached the WMI methods so that any method call after the first one was attempting to call on the *first* object again. The second one is the slight gotcha that -- prior to the latest release but one -- you had to pass method params as keyword-only. Not helped by the slightly obscure error message which even has me scratching my head when I forget. I've fixed that in the latest release so please run it through and make sure for me. Thanks TJG _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32