20.10.2011, 17:41 | #6 |
Участник
|
Сохранение документа Excel на AOS'е, работающем под непривилегированным пользователем
Если вдруг кому взбредет в голову запускать AOS под непривилегированным пользователем и создавать на нем файлы Excel - так, чтобы Excel запускался на сервере, то его ждут новые приключения, связанные с правами доступа. Для теста я использовал простой джобик:
X++: SysExcelApplication xl; SysExcelWorkbook wbk; ; xl = SysExcelApplication_NET::construct( ClassRunMode::Server ); xl.visible( false ); wbk = xl.workbooks().add(); wbk.saveAs( DEV_xInfoDirectoryServer( DirectoryType::Temp ) + 'test.xls' ); xl.quit();
Цитата:
The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {00024500-0000-0000-C000-000000000046} and APPID Unavailable to the user DOMAIN\AX2009AosUser from address LocalHost (Using LRPC). This security permission can be modified using the Component Services administrative tool.
ШАГ 1. Идем в редактор реестра и добавляем туда что-то вроде этого (ветка HKCR\CLSID\{00024500-0000-0000-C000-000000000046} там уже есть): Код: REGEDIT4 [HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}] "AppID"="{00024500-0000-0000-C000-000000000046}" [HKEY_CLASSES_ROOT\AppID\{00024500-0000-0000-C000-000000000046}] @="Microsoft Excel" Здесь я исхожу из того, что на вкладке Identity мы выбрали запуск DCOM-сервера под тем пользователем, который собственно его запускает (The launching user) - это логично, раз мы решили ограничить права самого AOS'а. Теперь как минимум экземпляр SysExcelApplication_NET у нас создается, и под тем пользователем, под которым работает AOS, запускается процесс Excel.exe. Однако, на строке добавления новой книги Excel у нас вылетает исключение Exception::CLRError без какого-либо текста сообщения. Его причина заключается в том, что Excel хоть и запускается под нашим непривилегированным пользователем, но пытается получить доступ на изменение к ряду каталогов в %SystemRoot%\SysWOW64\config\systemprofile. ШАГ 2. На каталоги Цитата:
%SystemRoot%\SysWOW64\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files
%SystemRoot%\SysWOW64\config\systemprofile\Desktop |
|
|
За это сообщение автора поблагодарили: BOAL (2), sukhanchik (10), Logger (10), coolibin (2), alex55 (1), A_BAS (1), aao_p (1). |
Теги |
0x800a03ec, 64-bit, excel, windows server 2008, баг, ошибка, пакетная обработка, пакетный сервер |
|
|