top of page

OUR PRECONDITIONS

  • The old network infrastructure, referred to as OldNet:
    Doesn’t support 802.1x.
    Two domains on different VLAN’s with a one way trust, referred to as Enterprise and Educational.
    The two domains have their own network infrastructure, different IP Helpers, DNS, DHCP and so on.

  • The new infrastructure, referred to as NewNet:
    802.1x is required using CISCO ISE and Layer 3 switches.
    Only one fallback net with its own IP range, common for both domains, which also supports WebAuth guest access.
    The two domains still have their own IP range, DHCP, DNS etc. but will use the same PXE-server since PXE boot is taking place on the fallback network.

  • Both the old and the new network infrastructure will be used to deploy Windows 10 x64 and Windows 7 x86.

  • MAB will not be used during OSD, the network team don’t want to spread a special OSD VLAN so clients will get an IP address according to its current location and only certificate-based authentication is allowed.

  • The task sequence needs to support both the new computer and refresh scenario as well as BIOS to UEFI conversion regardless of the currently installed operating system.
    The scripts used for managing 802.1x needs to support Windows 7 and its PowerShell version.

Search
Writer's picturesomeguy100

Set the resolution and scale of each monitor, even in WinPE

Updated: Apr 2, 2021

Why oh why should such a simple thing as setting (or getting) the resolution or scale of a monitor be such a pain in the ****? Now that you know the motivator of me doing this... This is the DisplayHelper. Current capabilities:

· Get the resolution of each connected monitor (Logical and actual).

· Set the resolution of each monitor (Limited to what the monitor is capable of)

· Get the available, current and recommended scale per monitor (and resolution).

· Set the scale of each monitor.

· Get all of the different DPI-types.

· Get the output technology of each monitor (HDMI/Internal/DisplayPort etc)

· All of the above even if the resolution or scale changes or if a new monitor is connected.

The powershell script that I’m about to post has a new trick up its sleeve, at least a new one for me. It can detect a dynamicparam, as you type it, and use the value of it in order to tab complete the next dynamicparam.

Eg. “ChooseFruit.ps1 –Fruit Apple/Blueberry/Banana” would allow the next dynamicparam, –FruitColor, to tab complete Green, Yellow or Red if -Fruit -eq Apple . ChooseFruit.ps1 –Fruit Apple –FruitColor Green/Yellow/Red.

A blueberry would only give –FruitColor the option of “Blue” and a banana the option of “Yellow/Green(Not to be consumed)”. =P

So when using Set-Resolution -MonitorName \\.\DISPLAY1, “-Resolution” will only Tab complete the possible resolutions for “\\.\DISPLAY1”.


This comes as a .dll for now as the code is a bloody mess. I would be ashamed to share it even with my own folks.



Made a powershell wrapper containing the following commands:

  • Set-MonitorResolution

  • Get-MonitorResolution

  • Set-MonitorScale

  • Get-MonitorScale

  • Get-Monitors


And for you ConfigMgr ppl, tired of the poor resolution in WinPE? I know I am. This seems to be working in WinPE as well :)



1,806 views4 comments

4 Comments


ITNinjaGuy
ITNinjaGuy
Feb 22

Is it possible for you write up a how to guide to intergrate this into a SCCM task sequence?

Like

jeff
Sep 04, 2021

How are you getting the monitor size and resolution in WinPE?

Like
jeff
Sep 06, 2021
Replying to

The technical details. Normally, "path win32_videocontroller",

"/namespace:\\root\wmi path wmimonitorbasicdisplayparams", or "/namespace:\\root\wmi path wmimonitorid", aren't available in WinPE. Are you adding something to your WinPE image to make them available?

Like
bottom of page