I agree with you completely. Due to my time requirements, and lack of
response, I've had to scratch the use if Win32::Perms for the recursing
permission settings, and keep it to a file by file basis (such as setting
permissions to all files in the folder c:\winnt, etc... Recurse simple does
not work for me. It appears to be doing a ton of dir activity, with no
final result. I could be doing something wrong, but I don't see what is
different to the example. If you just want NTFS permissions, xcacls.exe
works the best. It's a free tool in the microsoft 2000 resource kit. SetACL
is a pain, because it doesn't seem to allow you to specify multiple users,
so you end up propogating permissions for every user (slow and badly
designed). You can also download it here:
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp.

And as a note to your e-mail below, Windows 2000 and Windows XP are NT
machines. Permissions do work differently, but the standard ACL flags for
NT4 work the same for NT5 (2k/xp). Also note that I'm using NT4, and it's
not working.

Also note that your code will not resurse below even by design, because you
have not asked it to. You've just set it so that new files and folders
created will grab permissions. $PermsObj->Recurse(); or $PermsObj->Set("c:
\\testfolder", 1); would be the recursive setting. That just does nothing
but chew up HD cycles with 0 result for me, but you may have more luck.


Thanks,

---------------------------------------------------------------
Robert Blake
Technical Systems Analyst
Intel Servers, IT Shared Services - Symcor Inc.
1 Robert Speck Parkway, Mississauga, Ontario
E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------



                                                                                       
                                                    
                    "Rosenkoetter, Ronald"                                             
                                                    
                    <[EMAIL PROTECTED]>            To:     
<[EMAIL PROTECTED]>                       
                    Sent by:                                     cc:                   
                                                    
                    [EMAIL PROTECTED]        Subject:     RE: 
Registry/File permissions!                               
                    eState.com                                                         
                                                    
                                                                                       
                                                    
                                                                                       
                                                    
                    11/19/02 07:04 PM                                                  
                                                    
                                                                                       
                                                    
                                                                                       
                                                    




It seems whenever someone on this list asks a question about
permissions, everyone refers said person to Dave Roth's Win32::Perms
module, but I've never seen any actual working code examples to
accompany that advice. Can someone out there post a simple snippet of
code that works correctly on a Windows 2000/XP machine??

I have spent a lot of time trying to get Dave Roth's Win32::Perms module
to work on non-NT machines. I even bought the Second Edition of his
Standard Extensions Book hoping to get Win32::Perms to work correctly
for me. However, I cannot seem to get even his simplest examples to work
on Windows 2000\XP machines.

Using the following code (lifted pretty much directly from his book),
and running it on multiple test folders on different machines with
different users, I seem to get two results.

Example:
  use Win32::Perms;
  $PermsObj = new Win32::Perms("c:\\testfolder");
  $PermsObj->Allow("Domain Admins",CHANGE,CONTAINER_INHERIT_ACE |
OBJECT_INHERIT_ACE);
  $PermsObj->Set();

Either the permissions are granted on the top folder, but none of the
sub-folders or files (i.e. container and object inheritance doesn't seem
to work) OR I get this error message when I try to look at permissions
through Windows Explorer

"The permissions on testfolder are incorrectly ordered, which may cause
some entries to be ineffective. Press OK to continue and sort the
permissions correctly, or Cancel to reset the permissions"

Clicking OK actually does resort the permissions, AND then inheritance
works, and the subfolders and files receive the inherited permissions.

What's interesting is that I was looking at some code a Microsoft
consultant wrote for us in VBScript and I noticed that when setting
permissions, he called a Subroutine that re-sorted DACLs... so it looks
like this is an issue in VBScript as well.

Has anyone else seen this?? Does anyone use Win32::Perms on Windows
2000/XP machines and can share some insight?? Nothing fancy... just
setting permissions on a top-level folder and getting inheritance to
work.

Meanwhile, I just recently came across some freeware that (so far) sets
permissions and inheritance correctly. It's called SetACL.exe, and it
just may be my solution to setting Windows 2000/XP permissions through
scripts (But I sure hate backticking... I'd much rather write pure Perl
scripts)

For anyone else who wants to check it out (I'm not fully endorsing it
yet)

http://www.helge.mynetcologne.de/setacl/

SetACL can set permissions on:
Local or remote directories
Local or remote files
Local or remote printers
Local or remote registry keys
Local or remote Win32 services
Local or remote network shares




Ron Rosenkoetter
System Engineer
Server Administration & Management

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, November 15, 2002 12:59 PM
To: [EMAIL PROTECTED]
Subject: Registry/File permissions!


Timothy/Darin: Thanks for your responses

All: I will use Win32::Perms to set the permissions in both the
directories/registry. I want to tackle the directories first, since it
seems easier.
The below script sets the ACL permissions to a directory, I can't seem
to
figure out how to have those permissions propagate to existing files and
directories inside of c:\login (for example). I tried using SetRecurse
and
that just used the harddisk for about 40 seconds (there is only 2 files
in
c:\login mind you), and ended up doing nothing. Any help would be
extremely
appreciated as I am getting quite frustrated/desperate! :)

use Win32;
use Win32::Perms;

&SecureKey('dir:c:\login');

sub SecureKey {
    my ($Key) = @_;

    my $Perms = new Win32::Perms($Key);
    print "Setting permissions for: $Key\n";

    ($Perms) || die "Could not obtain permissions for: $Key\n";
    my %Permissions = (
        'Administrators' => FULL,
        'Users' => READ,
    );

    $Perms->Remove(-1);
    $Perms->Owner('Administrators');
    foreach $User (keys %Permissions) {
        $Perms->Allow($User, $Permissions{$User});
    }

    $Perms->Set() || die "Error: ($^E)";
}

---------------------------------------------------------------
Robert Blake
Technical Systems Analyst
Intel Servers, IT Shared Services - Symcor Inc.
1 Robert Speck Parkway, Mississauga, Ontario
E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------





                    Timothy Johnson

                    <[EMAIL PROTECTED]>                       To:
"'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>,
                    Sent by:
[EMAIL PROTECTED]

                    [EMAIL PROTECTED]        cc:

                    eState.com
Subject:     RE: Registry permissions!





                    11/14/02 04:44 PM










It will take some learning, but Win32::Perms from Dave Roth will work.
http://www.roth.net/perl/perms

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Thursday, November 14, 2002 1:35 PM
To: [EMAIL PROTECTED]
Subject: Registry permissions!


I need to write a script that will set permissions on a registry key
(lets
say hkey_local_machine\system) and change the permissions to specific
user
access. e.g. 'Administrators' Full control, and then 'Everyone' Read. I
also need a way to propagate the permissions to keys from that point on
for
some of the changes I need to make. I haven't been able to find anything
in
my searches, and was wondering if someone knew a solution to my problem?

Thank you for any help you can provide!

---------------------------------------------------------------
Robert Blake
Technical Systems Analyst
Intel Servers, IT Shared Services - Symcor Inc.
1 Robert Speck Parkway, Mississauga, Ontario
E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------


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




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




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

Reply via email to