1

Я управляю 50 с небольшим количеством машин, которые сталкиваются с ошибкой с помощью какого-либо устаревшего программного обеспечения. Я говорил с разработчиком, который рекомендовал изменить параметры совместимости примерно для дюжины приложений в каждой системе на Запуск от имени администратора.

Все машины настроены так, что UAC не уведомляет, так что это не проблема, и все соответствующие папки являются общими, однако я не могу сделать \\MACHINE_NAME\path\to\apps\ , щелкните правой кнопкой мыши на app.exe , щелкните свойства и измените любые параметры на вкладке совместимости. Также вы не можете массово выбирать приложения во время удаленного управления машиной и устанавливать их все сразу, они должны быть выполнены отдельно, и я должен прервать рабочий процесс пользователя, чтобы сделать это. Я знаю, что обычные параметры совместимости могут быть изменены в реестре в соответствии с этим вопросом, но флаг «Запуск от имени администратора» тоже там присутствует?

Есть ли способ справиться с этим более изящно?

2 ответа2

3

Флаг администратора тоже там заканчивается и называется RUNASADMIN .

Чтобы программно настроить параметры совместимости приложений в Windows, добавьте значение реестра в одно из следующих расположений:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers (только для текущего пользователя)
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers (для всех пользователей в системе)

Значение реестра должно содержать полный путь к исполняемому файлу в качестве имени, иметь тип REG_SZ и содержать разделенный пробелами список флагов совместимости в качестве данных. Можно настроить до 3 различных параметров совместимости:

Уровень привилегий:

  • RUNASADMIN - Запускает программу с токеном безопасности администратора.

Настройки экрана:

  • DISABLETHEMES - Отключить визуальные темы
  • 640X480 - запуск в разрешении экрана 640 x 480
  • HIGHDPIAWARE - Отключить масштабирование дисплея при настройках с высоким DPI
  • 256COLOR - работает в 256 цветах
  • DISABLEDWM - отключить композицию рабочего стола

Режим совместимости:

  • WIN95 - Windows 95
  • WIN98 - Windows 98
  • WIN4SP5 - Windows NT 4.0 SP5
  • WIN2000 - Windows 2000
  • WINXPSP2 - Windows XP SP2
  • WINXPSP3 - Windows XP SP3
  • VISTARTM - Виста
  • VISTASP1 - Vista SP1
  • VISTASP2 - Vista SP2
  • WIN7RTM - Windows 7
  • WINSRV03SP1 - Windows Server 2003 с пакетом обновления 1
  • WINSRV08SP1 - Windows Server 2008 с пакетом обновления 1

Источник


Например, следующий файл помечает исполняемый файл как требующий прав администратора и режима совместимости для 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

Чтобы применить это удаленно, либо выдвиньте параметры реестра с помощью групповой политики, удаленно выполните команду, подобную приведенной выше, либо включите удаленную службу реестра и используйте ее для применения параметров.

-1

Для тех, кто хочет сделать это из PowerShell:

Это использует HKCU, если вы хотите HKLM, найдите / замените его. Я не нашел версию HKLM работал, только HKCU. Может быть, это потребовало перезагрузки.

#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'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .