Altera remotamente um programa para "Executar como administrador" por padrão

1

Eu gerencio 50 máquinas que estão experimentando um erro com algum software legado. Falei com o desenvolvedor, que recomendou a alteração das opções de compatibilidade em cerca de uma dúzia de aplicativos em cada sistema para Executar como administrador.

Todas as máquinas são configuradas para que o UAC não seja notificado, portanto, isso não é um problema e todas as pastas pertinentes são compartilhadas, mas não posso fazer \MACHINE_NAME\path\to\apps\ , clicar com o botão direito do mouse em app.exe , clicar em propriedades e alterar quaisquer opções na guia de compatibilidade. Além disso, você não pode selecionar aplicativos em massa enquanto controla remotamente a máquina e configurá-los todos de uma vez, eles devem ser feitos separadamente, e eu tenho que interromper o fluxo de trabalho do usuário para fazê-lo. Eu sei que as opções de compatibilidade normais podem ser alteradas no registro como por esta questão , mas o sinalizador Run As Administrator termina aí também?

Existe alguma maneira de lidar com isso de maneira mais elegante?

    
por Adam Smith 29.09.2014 / 17:36

2 respostas

3

O sinalizador de administrador também acaba lá e é chamado RUNASADMIN .

Para definir programaticamente as configurações de compatibilidade de aplicativos no Windows, adicione um valor de registro a um dos seguintes locais:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers (apenas para o usuário atual)
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers (para todos os usuários no sistema)

O valor do registro deve ter o caminho completo para o executável como o nome, ser do tipo REG_SZ e conter uma lista separada por espaço de sinalizadores de compatibilidade como os dados. Até 3 configurações diferentes de compatibilidade podem ser configuradas:

Nível de privilégio:

  • RUNASADMIN - Executa o programa com o token de segurança administrativa

Configurações de exibição:

  • DISABLETHEMES - Desativar temas visuais
  • 640X480 - executado em resolução de tela de 640 x 480
  • HIGHDPIAWARE - Desativar o dimensionamento de exibição em configurações de DPI alto
  • 256COLOR - executado em 256 cores
  • DISABLEDWM - Desativar composição da área de trabalho

Modo de compatibilidade:

  • WIN95 - Windows 95
  • WIN98 - Windows 98
  • WIN4SP5 - Windows NT 4.0 SP5
  • WIN2000 - Windows 2000
  • WINXPSP2 - Windows XP SP2
  • WINXPSP3 - Windows XP SP3
  • VISTARTM - Vista
  • VISTASP1 - Vista SP1
  • VISTASP2 - Vista SP2
  • WIN7RTM - Windows 7
  • WINSRV03SP1 - Windows Server 2003 SP1
  • WINSRV08SP1 - Windows Server 2008 SP1

Source

Por exemplo, o seguinte sinaliza um executável como exigindo privilégios administrativos e modo de compatibilidade para o Windows XP SP3:

reg.exe ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\temp\compatmodel\iconsext.exe" /t REG_SZ /d "WINXPSP3 RUNASADMIN" /f

Para aplicar isso remotamente, envie as configurações do registro com a diretiva de grupo, execute remotamente um comando como o acima ou ative o serviço de registro remoto e use-o para aplicar as configurações.

    
por 29.09.2014 / 18:10
-1

Para quem procura fazer isso no PowerShell:

Isto está usando o HKCU, se você quiser o HKLM, encontre / substitua isso. Eu não encontrei a versão HKLM funcionou, apenas HKCU. Talvez tenha exigido uma reinicialização.

#create the key if it doesn't exist already
if(-not (Test-Path -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags"))
{
    $_ = New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name "AppCompatFlags"
}
if(-not (Test-Path -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"))
{
    $_ = New-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\" -Name "Layers"
}

#create the value
$_ = New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" -Name "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" -PropertyType String -Value 'RUNASADMIN'
    
por 05.06.2018 / 18:47