Search code examples
powershellwindows-server-2008-r2shared-directory

How to export shared folder with permissions and groups associated


I'm working on a windows server 2008 r2 and I'm trying to export the configuration of shared folder with all the groups associated to them,permissions and file system permissions.

is there a way to do that?

maybe with powershell?

@edit: another problem is that I need to do that after a reboot, so I have to save the configuration in a file for example and then reimport it.


Solution

  • I'm working on a module (see here) that should be able to do this for you. It's a script module, so you can actually open it up and look at/modify the code. If you use it, you could do something like this (the Export-Csv call is commented out, but you can put it in after confirming this is the output you're looking for):

    Get-WmiObject Win32_Share -ComputerName ServerName | 
        Get-AccessControlEntry #| Export-Csv -Path CsvLocation.csv
    

    You'll get errors for built-in system shares, e.g., C$, so you may want to add an -ErrorAction SilentlyContinue and/or an -ErrorVariable to the Get-AccessControlEntry call.

    To bring the permissions back in, you'd just feed the Get-AccessControl output into Add-AccessControlEntry:

    Import-Csv -Path CsvLocation.csv | Add-AccessControlEntry -WhatIf
    

    Add-AccessControlEntry prompts for confirmation by default. Use the -Force switch to suppress the prompts.

    Changing this to work for the NTFS permissions is very easy, too. Just change the Get-WmiObject call into a Get-ChildItem call, and everything else should be the same.