#0
by TormozIT
В 64-битной ОС Windows 10 с выключенным контролем учетных записей (UAC) из 32-битного клиентского приложения, запущенного интерактивно без элевации (не через команду "Запуск от имени администратора"), выполняю попытку записать файл "C:Program Files1cv8conflogcfg.xml" и получаю исключение Ошибка доступа к файлу 'C:Program Files1cv8conflogcfg.xml' Моя учетная запись естественно входи в группу Администраторы. Как грамотно (с учетом идеологии контроля учетных записей) записать такой файл? Если даю доступ учетным записям "Все приложения" или "Все ограниченные приложения", то ошибка остается. Если даю доступ всем (учетная запись "Все") на этот файл, то ошибка уходит. Можно ли как то временно запросить у пользователя элевацию на конкретную файловую операцию? Как из кода 1С запустить приложение с элевацией?
#1
by Jija Grenkov
Первое, что приходит в голову выполнить bat/shell скрипт. А пользователь пароль админа знает или нет?
#2
by Cyberhawk
"с выключенным контролем учетных записей (UAC)" // Его нельзя выключить. Наверное, имеется в виду самое "нижнее" положение ползунка в настройке уровней УАС?
#3
by Jump
>>Как грамотно (с учетом идеологии контроля учетных записей) записать такой файл? не отключать UAC не писать в системные директории.
#4
by Jija Grenkov
так а если файл настроек системного журнала должен лежать именно в этом каталоге? По вашей теории нельзя автоматизировать этот процесс.
#7
by Jump
Технологический журнал, это журнал приложения. А приложение не должно хранить свои журналы, логи и прочие временные файлы в системных директориях. Т.е журналов там не должно быть. В речь идет про файл logcfg.xml - это файл настройки приложения. Он записывается при установке программы. И соответственно должен изменяться, перезаписываться, или удалятья только при установке или удалении данной программы.
#8
by Jump
Т.е есть базовый принцип - приложение не должно писать в Program Files, и уж тем более не должно там ничего хранить.
#9
by Jija Grenkov
Я не разделяю ваше мнение, что файл настроек технологического журнала должен записыватсья при установке/удалении 1с. Это не временный файл, это не лог - это конфигурационный файл приложения (1с) для настройки логирования. Где ему еще лежать? Как минимум я знаю 2 случая, когда этот файл меняетя из 1с. В ЦУП и обработке настройки тех журнала.
#10
by Jump
Поясню - Если файл изменяется при работе программы, то его нельзя размещать в Program Files. Там можно размещать только файлы изменяемые при установке программы!
#11
by Jija Grenkov
я даже затрудняюсь представить где должны лежать конфиги приложения (конфиги для того и есть, что бы их менять по потребности). 1. Конфиг это скорее постоянный файл чем временный. Часто без конфига приложение просто не будет запускатсья, а удаление временных файлов не должно влиять на работоспособность приложения. 2. Разработчики 1с решили, что конфиги должны лежать в папке c установленной платформой. 3. Довольно много программ хранят конфиги в <home directory>/conf , я сейчас много работаю с apache hadoop стеком и там все конфиги лежат именно в этом каталоге.
#12
by Jump
Все конфиги должны лежать в HomeDir. Это основа. В линуксе немного по другому, но принцип тот же.
#13
by Jija Grenkov
Так, а что для платформы является home dir? Разве не папка куда установленая программа?
#14
by Jija Grenkov
И самый ключевой момент в том, что разработчки платформы ожидают файл именно в том месте и пользователю остаеться только подстраиваться под ситуацию.
#18
by Jump
Да пофиг что там ожидают разработчики. Вопрос был в том, как идеологически правильно обеспечить доступ к файлу, я объяснил. А как там думают разработчики - дело третье.
#21
by Jija Grenkov
До меня вам точно не удалось донести суть. В папке пользователя лежат настройки относящиеся к конерктному пользователю, в папке с утановленной программой конфиги относящиеся к программе в целом.
#22
by Jump
Что нехватает прав это понятно. Не хватает прав пользователю, под которым записана программа. Почему не хватает - потому что пользователям нельзя писать в эту директорию.
#24
by Jump
По идеологии Windows в Programm Files хранится сама программа и необходнимые для нее библиотеки и данные. Они записываются в момент инсталляции, и используются только на чтение. В нее запрещено писать пользовательским программам.
#26
by TormozIT
Спасибо. Хоть что то по существу вопроса =) Видимо придется использовать старый добрый hstart, который теперь поддерживает элевацию.
#28
by Лефмихалыч
можно тупо прав накинуть на этот самый сам по себе logcfg.xml еще можно "mklink -j" и заныкать куда-то этот logcfg.xml, куда права есть. или в 1cv88..*inconfconf.cfg прописать ConfLocation, опять же туда, где есть права
#29
by TormozIT
Еще бы найти полностью бесплатную утилиту для выполнения команд системы с элевацией.
#32
by Jija Grenkov
Конечно нет. Это лишь подтвержает, что конфигурацие должен заниматься человек с правами админа. Не вижу никих проблем записать файл из скрипта.
#35
by Jump
Вот именно - вносить изменения туда может только админ, и система. Но никак не пользователь. А программа запускается от пользователя.
#37
by Jija Grenkov
я подразумевал, что весь код записи файла будет в скрипте. То есть вы его динамически сформировали, положили во временный каталоги и оттуда скриптом копировали в конечную директорию
#40
by TormozIT
Решение найдено. elevate - Command-Line UAC Elevation Utility This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.
#41
by TormozIT
Утилита действительно работает и не запрашивает пароль, но показывает окно командного интерпретатора. Поэтому все таки пришлось вернуться к старому доброму hstart.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Ошибка 70. Ошибка доступа к таблице.
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- Ошибка доступа к файлу
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- Ошибка выполнения запроса "Ошибка в ограничении доступа к данным..."
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- ошибка доступа к файлу v8srvr://../configsave при обновлении
- Общая ошибка доступа к файлу 1cv77.md
- Ошибка при вызове конструктора (ДвоичныеДанные): Ошибка совместного доступа к фа
- v8: Ошибка СУБД. Внутренняя ошибка компоненты DBENG8 при обмене данными
- Ошибка при попытке выгрузить данные из УТ в БП. интересная необычная ошибка
В этой группе 1С
- Подготовка к собеседованию, программист 1с
- При открытии списков переходить в конец списка.
- Неправильные общие итоги когда не отмечены все выбранные поля в СКД 8.3
- Ошибка при удалении элемента справочника
- Штрих кодирование документов
- Поле ввода с составным типом данных. Как убрать выбор типа, если указан тип?
- Макет ресурсов таблицы на СКД
- Дисплей покупателя Штрих т
- Переход из БП 2.0 на УТ 11
- как можно разделить выдачу лицензий между внутреними и внешними подключениями,
- Вопрос по КД 2 (Перенос справочника по ссылке)
- АвтоМаксимальнаяШирина - как везде поставить ложь?
- Нет контроля пересечения периодов в ЗУП 3.1
- Ошибка создания ИБ на SQL
- Корректировка реализации и печать УПД
- Знатокам VBA, не работает код VBA Excel при выгрузке из 1С
- Вызов отчета 1С из формы обработки 8.3, управляемая форма
- Вывод отчета в три макета из одного запроса
- УТМ 2.0.3 ЕГАИС отказа контрагентом от акта подтверждения
- Документ должен формировать проводки Дт МЦ.04 Кт МЦ.04.