Please send the code in it's current form.

Steven

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] 
Sent: Monday, July 22, 2002 1:09 AM
To: Steven Manross; [EMAIL PROTECTED]
Subject: RE: "Invalid class string" when performing SetSecurityDescriptor


Figured most of it out...  I am now able to put the ACEs in the ACL.  The
problem was that I had to have BOTH the Everyone and NT Authority\SELF being
added to the ACL to make the change.  I am able to see the affected changes
in ASDI editor, however, I need to add the two new ACEs to the BEGINNING of
the ACL instead of the end of it.

Mike
>-- Original Message --
>From: Steven Manross <[EMAIL PROTECTED]>
>To: "'[EMAIL PROTECTED]'"
>        <[EMAIL PROTECTED]>,
>   [EMAIL PROTECTED]
>Subject: RE: "Invalid class string" when performing 
>SetSecurityDescriptor
>Date: Sun, 21 Jul 2002 16:54:59 -0700
>
>
>I'm still thinking that you have an error earlier on.  What version of 
>ActivePerl are you using?
>
>The SetSecurityDescriptor will fail with just such an error if 
>something fails, gets set improperly or out of sequence.
>
>Strip your code down to your version of the following code (order 
>matters). And then put some error-checking in.
>
><code>
>      $ace->LetProperty('Trustee',whatever); 
>      $ace->LetProperty('AccessMask',whatever);
>      $ace->LetProperty('AceType', whatever);
></code>
>
>See if that reveals any other errors.
>
>Steven
>
>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED]]
>Sent: Sunday, July 21, 2002 8:17 AM
>To: Steven Manross; [EMAIL PROTECTED]
>Subject: RE: "Invalid class string" when performing SetSecurityDescriptor
>
>
>I had no such luck with the LetProperty on the $aceo-> calls,  however,
it
>did change an error to success for the "$sdo->{DiscretionaryAcl} = 
>$daclo;" line.
>
>End result still the same.  Invalid class string.
>Thanks,
>Mike
>
>>-- Original Message --
>>From: Steven Manross <[EMAIL PROTECTED]>
>>To: "'[EMAIL PROTECTED]'"
>>       <[EMAIL PROTECTED]>,
>>   [EMAIL PROTECTED]
>>Subject: RE: "Invalid class string" when performing
>>SetSecurityDescriptor
>>Date: Sat, 20 Jul 2002 16:54:45 -0700
>>
>>
>>If you were to have error-checking at all of your:
>>
>>$aceo->{Whatever}=something;
>>
>>Calls, you'd probably find that one or all of them were giving you an

>>error of "Member Not Found".
>>
>>The documented solution to this problem is to change these type of
>>calls to LetProperty calls.
>>
>>Namely:
>>
>>$aceo->LetProperty('Whatever',something);
>>
>>Search the Archives for LetProperty and you'll see what I mean.
>>
>>Steven
>>
>>-----Original Message-----
>>From: [EMAIL PROTECTED]
>>[mailto:[EMAIL PROTECTED]]
>>Sent: Friday, July 19, 2002 4:40 PM
>>To: [EMAIL PROTECTED]
>>Subject: "Invalid class string" when performing SetSecurityDescriptor
>>
>>
>>I am trying to write a program to add an ace to the acl for several
>>thousand users in AD. I have been successful at creating users but I am
>
>>stuck at
>the
>>asterisk"ed" line near the end of the provided code. I have the
>>adssecurity.dll file registered. I have been able, with some other 
>>code, to retrieve an entire ACL and all of its contents to dump to the

>>screen.
>>
>>Could anyone shed some light for me. I have tried LetProperty also to

>>assign the reference to the Discretionary Acl - still works and the
>>error continues with the setsecuritydiscriptor - any help is greatly 
>>appreciated!!!
>>
>>Error message:
>>Win32::OLE(0.1403) error 0x800401f3: "Invalid class string"
>>    in METHOD/PROPERTYGET "SetSecurityDescriptor"
>>
>>Code:
>>
>>use Win32;
>>use Win32::OLE;
>>
>>$NO_CHANGE_PASSWORD = '{ab721a53-1e2f-11d0-9819-00aa0040529b}';
>>
>>$aceo = Win32::OLE->CreateObject("AccessControlEntry");
>>$uo =
>>Win32::OLE->GetObject("LDAP://CN=blah,CN=Users,DC=cgwindows,DC=cgc,DC=m
>>arico
>>pa,DC=edu");
>>$security = Win32::OLE->CreateObject("ADsSecurity");
>>$sdo =
>>$security->GetSecurityDescriptor("LDAP://CN=blah,CN=Users,DC=cgwindows,DC=
c
>g
>>c,DC=maricopa,DC=edu");
>>$daclo = $sdo->{DiscretionaryAcl};
>>
>>$aceo->{AceFlags}=0x0;
>>$aceo->{AceType}=0x06;
>>$aceo->{Flags}=0x01;
>>$aceo->{InheritedObjectType}='';
>>$aceo->{ObjectType}=$NO_CHANGE_PASSWORD;
>>$aceo->{Trustee}='Everyone';
>>
>>$daclo->AddAce($aceo);
>>$sdo->{DiscretionaryAcl} = $daclo;
>>
>>$security->SetSecurityDescriptor($sdo); #*****************this line
>>gives the error $error = Win32::OLE->LastError(); print $error;
>>
>>$uo->SetInfo;
>>
>>exit;
>>
>>
>>Systems Programmer
>>
>>Only those who have the patience to do simple things perfectly ever
>>acquire the skill to do difficult things easily.
>>
>>Author Unknown
>>
>>_______________________________________________
>>Perl-Win32-Admin mailing list 
>>[EMAIL PROTECTED]
>>To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>
>Systems Programmer
>
>Only those who have the patience to do simple things perfectly ever 
>acquire the skill to do difficult things easily.
>
>Author Unknown

Systems Programmer

Only those who have the patience to do simple things perfectly ever acquire
the skill to do difficult things easily.

Author Unknown
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to