Как установить ACL для каталога в установщике MSI с помощью скрипта VB? - PullRequest
1 голос
/ 14 февраля 2012

Я хочу изменить разрешения для пользователей в C: \ ProgramData при запуске установки. Просто добавьте разрешение НАПИСАТЬ. Я использую скрипт vb для редактирования таблиц MSI.

Этот запрос выполняется нормально, добавляется строка, но установщик не устанавливает разрешение. Я использую настройку разрешений ALL здесь, я не знаю, каково правильное общее значение для чтения / записи.

query = "INSERT INTO LockPermissions (LockObject, Table, User, Permission) VALUES ('COMMONAPPDATAFOLDER', 'Directory', 'Users', 268435456)"

Я не могу найти рабочий пример для этого, и это должен быть довольно распространенный сценарий. Я думаю, что COMMONAPPDATAFOLDER разрешает путь примерно так:

C: \ ProgramData \ CompanyFoo \ Foo Имя продукта

но я не уверен. Я хотел бы установить разрешение для каталога «CompanyFoo», но я не знаю, как.

Редактировать: это для сценария сборки, а не для пользовательского действия MSI. Моя проблема в том, что я не использую фреймворк установки, такой как installshield, я изменяю ограниченный вывод проекта развертывания Visual Studio.

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Я наконец получил его на работу.Для проекта установки vs2010 COMMONAPPDATAFOLDER на самом деле не c: \ programdata, это c: \ programdata \ foocompany, где вы устанавливаете foocompany в настройках проекта.Так что это правильно делает.268435456 = все разрешения.

'COMMONAPPDATAFOLDER
query = "INSERT INTO `LockPermissions` (`LockObject`, `Table` , `User`, `Permission`) VALUES ('COMMONAPPDATAFOLDER', 'CreateFolder', 'Everyone',  268435456)" 
Set view = database.OpenView (query)         
view.Execute

query = "INSERT INTO `LockPermissions` (`LockObject`, `Table` , `User`, `Permission`) VALUES ('COMMONAPPDATAFOLDER', 'CreateFolder', 'Administrators',  268435456)" 
Set view = database.OpenView (query)         
view.Execute
0 голосов
/ 14 февраля 2012

Зачем вам нужно настраиваемое действие для вставки строки в таблицу lockpermissions? Просто создайте его непосредственно в MSI, так как столбцы «Домен» и «Пользователь» являются форматируемыми.

...