in reply to Re: Win32::OLE and WMI
in thread Win32::OLE and WMI

You mean like this...
use Win32::OLE; use Data::Dumper; $wmi = Win32::OLE->GetObject('winmgmts:root/cimv2'); $query = 'SELECT * FROM Win32_LogicalFileSecuritySetting WHERE Path="d +:\\\\Programming"'; $resultset = $wmi->ExecQuery($query); foreach $obj (in $resultset) { $rc = $obj->GetSecurityDescriptor($sec); print "Path=[$obj->{Path}] rc=[$rc]\n"; print Data::Dumper->Dump([$sec], [qw(*sec)]); }
No luck there either, I'm afraid :-( The output from the above code is...
Path=[d:\Programming] rc=[0] $sec = undef;

Replies are listed 'Best First'.
Re: Re: Re: Win32::OLE and WMI
by maa (Pilgrim) on Feb 03, 2004 at 10:44 UTC

    I tried this... but it just hangs!

    my $stuff =Win32::OLE->GetObject( "WinMgmts:!Win32_LogicalFileSecuritySetting.path='C:\\\\TEMP'" );
    I'll be interested to see what the final solution is!

    Note: The VBScript Example from MSDN hangs on my PC too. NT4 SP6a. Weird

      I've not seen that syntax before (ie. with a shriek after WinMgmts: and before Win32).

      I know its heresy, but my only option at the moment seems to be using the vbs code. It works fine. If I ever get the perl code to work I'll let you know.

      PS. Try this vbs and see if it hangs...

      a = ShowPermissions("computer","sharename") Function ShowPermissions(ComputerName,ExplicitPath) Set objSecurity = GetObject("winmgmts:{(Security,Restore)}\\" & Co +mputerName & _ "\root\cimv2:Win32_LogicalShareSecuritySetting='" & ExplicitPa +th & "'") If objSecurity.GetSecurityDescriptor(objSD) = 0 Then For Each objACE in objSD.DACL wscript.Echo objACE.Trustee.Domain, objACE.Trustee.Name PermissionBitMask = objACE.AccessMask Select Case PermissionBitMask Case 1179817 wscript.Echo "Read" Case 1245631 wscript.Echo "Modify" Case 2032127 wscript.Echo "Full" Case Else wscript.Echo "Other: " & PermissionBitMask End Select Next End If End Function

        Hmm... I got some weird error running the VBS. Probably my machine. All other things I tried just hung... you could take a look at Win32::Perms, though - it looks fairly easy to use.

Re: Re: Re: Win32::OLE and WMI
by maa (Pilgrim) on Feb 03, 2004 at 11:21 UTC