¿Ejecutas Get-CimInstance -ClassName Win32_PageFileSetting
y PowerShell responde con “No instance(s) available”? Tranquilo: no es un bug. Windows reserva esta clase exclusivamente para archivos de paginación cuyo tamaño ha sido establecido de forma manual. Cuando el sistema opera en modo System‑managed size, la instancia sencillamente no existe y la consulta queda vacía. A continuación encontrarás una guía completa para entender por qué ocurre, cómo validarlo y qué alternativas tienes para monitorizar y automatizar la configuración del pagefile.
Qué es exactamente Win32_PageFileSetting
Dentro del esquema WMI, esta clase refleja la configuración persistente del archivo de paginación —tamaño inicial, máximo y ruta— que el administrador definió explícitamente. Su contenido se escribe en el Registro en la clave HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles
y solo cambia:
- Al modificar la memoria virtual en el Panel de control.
- Al usar
wmic pagefileset
,Set-CimInstance
o API equivalentes.
Si dicha clave contiene el valor especial ?:\pagefile.sys 0 0
(cero inicial y cero máximo), Windows interpreta que el tamaño será “Administrado por el sistema” y omite crear instancias en Win32_PageFileSetting
.
Por qué tu consulta devuelve vacío
Regla principal: Sin tamaño fijo, sin instancia.
En versiones desde Windows Server 2012 R2 hasta Windows 11 23H2 se mantiene la misma lógica:
- Si la UI está marcada como Administrar automáticamente el tamaño del archivo de paginación para todas las unidades, la ruta y los límites se calculan en cada arranque según la memoria RAM y otros factores (dumps de memoria, espacio libre en disco, etc.).
- Como no existe un tamaño inicial/máximo persistente, Microsoft decidió que
Win32_PageFileSetting
no es el lugar adecuado para exponer algo “flotante”. - El resultado al consultar mediante CIM/WMI, WMIC o WQL es una colección vacía.
Cómo forzar la aparición de una instancia
Si necesitas que la clase devuelva datos —por ejemplo, porque una herramienta de inventario lo requiere— basta con fijar el tamaño manualmente:
- Abre sysdm.cpl ▸ pestaña Opciones avanzadas ▸ Rendimiento ▸ Opciones avanzadas ▸ Memoria virtual.
- Desmarca Administrar automáticamente el tamaño del archivo de paginación.
- Selecciona la unidad (normalmente C:), elige Tamaño personalizado y define valores inicial y máximo.
- Tras reiniciar, ejecuta:
Get-CimInstance -ClassName Win32_PageFileSetting
Verás de inmediato una salida similar a:
Name InitialSize MaximumSize
C:\pagefile.sys 4096 8192
Clases alternativas para el modo automático
Si prefieres mantener el tamaño administrado por Windows, no pierdes visibilidad. Estas clases ofrecen la información operativa que buscas:
Clase WMI/CIM | Propósito | Ejemplo de uso |
---|---|---|
Win32_PageFileUsage | Estadísticas de uso en tiempo real: tamaño asignado, espacio en uso, porcentaje. | Get-CimInstance Win32_PageFileUsage |
Win32_ComputerSystem | Propiedad AutomaticManagedPagefile indica $true o $false. | (Get-CimInstance Win32_ComputerSystem).AutomaticManagedPagefile |
Win32_OperatingSystem | Campos TotalVirtualMemorySize y FreeVirtualMemory . | Get-CimInstance Win32_OperatingSystem |
Buenas prácticas para scripts de inventario
Detecta el modo antes de actuar
El patrón más robusto consiste en:
$cs = Get-CimInstance Win32_ComputerSystem
if (-not $cs.AutomaticManagedPagefile) {
Get-CimInstance Win32_PageFileSetting
} else {
Get-CimInstance Win32_PageFileUsage
}
Usa CIM en lugar de WMI clásico
Get-CimInstance
funciona vía WS‑Man y soporta remoting estándar.- Es hasta 2× más rápido que
Get-WmiObject
. - Permite filtrado del lado servidor (
-Filter
) y compresión.
Guarda la salida en objetos reutilizables
Aprovecha el tipado de PowerShell para combinar métricas:
$usage = Get-CimInstance Win32_PageFileUsage
$os = Get-CimInstance Win32_OperatingSystem
[PSCustomObject]@{
Drive = $usage.Name
AllocatedMB = $usage.AllocatedBaseSize
CurrentUseMB = $usage.CurrentUsage
FreeMB = $os.FreeVirtualMemory / 1KB
}
Automatizar el cambio de tamaño con PowerShell
Para modificar las dimensiones de manera programática en cientos de servidores:
- Comprueba si hay instancia existente:
$pf = Get-CimInstance Win32_PageFileSetting -ErrorAction SilentlyContinue
- Si no la hay, créala:
New-CimInstance -Query 'SELECT * FROM Win32_PageFileSetting' -Property @{Name='C:\pagefile.sys';InitialSize=1024;MaximumSize=4096}
- Actualiza:
Set-CimInstance -InputObject $pf -Property @{InitialSize=4096;MaximumSize=8192}
- Reinicia para aplicar:
Restart-Computer
Tip: Si tu entorno está en Azure o AWS, usa la extensión de CustomScript
para inyectar el cambio en máquinas ya desplegadas.
Preguntas frecuentes
¿Por qué WMIC pagefile list /format:list
también está vacío?
El comando WMIC pagefile
se basa en la misma clase Win32_PageFileSetting
. Si ésta no tiene instancias, la salida será nula.
¿Existe riesgo al fijar un tamaño manual?
En sistemas con crash dumps completos, define al menos RAM + 1 GB; de lo contrario, los volcados pueden truncarse. En entornos con mucho I/O de disco, mantener el modo automático suele ser más conveniente porque Windows ajusta dinámicamente.
¿Cómo replico la configuración en múltiples nodos?
Exporta la subclave PagingFiles
como .reg o utiliza Desired State Configuration (DSC):
Configuration PageFileDSC {
Node $AllNodes.Where{$_.Role -eq 'Web'}.NodeName {
Pagefile C {
Ensure = 'Present'
Drive = 'C'
InitialSize = 4096
MaximumSize = 8192
}
}
}
¿Puede haber más de un pagefile?
Sí. Para discos dedicados puedes crear varios archivos de paginación y cada uno tendrá su propia instancia —siempre que el tamaño sea manual—. Esto mejora el rendimiento al distribuir la carga de escritura.
¿Cómo monitorizo alertas de espacio bajo en el pagefile?
Crea un contador de rendimiento personalizado con Win32_PageFileUsage.CurrentUsage
y enlázalo a tu sistema de alertas (Zabbix, SCOM, Prometheus + WMI exporter…). Dispara un aviso cuando supere, por ejemplo, el 75 % del valor AllocatedBaseSize
.
Conclusión
Win32PageFileSetting
no está “roto”; simplemente obedece a la filosofía de Windows: mostrar únicamente configuraciones explícitas. Si tu consulta arroja vacío, lo más probable es que el archivo de paginación esté en modo gestionado automáticamente. Para auditoría o scripting, detecta primero AutomaticManagedPagefile
y usa Win32PageFileUsage
cuando proceda. Así obtendrás datos fiables sin forzar cambios innecesarios en la infraestructura.