如何在 Windows Server 2016 中设置固定分辨率

在 Windows Server 2016 中,设置固定分辨率可以确保无论通过何种远程访问方式,都能保持预设的分辨率。以下是详细步骤:

方法一:通过图形界面设置

  1. 连接到 Windows Server 2016: 使用远程桌面连接(RDP)连接到您的 Windows Server 2016 实例。
  2. 打开显示设置: 右键单击桌面,选择“显示设置”。
  3. 更改分辨率: 在“显示”窗口中,找到“分辨率”选项,并选择您希望设置的固定分辨率。
  4. 应用更改: 单击“应用”按钮,然后单击“保留更改”以确认新的分辨率设置。

方法二:通过注册表设置

  1. 打开注册表编辑器: 按 Win + R 键,输入 regedit 并按回车。
  2. 导航到显示设置: 在注册表编辑器中,导航到以下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
  3. 找到正确的显示配置文件: 在显示配置文件的子项下,找到 0001 文件夹,打开它并查找以下键值:
    • PrimSurfSize.cx:设置为宽度(例如1920)
    • PrimSurfSize.cy:设置为高度(例如1080)
    • Scaling:设置为 3(表示不缩放)
  4. 重启服务器: 完成上述设置后,重启 Windows Server 2016 以应用更改。

方法三:通过 PowerShell 脚本设置

  1. 打开 PowerShell(以管理员身份运行): 按 Win + X 键,选择 Windows PowerShell(管理员)
  2. 运行以下 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 的自动调整分辨率

  1. 打开本地组策略编辑器: 按 Win + R 键,输入 gpedit.msc 并按回车。
  2. 导航到 Remote Desktop Session Host 设置: 依次展开 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 远程会话环境
  3. 禁用自动调整分辨率: 双击 RemoteFX Adaptive Graphics 设置,选择 已禁用,然后点击 确定

通过以上步骤,无论通过何种远程方式连接,您的 Windows Server 2016 都应保持设置的固定分辨率。如果有任何问题或需要进一步的帮助,请随时联系我。


备忘清单

  • 确保通过组策略禁用 Remote Desktop Session Host 的自动调整分辨率。
  • 使用注册表或 PowerShell 设置固定分辨率。
  • 确认设置后重启服务器以应用更改。
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容