|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Тем на эту тему было много, но я прошу совета, каким путем пойти в принципе, чтобы решить несколько задач. Итак: Раньше моя программа использовалась пользователями, имеющими на машине права локальных админов, поэтому вопросы прав меня не очень беспокоили. Теперь часть машин переместилась (и дальше будет больше) в домен, где права пользователя ограничены, в частности, он не может самостоятельно устанавливать программы. В принципе, первичную установку программы с дистрибутива производят админы при инсталляции новой машины и меня это тоже не сильно беспокоит. Но мне позарез надо, чтобы пользователь имел возможность самостоятельно оперативно обновить версию (или устарить), не дожидаясь, когда придет по вызову кто-то из админов. Как происходит сейчас. Программа работает с сервером БД. Новые версии я выкладываю прямо в БД. Когда пользователю нужно сменить версию программы, он нажимает кнопку, выбирает нужную версию из списка, из БД скачивается небольшой файлик-инсталлятор, далее он скачивает нужную версию exe-файла и ocx-библиотеку, заменяет exe-файл, заменяет ocx в system32, регистрирует библиотеку с помощью DLLSelfRegister, вот, собственно, и все. Соответственно, теперь некоторые пользователи самостоятельно не могут обновиться. Как лучше (и возможно ли) изменить структуру всего этого, чтобы иметь возможность решить эту проблему? С админами, в принципе можно о чем-то и договориться, права локального админа пользователям они не дадут, но может могут разрешить что-то конкретное (я не силен в управлении доменом и не знаю, а что собственно, я могу у них попросить). ЗЫ: Есть еще пара проблем, которые решить легче: 1) Прога создает папки и файлы для своей работы. Сейчас создает в собственной директории, но это, видимо, я могу просто унести в AppData? Или там тоже не будет достаточно прав, лучше в папку documents&settings? 2) Прога должна сохранить локально некие данные, которые должны быть доступны, даже если программа запущена под другим пользователем. Сейчас хранит опять же в собственной папке. Сохранять их куда-нить в HKLM? А хватит опять же прав на это? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2012, 21:51 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Если старые члены интерфейсов библиотек не удаляются и не изменяются, то библиотеки можно просто перезаписывать без перерегистрации. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2012, 22:28 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
1) А как же новые члены? Они все равно будут видны? 2) Перезапись в system32 все равно не разрешена, куда-то в другое место ее совать, опять же куда? 3) Изредка я все же меняю старые члены, не сохраняя совместимость, в основном добавляются параметры ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2012, 23:06 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
> Shocker.Pro > Как лучше (и возможно ли) изменить структуру всего этого, чтобы иметь возможность решить эту проблему? Перенести приложение на сервер приложений (если он есть...). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2012, 23:52 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
скукотищаПеренести приложение на сервер приложений (если он есть...).и работать через RDP? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 00:05 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 02:22 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.Pro , как вариант (у нас сделано) ClickOnce-таория ClickOnce Deployment for Unmanaged Code (C++, VB6, etc) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 08:04 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
и, кстати, да у нас есть также сторонние приложения, которые размещены в сети и пользователи запускают через сеть (это как бы дополнение скукотища , но без РДП) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 08:05 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.Pro1) А как же новые члены? Они все равно будут видны? 2) Перезапись в system32 все равно не разрешена, куда-то в другое место ее совать, опять же куда? 3) Изредка я все же меняю старые члены, не сохраняя совместимость, в основном добавляются параметры1) Да 2) C:\Documents and Settings\User\Application Data. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 10:01 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
3) При таком подходе добавление параметра ни на чем не отражается: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 10:38 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
скукотищаShocker.Proи работать через RDP?Да.Ну RDP недостаточно удобен, так как люди работают не только с моей программой, но и с кучей софта, который установлен к них локально - переключаться туда-сюда неудобно. В качестве пояснения: в домене работают с программой офисные пользователи. Есть достаточное количество пользователей, работающих через интернет, в том числе со своих домашних машин. HandKot Shocker.Pro , как вариант (у нас сделано) ClickOnce-таория ClickOnce Deployment for Unmanaged Code (C++, VB6, etc) Опять же, если бы программа использовалась только в домене, можно было бы развернуть, но, повторюсь, есть куча внешних пользователей. HandKotи, кстати, да у нас есть также сторонние приложения, которые размещены в сети и пользователи запускают через сеть (это как бы дополнение скукотища , но без РДП)Опять же, если все пользователи в локалке, у меня - не все. Antonariy3) При таком подходе добавление параметра ни на чем не отражается:А добавление новых контролов? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:17 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.ProА добавление новых контролов?Точно не уверен. Попробуй добавить и скомпилировать, сохраняя бинарную совместимость со старой версией, потом переписать на другой комп и создать объект (например из-под экселя) под ограниченным пользователем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:26 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.ProHandKot Shocker.Pro , как вариант (у нас сделано) ClickOnce-таория ClickOnce Deployment for Unmanaged Code (C++, VB6, etc) Опять же, если бы программа использовалась только в домене, можно было бы развернуть, но, повторюсь, есть куча внешних пользователей. так там про такое ограничение ничего не сказано Введение в развертывание ClickOnce наоборот "Существует три способа публикации приложения ClickOnce: с веб-страницы, ... " и вдобавок таблица Таблица сравнения ClickOnce и установщика Windows Функция ClickOnce Установщик WindowsОбновление через Интернет Да Нет так что удаленные пользователи не есть проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:30 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
HandKotтак что удаленные пользователи не есть проблематы не понял мою мысль. Я о том, что для ее функционирования требуется разворачивать сам ClickOnce на локальной машине пользователя. HandKotТаблица сравнения ClickOnce и установщика Windowsа о таблице сравнения: Функция ClickOnce Установщик WindowsУстановка общих файлов Нет Да ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:40 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
А еще есть манифесты , и эта тема. Я там костыль выкладывал, нужно регистрироваться чтобы скачать. И там же: RegsvrEx Регистратор COM(OLE,ActivX)-компонентов, альтернатива regsvr32. В дополнение к возможностям regsvr32 позволяет зарегистрировать компонент под текущим пользователем (актуально для Win2000/XP). В этом случае для регистрации не требуются права администратора (т.к. вся запись идет в ветку реестра текущего пользователя); однако зарегистрированный таким образом компонент доступен только текущему пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:41 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
AntonariyЯ там костыль выкладывалты имеешь ввиду это:AntonariyСоздание объекта из ActiveX-сервера (OCX, DLL) без регистрации. Тест проводился только под WinXP.У меня не сработал проект, да и динамическое создание контрола не канает - все переписывать надоть. Остальное поизучаю ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:56 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
О манифестах я вот пялюсь в msdn весь день и никак не могу понять один нюанс (шаг 7 для VB6) In the \deployed folder, create a private assembly manifest file (a text file) for the SideBySide.dll component and call it SideBySide.X.manifest. Paste the following into the file: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
То есть есть два ГУИДа, которые прописаны от фонаря. Мне нужно узнать эти два ГУИДа для собственного ocx, для чего предлагается открыть файл с помощью OLE Viewer. Ну открыть-то я его открыл, только ни черта непонятно, откуда именно брать эти два ГУИДа. Причем приведенный там же пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 18:57 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
baseInterface нужен именно такой какой указан. У меня oleview выдало это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Нужных значений для proxyStubClsid32 не так много, одно из них должно сработать. А еще поиск . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 20:31 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
> Shocker.Pro > тынц на МСДН > {многабукаф, поскипано} > ясности нифига не вносит ... Хабрахабр: Клиентские Windows приложения на JavaScript . Серый форум: WSH: Использование COM-сервера без его регистрации в системе . Вроде-бы нормально описано создание манифестов для reg-free использования COM-среверов/ActiveX. На хабре покороче :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 21:57 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Млин. Для начала под placeholders в статье msdn имелись ввиду записи типа [IID__SideBySideClass] аж четыре штуки, где чего брать - непонятно. По одной из ссылок нашел некий генератор манифестов regsvr42.exe. Он сам создает оба манифеста. Для созданной dll-ки он сгенерил корректные манифесты и все заработало. Создал ocx - с единственным контролом внутри "ucc" и exe-шник с формой и этим контролом, создал манифесты. При попытке запустить exe-ник пишет: "Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему." в принципе, тут вскользь упомянуто, что regsvr42.exe может создать некорректный манифест для ocx и его придется править, но как и что править? Вот манифест, который получился для моего ocx-а: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
вот то, что выдает OLE-Viewer: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
и как понять, что тут неправильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2012, 15:51 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
В общем, вроде разобрался с манифестом: из того, что генерит regsvr42 нужно убрать разделы <comInterfaceExternalProxyStub> и все работает. Только вот все, да не все. Не работает динамическое создание контрола из библиотеки - Invalid class string. Looking for object with ProgID: Исходники и исполнялки с манифестами прикладываю. Есть какие-нибудь предложения, как это исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2012, 18:33 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.Pro, а почему нельзя дать соответствующим пользователям домена права локальных админов на своих машинах? Админы домена внятно обосновали данный запрет, с приложением соответствующего объяснения "на бумаге", и при этом есть соответствующее ("бумажное" же) указание от руководства организации? Или просто им лень заниматься администрирование AD? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2012, 20:16 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
AndreTM, Нельзя. Политика безопасности. Не обсуждается. Правила устанавливает начальник ИТ-отдела, руководство ему не указ, потому что ничего в этом не понимает, для того начальника и наняли. Но я не вижу в этом ничего дурного. В большой организации, мне кажется, это нормально, чем эникеить потом за криворукими пользователями и вирусы гонять. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2012, 21:21 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
Shocker.ProВ большой организации, мне кажется, это нормально, чем эникеить потом за криворукими пользователями и вирусы гонять.Не факт... Я тоже бывал "начальником отдела ИТ" при "некомпетентном в вопросах руководстве". И специалистом по комп.безопасности, по непрофильному образованию... Тем не менее, раздача админских прав на собственные машины - в своё время стала наиболее приемлемым решением. Вместо месяцев головной боли по состыковке клиентских приложений с операционками. А что касается Политики безопасности - так проще скомпрометированную машину начисто поднять с "исходного для станций" бэкапа за 15 минут + выписать докладную на лишение 100% премии работнику. После пятого-шестого примера - отбивает начисто любые желания у работников к любым левым шагам... Судя по всему, отделу ИТ, вернее, его начальнику - либо нечем заняться, либо, наоборот, есть чем собственным заняться - поэтому и решается всё и сразу привычными ограничениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2012, 21:45 |
|
Борьба с ограничением пользовательских прав в домене.
|
|||
---|---|---|---|
#18+
AndreTMтак проще скомпрометированную машину начисто поднять с "исходного для станций" бэкапа за 15 минут + выписать докладную на лишение 100% премии работнику.и сколько машин было в сети? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 09:01 |
|
|
start [/forum/topic.php?fid=60&msg=37930965&tid=2157461]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 174ms |
0 / 0 |