Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   LUA Fix и странности его работы (http://forum.oszone.net/showthread.php?t=196707)

myhouse_1991 15-01-2011 15:03 1589267

LUA Fix и странности его работы
 
В Windows XP есть встроенный набор исправлений и база данных исправлений, а со всем этим можно работать с помощью Application Compatibility Toolkit (или ручной правкой реестра).
Чаще всего отсюда использую готовый профиль исправления под названием LUA (Limited User Account), которое содержит следующее:
LUARedirectFS
Цитата:

Цитата Описание
This compatibility fix redirects files to %SystemDrive%\Documents and Settings\username\LocalAppData\Redirected\drive\filepath when the application needs to write to them but doesn't have the appropriate access rights.

LUARedirectReg
Цитата:

Цитата Описание
Applications may incorrectly attempt to write to the HKEY_LOCAL_MACHINE portion of the registry. This compatibility fix redirects the registry keys to the HKEY_CURRENT_USER hive when the application doesn't have the necessary permissions.

Также чтобы по-быстрому запустить приложение с этим готовым профилем, я создал такой твик реестра, который создаёт новое контекстное меню "Запустить с LUA Fix"
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runasluafix]
@="Запустить с LUA Fix"

[HKEY_CLASSES_ROOT\*\shell\runasluafix\command]
@="cmd /C \"REG ADD \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /t REG_SZ /d LUA && start \"\" \"%1\" && REG DELETE \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f\""

Принцип действия такой же, как я описывал в Разное - [решено] Запуск программ с включенным UAC без повышения прав, только вместо исправления RUNASINVOKER я использую LUA.

Но заметил разногласие работы LUARedirectFS. А именно он перенаправляет запись в ..\All Users\.., вместо текущего пользователя. Из-за чего ограниченный пользователь не может записывать сюда данные так как права доступа по-умолчанию не позволяют это сделать, но переправлять права доступа тоже не решение - нужно чтобы записывалось в папку пользователя.

Исправил данную проблему лишь более жёстким способом - после того, как заметил с помощью Process Explorer, что при включении данного исправления просто происходит инъекция AcLua.dll, я данный файл открыл редактором байтов, нашёл Unicode-строку %ALLUSERSPROFILE%\Application Data\Redirected и поменял на %USERPROFILE%\Application Data\Redirected. Но я не понимаю, почему данное исправление работает не так, как задумано, ведь в оригинальном файле встречается путь %USERPROFILE%\Application Data\Redirected

OS: Windows XP PRO SP3 RUS с обновлениями и без обновлений также.


Время: 06:26.

Время: 06:26.
© OSzone.net 2001-