Not  able to help you with your specific question but have you tried 
www.Powershell.com<http://www.Powershell.com> ?

 John W. Cook
Director of Network Operations
Partnership For Strong Families
5950 NW 1st Place
Gainesville, Fl 32607
Office (352) 244-1610
Cell     (352) 215-6944
MCSE, MCP+I, MCTS,
CompTIA A+, N+, Security+
VSP4, VTSP4

From: [email protected] [mailto:[email protected]] On 
Behalf Of Kuhlman, Donald
Sent: Tuesday, March 25, 2014 1:01 PM
To: [email protected]
Subject: [NTSysADM] Powershell Tip using get-ace for a share permission

*         Hi folks. Long time no post...I'm on a new gig and re-subscribed 
using the email address from here.
*         I can't find the Powershell info for the IT-Forum groups so I didn't 
post there yet. I've been googling and checking other sources also, but can't 
seem to get this to work with what I've found.
*         Anyway, I'm working on a script to pull a server inventory including 
shares, share permissions, and other entries and any tip on what may work 
better or instead of would be really appreciated.
I'm able to retrieve the share and ace entries, but when I try to write them to 
an excel sheet, they aren't coming over with the human readable value like 
"Read and execute".  I can output the info to the screen.  I've tried to use a 
Switch command like this but it doesn't work -
#       Switch($UniqueShare.AccessRights)
#                {
# 1179817 {$Sheet1.Cells.Item($intRowShare, 7) = "ReadAndExecute"}
#   }
Below is a code snip showing what I'm doing:
$strComputer = read-host "Enter computer name "
$strComputerDelim = "\\" + $strComputer
$sharelist = get-wmiobject win32_share -ComputerName  $strComputer
foreach ($share in $sharelist)
 {
$ShareAceName = $strComputerDelim + "\" + $share.Name
$ShareAceDetails = get-ace -path $ShareAceName
    foreach ($ShareAce in $ShareAceDetails)
        {
        foreach ($UniqueShare in $ShareAce)
            {
#Populate Shares Sheet (This is only a code snippet)
        write-host $UniqueShare.AccessRights
        $Sheet1.Cells.Item($intRowShare, 7) = $UniqueShare.AccessRights
 $Sheet1.Cells.Item($intRowShare, 8) = $ShareAceDetails.AccessControlType

        $intRowShare = $intRowShare + 1
            }
       }
$intRowShare = $intRowShare + 1
}
Results on screen are like this for the Permissions:
ReadAndExecute, Synchronize
FullControl
ReadAndExecute, Synchronize
ReadAndExecute, Synchronize
GenericExecute, GenericRead
ReadAndExecute, Synchronize
Results in the sheet are like this:
Permission
1179817
Thanks,
Don K


Reply via email to