Establecer una frecuencia de actualización personalizada en Windows 11 a través de la aplicación Configuración es sencillo para la mayoría de los monitores, pero a veces el controlador de pantalla o el sistema operativo no muestran la frecuencia de actualización exacta que necesita. Esto puede ocurrir con monitores de alta frecuencia de actualización que admiten varias frecuencias no estándar, o cuando desea overclockear una pantalla a una frecuencia no anunciada por el fabricante. PowerShell proporciona una forma directa de consultar y establecer modos de pantalla, omitiendo la interfaz gráfica. Este artículo explica cómo usar los cmdlets del Modelo de controlador de pantalla de Windows para forzar una frecuencia de actualización específica en Windows 11.
Puntos clave: Forzar una frecuencia de actualización con PowerShell en Windows 11
- Get-PnpDeviceProperty -KeyName “DEVMODE” Consulta la configuración de pantalla actual, incluida la frecuencia de actualización, desde el controlador del dispositivo
- Add-ComputerDisplayMonitorResolution Agrega una resolución y frecuencia de actualización personalizadas a la lista de modos de pantalla
- Set-WmiInstance -Class Win32_VideoController Cambia la frecuencia de actualización activa en el adaptador de pantalla principal
Comprender la frecuencia de actualización de pantalla y los cmdlets de PowerShell
Windows 11 administra los modos de pantalla mediante una combinación de la Interfaz de controlador de dispositivos gráficos y el Modelo de controlador de pantalla de Windows. Cada modo de pantalla se define por una resolución, una profundidad de color y una frecuencia de actualización. El sistema operativo mantiene una lista de modos admitidos que el monitor informa a través de sus Datos de identificación de pantalla extendidos. Cuando fuerza una frecuencia de actualización mediante PowerShell, está agregando un modo personalizado que el monitor puede aceptar o seleccionando un modo existente que la aplicación Configuración no expone.
PowerShell accede a estos modos a través de las clases de Instrumental de administración de Windows Win32_VideoController y CIM_VideoControllerResolution. Los cmdlets Get-WmiObject y Set-WmiInstance le permiten leer y escribir en estas clases. También usa el cmdlet Get-PnpDeviceProperty para recuperar propiedades específicas del dispositivo. Estos comandos requieren privilegios administrativos porque modifican la configuración de pantalla a nivel del sistema.
Antes de ejecutar cualquier comando de PowerShell, asegúrese de que su monitor admita la frecuencia de actualización objetivo. Forzar una frecuencia no admitida puede provocar una pantalla en blanco o dañar el monitor. Si la pantalla se queda en blanco, reinicie el equipo en Modo seguro y revierta los cambios. Los pasos a continuación suponen que tiene una configuración de un solo monitor. Para varios monitores, debe especificar la instancia correcta del controlador de video.
Pasos para forzar una frecuencia de actualización específica mediante PowerShell
- Abra PowerShell como administrador
Presione la tecla Windows, escriba PowerShell, haga clic con el botón derecho en Windows PowerShell en los resultados de búsqueda y seleccione Ejecutar como administrador. Haga clic en Sí en el aviso de Control de cuentas de usuario. - Consulte la configuración de pantalla actual
Ejecute el siguiente comando para enumerar todos los controladores de video y su configuración actual:Get-WmiObject -Namespace root\cimv2 -Class Win32_VideoController | Select-Object Name, CurrentHorizontalResolution, CurrentVerticalResolution, CurrentRefreshRate, Status
Anote el valor CurrentRefreshRate en hercios. Esta es su frecuencia de actualización activa actual. - Enumere todos los modos de pantalla disponibles
Ejecute este comando para ver todas las combinaciones de resolución y frecuencia de actualización admitidas para el monitor principal:Get-WmiObject -Namespace root\cimv2 -Class CIM_VideoControllerResolution | Where-Object {$_.SettingID -like ""} | Format-Table -AutoSize
La salida muestra columnas como HorizontalResolution, VerticalResolution, RefreshRate y ScanMode. Localice la fila que coincida con su resolución deseada y la frecuencia de actualización objetivo. - Fuerce una frecuencia de actualización específica configurando el controlador de video
Ejecute el siguiente comando, reemplazando 60 con su frecuencia de actualización objetivo en hercios y 1920 y 1080 con su resolución:$monitor = Get-WmiObject -Namespace root\cimv2 -Class Win32_VideoController
$monitor.SetDisplayMode(1920, 1080, 32, 60)
Los parámetros son: ancho, alto, profundidad de color en bits y frecuencia de actualización. Un valor de retorno de 0 indica éxito. Si el comando devuelve 1 o 2, el modo no es compatible. - Verifique la nueva frecuencia de actualización
Ejecute la consulta del paso 2 nuevamente para confirmar que CurrentRefreshRate cambió a su valor objetivo. Como alternativa, abra Configuración > Sistema > Pantalla > Pantalla avanzada y compruebe la lista desplegable Frecuencia de actualización. - Agregue un modo de pantalla personalizado si falta la frecuencia deseada
Si la frecuencia de actualización objetivo no aparece en la lista, puede agregar un modo personalizado usando el cmdlet Add-ComputerDisplayMonitorResolution disponible en Windows 11 versión 22H2 y posteriores. Ejecute:Add-ComputerDisplayMonitorResolution -Width 1920 -Height 1080 -RefreshRate 144 -Format "R8G8B8A8"
Reemplace los valores con su configuración deseada. El parámetro Format aceptaR8G8B8A8para color de 32 bits. Después de agregar el modo, repita el paso 4 para aplicarlo. - Mantenga la configuración entre reinicios
El métodoSetDisplayModees temporal y se restablece después de un reinicio o reinicio del controlador. Para que el cambio sea permanente, cree una tarea programada que ejecute el comando de PowerShell al inicio. Abra el Programador de tareas, cree una nueva tarea con el desencadenador Al iniciar, la acción Iniciar un programa, el programa powershell.exe, los argumentos-Command "& {Get-WmiObject -Namespace root\cimv2 -Class Win32_VideoController | % {$_.SetDisplayMode(1920,1080,32,144)}}".
Problemas comunes al forzar una frecuencia de actualización mediante PowerShell
“SetDisplayMode devuelve el código de error 1 o 2”
El código de error 1 significa que el monitor o el controlador de gráficos no admite el modo. El código de error 2 indica un error general. Verifique que su monitor admita la frecuencia de actualización objetivo en la resolución especificada. Consulte las especificaciones del fabricante. También asegúrese de que el controlador de gráficos esté actualizado. Descargue el controlador más reciente del sitio web del proveedor de la GPU, no de Windows Update.
“PowerShell dice que Add-ComputerDisplayMonitorResolution no se reconoce”
Este cmdlet solo está disponible en Windows 11 versión 22H2 o posterior y requiere el módulo Display. Ejecute Get-Module -ListAvailable -Name Display para verificar que el módulo esté instalado. Si falta, instálelo con Install-Module -Name Display -Force desde una sesión de PowerShell elevada. Después de la instalación, importe el módulo con Import-Module Display.
“La pantalla se queda en blanco después de cambiar la frecuencia de actualización”
Si el monitor no puede mostrar la frecuencia de actualización forzada, la pantalla puede quedar en negro. Espere 15 segundos y presione tecla Windows + Ctrl + Shift + B para restablecer el controlador de gráficos. Si eso no funciona, reinicie el equipo en Modo seguro manteniendo presionada la tecla Shift mientras hace clic en Reiniciar desde la pantalla de inicio de sesión. En Modo seguro, ejecute el comando de PowerShell para revertir a una frecuencia de actualización que funcione, como 60 Hz.
“El cambio no persiste después de reiniciar”
El método SetDisplayMode no escribe la configuración en el registro ni en la configuración del controlador. Solo cambia el modo activo para la sesión actual. Use el método de tarea programada descrito en el paso 7 para volver a aplicar la frecuencia de actualización automáticamente en cada inicio. Como alternativa, use una herramienta de terceros como CRU Custom Resolution Utility para agregar el modo de forma permanente al bloque de extensión del controlador.
Métodos de frecuencia de actualización de PowerShell frente a la aplicación Configuración
| Elemento | Método de PowerShell | Aplicación Configuración |
|---|---|---|
| Método de acceso | Línea de comandos con privilegios administrativos | Interfaz gráfica a través de Configuración > Sistema > Pantalla > Pantalla avanzada |
| Opciones de frecuencia de actualización mostradas | Todos los modos informados por el controlador, incluidas las frecuencias no estándar | Solo los modos que Windows considera óptimos o seguros |
| Compatibilidad con modos personalizados | Puede agregar modos personalizados mediante Add-ComputerDisplayMonitorResolution | Sin compatibilidad nativa con modos personalizados |
| Persistencia | Solo para la sesión, a menos que se cree una tarea programada | Persistente entre reinicios |
| Recuperación de errores | Requiere Modo seguro o el atajo de restablecimiento del controlador de gráficos | Reversión automática después de 15 segundos si no hay confirmación |
La aplicación Configuración es más segura para el uso diario porque revierte automáticamente a la frecuencia de actualización anterior si no confirma el cambio en 15 segundos. PowerShell le da más control sobre modos no estándar, pero requiere pasos de recuperación manuales. Use PowerShell solo cuando la aplicación Configuración no muestre la frecuencia de actualización que necesita, como 144 Hz en un monitor que oficialmente solo admite 120 Hz.
Ahora puede forzar una frecuencia de actualización específica en Windows 11 usando comandos de PowerShell. Comience consultando la configuración actual con Get-WmiObject y luego aplique la frecuencia objetivo con SetDisplayMode. Si la frecuencia deseada no aparece en la lista, agréguela con Add-ComputerDisplayMonitorResolution y cree una tarea programada para que el cambio sea permanente. Para usuarios avanzados, la clase Set-WmiInstance permite automatizar varios cambios de pantalla en diferentes monitores en un solo script.