在 Windows Server 2016 中,设置固定分辨率可以确保无论通过何种远程访问方式,都能保持预设的分辨率。以下是详细步骤:
方法一:通过图形界面设置
- 连接到 Windows Server 2016: 使用远程桌面连接(RDP)连接到您的 Windows Server 2016 实例。
- 打开显示设置: 右键单击桌面,选择“显示设置”。
- 更改分辨率: 在“显示”窗口中,找到“分辨率”选项,并选择您希望设置的固定分辨率。
- 应用更改: 单击“应用”按钮,然后单击“保留更改”以确认新的分辨率设置。
方法二:通过注册表设置
- 打开注册表编辑器: 按
Win + R
键,输入regedit
并按回车。 - 导航到显示设置: 在注册表编辑器中,导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
- 找到正确的显示配置文件: 在显示配置文件的子项下,找到
00
或01
文件夹,打开它并查找以下键值:PrimSurfSize.cx
:设置为宽度(例如1920)PrimSurfSize.cy
:设置为高度(例如1080)Scaling
:设置为3
(表示不缩放)
- 重启服务器: 完成上述设置后,重启 Windows Server 2016 以应用更改。
方法三:通过 PowerShell 脚本设置
- 打开 PowerShell(以管理员身份运行): 按
Win + X
键,选择Windows PowerShell(管理员)
。 - 运行以下 PowerShell 脚本: 使用以下 PowerShell 脚本设置分辨率。这个脚本将分辨率设置为1920×1080,你可以根据需要调整分辨率值。
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class ScreenRes {
[DllImport("user32.dll")]
public static extern int ChangeDisplaySettings(ref DEVMODE lpDevMode, int dwFlags);
[DllImport("user32.dll")]
public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode);
private const int ENUM_CURRENT_SETTINGS = -1;
private const int CDS_UPDATEREGISTRY = 0x01;
private const int DISP_CHANGE_SUCCESSFUL = 0;
private const int DISP_CHANGE_RESTART = 1;
private const int DISP_CHANGE_FAILED = -1;
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
public string dmFormName;
public short dmLogPixels;
public short dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
}
public static void SetResolution(int width, int height) {
DEVMODE devMode = new DEVMODE();
devMode.dmSize = (short)Marshal.SizeOf(devMode);
EnumDisplaySettings(null, ENUM_CURRENT_SETTINGS, ref devMode);
devMode.dmPelsWidth = width;
devMode.dmPelsHeight = height;
int result = ChangeDisplaySettings(ref devMode, CDS_UPDATEREGISTRY);
if (result == DISP_CHANGE_RESTART) {
Console.WriteLine("You need to restart your computer for the changes to take effect.");
} else if (result == DISP_CHANGE_FAILED) {
throw new ApplicationException("Failed to change the screen resolution.");
}
}
}
"@
[ScreenRes]::SetResolution(1920, 1080)
方法四:禁用 Remote Desktop Session Host 的自动调整分辨率
- 打开本地组策略编辑器: 按
Win + R
键,输入gpedit.msc
并按回车。 - 导航到 Remote Desktop Session Host 设置: 依次展开
计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 远程会话环境
。 - 禁用自动调整分辨率: 双击
RemoteFX Adaptive Graphics
设置,选择已禁用
,然后点击确定
。
通过以上步骤,无论通过何种远程方式连接,您的 Windows Server 2016 都应保持设置的固定分辨率。如果有任何问题或需要进一步的帮助,请随时联系我。
备忘清单
- 确保通过组策略禁用 Remote Desktop Session Host 的自动调整分辨率。
- 使用注册表或 PowerShell 设置固定分辨率。
- 确认设置后重启服务器以应用更改。
© 版权声明
本文版权归本文章作者所有,未经明确书面许可,任何人或机构不得以任何形式转载、摘编、复制或用于商业用途。如需转载或引用本文内容,请联系作者获取授权,并在转载时注明原文出处及作者信息。未经授权擅自使用本文内容的行为,将依法追究法律责任。
THE END
暂无评论内容