Каталог Program Files (как правило, расположен в C: Program Files и называется %Programfiles%), где храятся большинство установленных приложений и их исполняемые файлы. Настройки для приложений, в большинстве случаев, хранятся в ветке HKEY_LOCAL_MACHINESoftware реестра. Полный доступ на запись и чтение есть только администраторам системы, а у остальных пользователяй только доступ на чтение и исполнение. Приложения должны быть направлены для записи в указанную пользователем папку Application Data, которая находится в профиле пользователя. Как правило, она расположена в C:Users<имя_пользователя>AppData и называется %AppData%. Если у пользователя есть специфические настройки, которые должны быть сохранены, они будут расположены в реестре в HKEY_CURRENT_USERSoftware. Тем не менее, многие приложения не предназначены для работы таким образом. Напротив, они предназначены для хранения данных пользователя в соответствии с %Programfiles% и HKEY_LOCAL_MACHINESoftware. К сожалению, стандартные пользователи не имеют доступ на запись в этих директориях и ветках реестра, в результате которой многие компании добавляют рядовых пользователей в группу локальных администраторов для того, чтобы они могли запускать и изменять настройки в приложениях. Конечно, это далеко не идеальный вариант, поскольку теперь пользователь может изменять что-либо на компьютере, а не только пользовательские настройки в указанных ему метках в системе.

Пока приложения не успели измениться, и пользователи по-прежнему могут запускать эти приложения, Vista использует иной подход, чтобы решить эту проблему. В Vista, UAC помогает в виртуализации файловой системы и реестра. UAC будет виртуализировать унаследованные приложения, позволяя обычным пользователям остаться «обычным пользователем», но по-прежнему запускать приложения. Определение наследия в данном случае включает в себя процессы, которые имеют 32-бита, не работает с административными привилегиями, и не включает в себя файл манифеста Windows Vista. Если процесс или операция не отвечает этим критериям, она не будет провиртуализирована. Следующие процессы и операции не являются виртуальными:

— Стандартные приложения Vista;
— Исполняемые файлы с расширениями, например, .EXE, .BAT, .VBS и .SCR. Вы можете добавить расширение файла исключений в HKLMSystemCurrentControlSetServicesLuafvParametersExcludedExtensionsAdd
— 64-разрядные приложения и процессы
— Приложения с исполняемым уровнем директивы в манифесте исполняемого, как и большинство исполняемых приложений Vista
— Процессы или приложения, работающие с правами администратора
— Приложения режима ядра
— Операции, не происходящие из интерактивного входа в сеанс, как общий доступ к файлам
— Приложения, с измененным ключем реестра с флагом Don’t_Virtualize

Конечно, виртуализировать всю файловую систему и реестр невозможно. Существуют ограничения, которые позволяют завиртуализировать определенные вертви реестр и места хранения файлов, которые имеют важное значение для операционной системы и должны быть в безопасности. Вот почти полный перечень мест, которые являются виртуальными:

— Program Files и вложенные папки
— Program Files (x86) для 64-битных систем
— Windows и все вложенные папки, включая System32 Users % ALLUSERSPROFILE% ProgramData
— Documents & Settings (символическая ссылка)
— HKLMSoftware

Попробуем настроить UAC для последующей виртуализации файлов.

Для начала зайдем в редактор локальной групповой политики и найдем Параметры Безопасности. Для этого перейдем в «Конфигурация компьютера Конфигурация Windows Параметры безопасности Локальные политики Параметры безопасности (Computer Configuration Windows Settings Security Settings Local Policies Security Options)», как показано на скриншоте:

image

Далее выберем политику «Управление учетными записями пользователей: виртуализация сбоев записи в файл или реестр в расположении пользователей (User Account Control: Virtualize file and registry write failures to per-user locations)», включим данную политику и перезагрузим компьютер для применения полтики системой.

Теперь, когда мы снабжены виртуализации файлов и реестра для обновлений в UAC, мы должны убедиться в том, что каждый процесс выполняет виртуализацию надлежащим образом. Для того чтобы это увидеть, можно запустить Диспетчер задач. Когда откроется диспетчер задач, мы должны перейти в вкладку Процессы. Перейдем в меню Вид > Выбрать столбцы и выберем столбец Виртуализация.

image

Как видно, ни один из исполняемых файлов, которые запускаются не являются виртуальными. Это объясняется тем фактом, что .EXE, .BAT, .SCR, .VBS, исключены из стандарта виртуализации. Это может вызывать проблемы, если программа должна быть обновлена сама по себе. Обычный пользователь не сможет сделать этого, так как приложение будет работать в защищенных местах.Если у вас есть расширение приложений, которое вам нужно исключить из этого первоначального списка не виртуального расширения, это можно сделать путем изменения реестра. Для добавления расширения в список исключений не виртуального расширения, введите их в HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLuafvParameters  ExcludedExtensionsAdd реестра. Чтобы добавить вам придется создать параметр реестра ExcludedExtensionsAdd. Следует добавлять параметр типа Multi_string. Расширения добавляются без предшествующей точкb, так: .EXE будет только EXE. После модификации всего списка расширений, перезагрузите ваш компьютер.Если вы хотите виртуализовать приложение или процесс, который еще не был виртуальным, вы можете сделать это на лету. Чтобы выполнить эту задачу, вам нужно будет перейти в диспетчер задач. В диспетчере задач, перейти на вкладку Процессы, как мы делали раньше. Затем выберите процесс, который вы хотите виртуализовать. Щелкните правой кнопкой мыши и выберите пункт меню виртуализация. Выскочит окно подтверждения, в котором нужно будет согласится.image 

Способность контролировать различными аспектами Виртуализации UAC обеспечивает администраторам управление приложениями, которые являются виртуальными. В любой объект групповой политики контроля над каждым аспектом UAC проста в использовании и проста в развертывании через Active Directory. После включения виртуализации файлов и реестра в UAC, компьютеры Windows Vista должны приступить к виртуализации процессов. Вы можете увидеть то, что было внутри виртуального диспетчера задач, предоставляя вам ясную картину, какие процессы были виртуальными, а какие нет

Для проверки откроем командную строку. Затем в диспетчере задач включим виртуализацию для процесса cmd.exe. Перейдем обратно в командную строку, в ней перейдем в папку %systemroot%, а затем в system32. Там с помощью команды mkdir создадим произвольную папку (к примеру test). Теперь зайдем в папку своего аккаунта и там найдем папку VirtuaStore, в которой будет наша созданная виртуальная директория (например, c:UsersDImaNAppDataLocalVirtualStore).

Реклама