Recebi uma nova estação de trabalho móvel (Lenovo P50), e estava ansioso para poder executar meu laboratório Hyper-V nesta besta poderosa. Com um processador Xeon, 64GB de ram e m12 unidades de estado sólido, pensei que as implementações de testes se tornariam uma brisa … Mas o que eu achei era que este novo computador, que possui uma tela de 4K, me daria algumas dores de cabeça!

O problema é que, ao usar o Hyper-V Virtual Machine Connection para se conectar aos convidados, ele depende do sistema operacional Guest para lidar com a escala da tela no próprio sistema operacional. Isso resulta em janelas muito pequenas para sistemas operacionais que não manipulam escalas DPI como algumas distribuições Linux e para o meu grande aborrecimento do Windows PE !.

Então, ao conectar-se com meus convidados, as janelas pareciam assim:

Before

Como você pode suspeitar que estas janelas pequenas fariam com que você estivesse com um bocado muito para ver o que está acontecendo, um arquivo de leitura é quase impossível …

O conserto

Depois de desenhar em branco nos meus gurus de implantação, eu comecei a arrasto na Internet por uma solução, vários dias depois, depois de ler uma grande quantidade de documentação do desenvolvedor na escala de exibição, eu finalmente encontrei uma solução!

Adicione a seguinte chave de registro para dizer ao Windows que prefira arquivos de manifesto externos:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SideBySide \ PreferExternalManifest = 1 (valor DWORD)

Coloque um arquivo de manifesto ao lado do executável que deseja que o Windows seja dimensionado corretamente e é isso mesmo!

After

Agora, sua conexão de máquina virtual Hyper-V escala melhor, e os olhos são uma coisa do passado.

Arquivo manifesto

Adicione a chave de registro mencionada acima e localize o executável que causa problemas, neste caso é o vmconnect.exe localizado no diretório Windows \ System32.
Baixe o arquivo program.manifest anexado abaixo e renomeie-o para vmconnect.exe.manifest e coloque-o ao lado do executável como este:

filelocation

O arquivo de manifesto é apenas um arquivo xml que se parece com isso:

<? Xml version = “1.0” encoding = “UTF-8” standalone = “yes” ?> < Assembly xmlns = “urn: schemas-microsoft-com: asm.v1” manifestVersion = “1.0” xmlns: asmv3 = “urn: schemas -microsoft-com: asm.v3 ” > < dependency > < dependentAssembly > < assemblyIdentity type =” win32 ” name =” Microsoft.Windows.Common-Controls ” version =” 6.0.0.0 ” processadorArchitecture =” * ” publicKeyToken =” 6595b64144ccf1df ” Language =” * ” > </ assemblyIdentity > </ dependentAssembly > </ dependency > <dependency > < dependentAssembly > < assemblyIdentity type =” win32 ” name =” Microsoft.VC90.CRT ” versão =” 9.0.21022.8 ” processadorArchitecture = ” Amd64 “publicKeyToken = “1fc8b3b9a1e18e3b” > </ assemblyIdentity > </ dependentAssembly > </ dependency > < trustInfo xmlns = “urn: schemas-microsoft-com: asm.v3″ > <security > < requestedPrivileges > < requestedExecutionLevel level = ” AsInvoker ” uiAccess =” false ” /> </ requestedPrivileges > </ security > </ trustInfo > < asmv3 : Aplicação > < asmv3: windowsSettings xmlns = “http://schemas.microsoft.com/SMI/2005/WindowsSettings” > < ms_windowsSettings: dpiAware xmlns: ms_windowsSettings = “http://schemas.microsoft.com/SMI/2005/ WindowsSettings ” > false </ ms_windowsSettings: dpiAware > </ asmv3: windowsSettings > </ asmv3: application > </ assembly >

Comece seu programa e é isso, não é necessário reiniciar.

Área de trabalho remota

Após este sucesso, pensei em outros usos para essa correção, uma das mais óbvias era a conexão RDP para computadores que não manipulam a escala, como o Windows Server 2008.

Antes de adicionar o arquivo de manifesto ao mstsc.exe:

RDP before

Depois de adicionar um arquivo de manifesto:

RDP After

Então, isso também funciona para obter uma conexão RDP mais útil em monitores de 4K ou 3K.

O que fiz foi copiar o mstsc.exe para mstsc2.exe e copiar o arquivo de idioma mstsc.exe.mui na pasta de idiomas en-us (faça a alteração na pasta de idioma apropriada). Em seguida, adicionei um arquivo mstsc2.exe.manifest que me permite escolher se deseja ou não corrigir a escala da tela, dependendo do SO que eu estou conectando.

Você pode baixar o arquivo program.manifest aqui: zip ManifestFile.zip 668 bytes

Anúncios