YES!!! It works. I was able to successfully run the following version: ###
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' result = coll.AddMembershipRule(rule) ### I still get the error on my old code, but maybe mixing win32com.client-styleobjects with wmi objects is causing weirdness there. In any case, I have what I need from here on out. I'd say almost 100% of all WMI scripts out there are for getting information, not setting it, but when you're dealing with SMS it's the only way to go. Thanks again, and someday I'll pull a thorn out of your foot or something. :) On Jan 30, 2008 1:14 AM, Tim Golden <[EMAIL PROTECTED]> wrote: > 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 > -- _____________________ Ceci n'est pas un email.
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32