Recientemente he tenido que asignar cuotas a un buen numero de recursos en Windows Server 2012 R2, que una vez añadido el rol de File Server incluye un modulo powershell para gestionar las cuotas y deja obsoleto al comando dirquota.exe.
En mi caso eran shares con tamaño muy distinto, bueno, ni siquiera sabia el tamaño exacto y queria darles 3 GB mas de margen.
Una buena (y rapida) forma de saber el tamaño del recurso es crear una cuota de tipo SOFT de un tamaño cualquiera:
import-module FileServerResourceManager
En mi caso eran shares con tamaño muy distinto, bueno, ni siquiera sabia el tamaño exacto y queria darles 3 GB mas de margen.
Una buena (y rapida) forma de saber el tamaño del recurso es crear una cuota de tipo SOFT de un tamaño cualquiera:
new-fsrmquota -path $ruta -size 1GB -softlimitDespues consultamos la información de la cuota y sumamos 3GB de margen:
$sizeinbytes=(get-fsrmquota -path $ruta).usage $newsizeinbytes=$sizeinbytes+(3 * 1073741824)Y cambiamos la cuota a tipo HARD y establecemos el tamaño definitivo:
set-fsrmquota -path $ruta -size $newsizeinbytes -softlimit:$falseHe hecho un pequeño script con menu para generar las cuotas facilmente:
Function crear-soft()
{
$ruta=read-host "Path a crear nueva Quota?"
$currentquota=get-fsrmquota -path $ruta -erroraction silentlycontinue
if ($currentquota -ne $null)
{
write-host "Ya existe una Quota para esta ruta!" -fore yellow
$currentquota|ft PSComputerName,path,disabled,softLimit
}
else
{
new-fsrmquota -path $ruta -size 1GB -softlimit
}
}#fin crear-soft
Function crear-softfromshares()
{
$arrayshares=gwmi Win32_share|?{$_.path.length -gt 3}
$arrayQuotas=(get-fsrmquota).path
#listo los shares existentes que no tienen cuota definida
$selected=$arrayshares|?{$arrayQuotas -notcontains $_.path}|select PSComputername,name,path|out-gridview -passthru -title "Selecciona SOFT QUOTAS a crear"
if ($selected -eq $null){write-host "Ninguno seleccionado" -fore yellow}
else{$selected|%{new-fsrmquota -path $_.path -size 1GB -softlimit}}
}#fin crear-softfromshares
Function crear-hard()
{
$array=get-fsrmquota |?{$_.softlimit -eq $true}
$selected=$array|select PSComputerName,path,usage|out-gridview -passthru -title "Selecciona Quotas a activar"
if ($selected -eq $null){write-host "Ninguno seleccionado" -fore yellow}
else
{
$selected|%{
$newsizeinbytes=$_.usage+(3 * 1073741824)# ampliacion de 3 GB al tamaño actual
set-fsrmquota -path $_.path -size $newsizeinbytes -softlimit:$false
#comprobamos los cambios
get-fsrmQuota -path $_.path|%{
$sizeGBactual = "{0:0.0}GB" -f ($_.size/1GB)
write-host "Current Quota of $($_.path) is $sizeGBactual" -fore cyan
}
}
}
}#fin crear-hard
### main ###
import-module FileServerResourceManager
do
{
write-host "THE QUOTA MAKER" -fore cyan
write-host " 1. CREAR NUEVA SOFT QUOTA MANUALMENTE" -fore cyan
write-host " 2. CREAR NUEVA SOFT QUOTA DESDE LISTA DE SHARES" -fore cyan
write-host " 3. MIGRAR SOFT QUOTA A HARD QUOTA" -fore cyan
write-host " 0. Exit" -fore cyan
$val=read-host "Elige una opcion"
switch ($val)
{
1{crear-soft}
2{crear-softfromshares}
3{crear-hard}
}
}
while ($val -ne "0")

Comentarios
Publicar un comentario