msi win7->win8, проблемы с доступом
От: Temnikov Россия  
Дата: 28.01.15 09:35
Оценка:
Нарисовалось несколько проблем при устоновке софтины которые присутствуют в win8, но прекрасно работали в win7.
Кратко:
1) Ставиться в Program File\<Soft>, далее в подкаталог custom action'ом создается ini файл с текущей конфигурацией компа и некоторыми сервисными данными. В win8 вылазит access denied на создание файла.
2) custom action vbs-скрипт. Скрипт делал в том числе логирование своих действий в <windows>\sistem32\logfiles\<soft>\installer, при первой установке тоже вылазит: Permission denied на создание папки: <soft>\installer
3) тот же скрипт что и в п.2. При записи в реестре в ветку выдает ошибку
WshShell.RegWrite: Invalid root in registry key "HKLM\SOFTWARE\<soft>\bla\bla\bla". Строка 33, Столбец 2

Все проблемы локально лечатся выдачей прав на каталоги/реестр для everyone. Проблема на сколько понимаю в том что на Win8 msi'ник выполняется не от учетной записи того кто запускает, а от служебной.
По идее пп.1 и 2 можно решить переместив эти файлы куда-нибудь в <APPDATA>, но не хочется переписывать часть инструкций, да и сами скрипты менять не хочется. FAQ переделывать, техподдержке данные обновлять.
3й пункт, наверно, можно поправить если запись данных в реестр делать из самого msi'ника, а не в custom action'е.
Мне эти решения не нравятся, что ещё можно сделать?
Re: msi win7->win8, проблемы с доступом
От: okman Беларусь  
Дата: 28.01.15 16:44
Оценка:
Здравствуйте, Temnikov, Вы писали:

T>Нарисовалось несколько проблем при устоновке софтины которые присутствуют в win8, но прекрасно работали в win7.


"...прекрасно работали в win7" при отключенном UAC ?

T>...

T>Мне эти решения не нравятся, что ещё можно сделать?

Настроить инсталлятор на запуск от имени администратора.
Re: msi win7->win8, проблемы с доступом
От: 0x7be СССР  
Дата: 28.01.15 20:47
Оценка:
Здравствуйте, Temnikov, Вы писали:

T>Все проблемы локально лечатся выдачей прав на каталоги/реестр для everyone. Проблема на сколько понимаю в том что на Win8 msi'ник выполняется не от учетной записи того кто запускает, а от служебной.

T>По идее пп.1 и 2 можно решить переместив эти файлы куда-нибудь в <APPDATA>, но не хочется переписывать часть инструкций, да и сами скрипты менять не хочется. FAQ переделывать, техподдержке данные обновлять.
T>3й пункт, наверно, можно поправить если запись данных в реестр делать из самого msi'ника, а не в custom action'е.
T>Мне эти решения не нравятся, что ещё можно сделать?
CustomAction выполняется как deferred?
Impersonation == "no"?
Re[2]: msi win7->win8, проблемы с доступом
От: Temnikov Россия  
Дата: 29.01.15 06:55
Оценка:
T>>Нарисовалось несколько проблем при устоновке софтины которые присутствуют в win8, но прекрасно работали в win7.
O>"...прекрасно работали в win7" при отключенном UAC ?
Да. И при включенном тоже работало.

T>>...

T>>Мне эти решения не нравятся, что ещё можно сделать?
O>Настроить инсталлятор на запуск от имени администратора.

Настроено. Но если работает сбилженный installshield'ом exe-шный инсталлятор, то ставится и работает, прав хватает. Если запускаешь msi файл, не работает.
Re[2]: msi win7->win8, проблемы с доступом
От: Temnikov Россия  
Дата: 29.01.15 07:00
Оценка:
T>>Мне эти решения не нравятся, что ещё можно сделать?
0>CustomAction выполняется как deferred?
Нет обычный Immediate CA.

0>Impersonation == "no"?

Immediate не поддерживает NoImpersonation.
Проверю сейчас но не с deferred, а c Commit CA, хотя можно и на deffered поменять, c флагом Impersonation = "no"
Re[3]: msi win7->win8, проблемы с доступом
От: 0x7be СССР  
Дата: 29.01.15 07:14
Оценка: 10 (1)
Здравствуйте, Temnikov, Вы писали:

T>Нет обычный Immediate CA.

0>>Impersonation == "no"?
T>Immediate не поддерживает NoImpersonation.
T>Проверю сейчас но не с deferred, а c Commit CA, хотя можно и на deffered поменять, c флагом Impersonation = "no"
Во, в этом дело. Immediate валяются от имени пользователя, запустившего инсталлятор. Причем, если включает UAC, и запуска ющий процесс был не из-под elevated permission, то immediate action не имеет осьбых прав. Например, писать в program files у него не получится. А для deferred инсталлятор сам запросит, если надо, UAC о повышении прав для процесса установки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.