Migrating quotas between From Window 2012->2012R2

So my customer is migrating from Windows 2012 to Windows 2012R2 and needed to migrate  user quotas between Windows 2012 and the new Windows 2012R2 server.

So one way would be to copy the quota.xml and quota.md files but I’m not sure that Microsoft would condone or support a suggestion like that so I will go the cmdlets from Windows 2012R2.

Lets roll, Lets get all the old quotas:

Now we have all quotas of the old server. Lets just filter out the ones we want and apply them on the new location.

We still need to migrate the auto quotas. But that is simple too:

Comments

  1. Kerberrus says:

    Thanks for post!
    Trying this with copying folder from one volume to another. On test quota I get an error :

    A positional parameter cannot be found that accepts argument ‘False’.
    $Temp = Get-FSrmQuota | select -first 1
    New-FsrmQuota -Path ($Temp.Path -replace ‘D:’,’H:’) -Template $Temp.Template -Size $Temp.Size -SoftLimit $false -Description $Temp.Description -Disabled $Temp.Disabled

    • virot says:

      Hi.

      That error kinda surprises me, I cant really see any False argument. I would check what data the $Temp variable contained in case it was some weird data.

  2. El Angrio says:

    There is no way ‘this’ will work to another server of different computername using CimSession, this will work if you are migrating to the same server computername only. CimSession will see to that. Did you test this method to work to different computernames??

    • virot says:

      Hi.

      I just redid this between a Windows 2012 and a Windows 2012R2 machine. I’m using the CimSession just to be able to run the command to get the data from the old fileserver, then I’m taking the data and pushing it into New-FsrmQuota and New-FsrmAutoQuota.

  3. El Angrio says:

    Still does nothing, pushing 2012 to 2012r2 as well. PSComputerName is read only and shows old server name. I cannot get this to import without using custom functions, which I have since done, to extrapolate the .description, .path, .size and .template objects separately.

  4. Lala says:

    did you managed to export and import quota management?

  5. Hikedaya says:

    Just had to migrate quotas from one Win 2012 R2 box to another. Being logged on source server I migrated my quotas to FS2 this way:
    $session = New-CimSession -ComputerName FS2

    $quotas = Get-FsrmQuota

    foreach ($quota in $quotas) {
    if ($quota.Template) {
    $item = $quota
    }
    else {
    $item = $quota | select -Property * -ExcludeProperty Template
    }
    $item | new-fsrmquota -CimSession $session
    }
    If you have quotas without templates, you have to pipe them to New-FSRMQuota without -Template parameter, hence “if()…” part of the code.

    I don’t have autoquotas, but think they can be transferred the same way.

Leave a Reply