Cuotas FSRM con tamaños decimales en PowerShell: guía completa

Configurar cuotas de File Server Resource Manager (FSRM) con tamaños decimales en PowerShell permite asignar espacio de forma milimétrica, aprovechando la capacidad real del almacenamiento y evitando el desperdicio de gigabytes enteros que quizá nunca se usen.

Índice

Motivación — ¿Por qué usar valores fraccionarios?

En entornos donde se agregan discos poco a poco o se comparte un volumen entre varios equipos, a veces quedan porciones “huerfanitas” de espacio. Asignar una cuota de 1,48 GB en lugar de 1 GB o 2 GB le saca provecho al 100 % del disco sin penalizar a otros proyectos. Además, puede cumplir requisitos de auditoría o contabilidad que exigen reservar cantidades exactas asociadas a contratos o presupuestos.

Requisitos previos

  • Windows Server 2012 R2 o posterior (el ejemplo se validó en 2022).
  • Rol «File Server Resource Manager» instalado.
  • Sesión de PowerShell con privilegios de administrador.

Cómo interpreta FSRM el parámetro -Size

El cmdlet New‑FsrmQuota acepta un valor numérico seguido opcionalmente de un sufijo de unidad:KB, MB, GB, TB. Cuando no se indica sufijo, el número se lee en B. El motor de FSRM internamente siempre calcula en bytes enteros, de modo que los decimales se convierten a la unidad inferior sin perder precisión.

# Sintaxis genérica
New-FsrmQuota -Path <Carpeta> -Size <Valor>[KB|MB|GB|TB] -SoftLimit:$false

Por ejemplo, para 1,48 GB:

New-FsrmQuota -Path "D:\Datos\Ventas" -Size 1.48GB

¿Por qué puede fallar el comando?

La mayoría de los errores reportados en foros se deben a dos causas:

  1. Separador decimal incorrecto. En muchos países de configuración regional “es‑ES”, la coma (,) es el separador decimal. Sin embargo, PowerShell exige el punto (.) dentro de los parámetros de cmdlets.
  2. Versión antigua del módulo FSRM. Los sistemas anteriores a Windows Server 2012 R2 tenían limitaciones y parches pendientes. Hoy, con Build 9600 o superior, el soporte es completo.

Solución con separador correcto

# Incorrecto para PowerShell
New-FsrmQuota -Path "D:\Folder" -Size 1,48GB   # → Error de sintaxis

Correcto

New-FsrmQuota -Path "D:\Folder" -Size 1.48GB

Convertir decimales a bytes de forma explícita

Si se prefiere la precisión absoluta o se usan scripts que generan valores en bytes —por ejemplo, desde una hoja Excel—, puede hacerse la conversión manual:

$quotaSizeGB      = 1.48
$sizeInBytes      = [int64]($quotaSizeGB * 1GB)   # 1GB = 1 073 741 824 bytes
New-FsrmQuota -Path "D:\Folder1" -Size $sizeInBytes

En sistemas de 64 bits el rango de [int64] permite valores de hasta 8 EB, muy por encima de lo que ofrece hoy cualquier cabina SAN.

Tabla de referencia rápida

Valor decimalEjemplo de códigoEquivalente en bytes
0,5 GB-Size 0.5GB536 870 912
1,25 GB-Size 1.25GB1 342 177 280
1,48 GB-Size 1.48GB1 590 652 928
2,75 GB-Size 2.75GB2 953 482 240

Script modular para despliegues masivos

Cuando existen cientos de carpetas, escribir una línea por cuota resulta poco práctico. El siguiente script lee un CSV con el path y el valor decimal e implementa las cuotas en lotes de forma idempotente (se puede ejecutar varias veces sin dañar las existentes).

# CSV: Ruta,CuotaGB
D:\Proyectos\Alpha,1.48
D:\Proyectos\Beta,2.75

Import-Csv .\Cuotas.csv | ForEach-Object {
    $ruta = $_.Ruta.Trim()
    $valorGB = [double]$_.CuotaGB
    $bytes   = [int64]($valorGB * 1GB)

    if (Get-FsrmQuota -Path $ruta -ErrorAction SilentlyContinue) {
        Set-FsrmQuota -Path $ruta -Size $bytes
        Write-Host "Cuota actualizada en $ruta a $valorGB GB"
    }
    else {
        New-FsrmQuota -Path $ruta -Size $bytes -SoftLimit:$false
        Write-Host "Cuota creada en $ruta con $valorGB GB"
    }
}

Validación en la interfaz gráfica

Tras ejecutar cualquier método, abra Server Manager → File and Storage Services → FSRM → Quota Management → Quotas. Verá la columna Limit con el número fraccionario exacto que solicitó. También puede hacer clic en la cuota y pulsar F2 para confirmar que el valor decimal persiste.

Compatibilidad entre versiones de Windows Server

Mientras que Windows Server 2008 R2 originalmente requería hotfixes para cantidades decimales mayores de 2 TB, las versiones modernas (2012 R2, 2016, 2019, 2022) lo admiten de forma nativa. Si administra un bosque mixto, actualice los nodos legados o limite los scripts a enteros en esos hosts.

Alertas, plantillas y notificaciones

El hecho de usar decimales no altera las opciones de correo, eventos o plantillas. Puede crear una plantilla estándar (100 GB Soft Quota, por ejemplo) y luego modificar el tamaño antes de asignarla:

$t = Get-FsrmQuotaTemplate -Name "100 GB Soft Quota"
New-FsrmQuota -Path "D:\Recursos" -Template $t -Size 99.5GB

La plantilla hereda los umbrales (por ejemplo al 85 % y 95 %), así que recibirá alertas cuando el 85 % de 99,5 GB sea alcanzado (84,575 GB), no cuando llegue a 85 GB exactos.

Preguntas frecuentes

¿Puedo especificar -Size 0 para que solo se registre el uso sin limitar?

Sí. El valor 0 crea una cuota «monitorización» (auto apply — monitor only), adecuada para establecer líneas base y migrar a una política restrictiva más adelante.

¿Existen diferencias entre GB decimales (SI) y GiB binarios?

FSRM usa la convención binaria (1 GB = 1 073 741 824 bytes). Por eso 1GB en PowerShell equivale a 1,073 GB en marketing decimal (1 000 000 000 bytes). Ajuste el factor si su hoja de cálculo está en unidades decimales.

¿Se pueden usar valores menores de 1 MB?

Desde Windows Server 2016 puede establecer cuotas tan pequeñas como 1 KB. No obstante, el rendimiento de lectura de valores tan bajos suele ser nulo; se recomienda un mínimo de 1 MB en producción.

¿Cómo listar todas las cuotas con sus tamaños en GB exactos?

Get-FsrmQuota | Select Path,@{N="SizeGB";E={[math]::Round($_.Size/1GB,2)}}

Buenas prácticas finales

  • Mantener las cuotas en un repositorio Git o DSC para auditoría y despliegues repetibles.
  • Nombrar carpetas y cuotas de forma coherente (Depto‑Finanzas‑1.48GB) para reconocerlas en la consola.
  • Revisar al menos trimestralmente los directorios sin movimiento; las cuotas muy bajas pueden frenar proyectos que crecen rápido.
  • Configurar alertas de correo en los umbrales apropiados (80 % o 90 %).
  • Documentar la unidad de medida (binaria) en los procedimientos internos para evitar malentendidos con los equipos de contabilidad.

Conclusión

Usar tamaños decimales en New‑FsrmQuota es totalmente compatible y abre un abanico de escenarios granulares: desde la asignación quirúrgica de espacio hasta la migración progresiva a cuotas rígidas. Combine la precisión de los valores fraccionarios con scripts automatizados y alertas inteligentes para mantener su almacenamiento bajo control sin sacrificar flexibilidad.

Índice