[python-win32] "Property '%s.%s' can not be set" on read/write attribute

Tim Johnson tojo2000 at gmail.com
Wed Jan 30 10:44:03 CET 2008


Oh, and thanks for pointing out the Pythonic style points as well.  I'm
still a relative newbie to Python, and when I'm reading examples written in
vbscripts I sometimes get out of the groove.  I'll go take another look at
those examples.

On Jan 30, 2008 1:39 AM, Tim Johnson <tojo2000 at gmail.com> wrote:

> 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-style objects 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 <mail at timgolden.me.uk> 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 at python.org
> > http://mail.python.org/mailman/listinfo/python-win32
> >
>
>
>
>  --
> _____________________
> Ceci n'est pas un email.
>



-- 
_____________________
Ceci n'est pas un email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-win32/attachments/20080130/98298b3f/attachment-0001.htm 


More information about the python-win32 mailing list