|
Сервис от имени user. Проверка/установка политики-права "Вход в качестве службы"
|
|||
---|---|---|---|
#18+
Установили службу. Худо-бедно разобрались как запускать ее от имени конкретного пользователя. Вот этот код я приводил: Запуск службы "с учетной записью пользователя". Код: vbnet 1. 2. 3.
Но кой-чего существенное я таки упустил. А именно, если следовать gpedit.exe Политика "Локальный компьютер" -> Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя -> Вход в качестве службы Пользователь для которого устанавливается служба должен там присутствовать. (иначе грош цена моему коду, если права нет). К слову оснастка mmc "Службы" эту задачу также решает (ну надо думать от имени админа). Плюс gpedit.exe еще и не на всех системах есть На своем рабочем Home Win 10 я вообще не знаю как это хотяб проверить не методом тыка (тык это мой код по ссылке выше, юзера назначил а не работает). Т.е. формулируем вопросы: ================== 1) Как мне хотя б ручками проверить имеет ли заданный юзер (напр. текущий D\Dmitry) право "Вход в качестве службы"? (через реестр, cmd, через штатные инструменты). Если нету gpedit.msc и без установки сторонних/левых tools (в том числе неположенной на ЭТОЙ системе gpedit). 2) Как мне проверить наличие указанного права программно? 3) Ну и наконец главное: как программно задать право "Вход в качестве службы" для заданного юзера? (ну будем считать что по крайней мере пункт 3 выполняется "As Admin", а у админа право сделать это действо надо думать есть) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2017, 21:41 |
|
Сервис от имени user. Проверка/установка политики-права "Вход в качестве службы"
|
|||
---|---|---|---|
#18+
Ну, в принципе направление движения примерно понял. Easiest way to grant “Log on as a service” to a Windows user from the command-line? Здесь совет такой: Windows Server 2003 Resource Kit Tools Утилита ntrights.exe (ее можно тупо вырвать из пакета и перенести на любую Win10 и т.п.) Добавить права: Код: vbnet 1. 2.
Отобрать права: Код: vbnet 1. 2.
Проверил на десятке x64 - все работает. Проверил на XP - все работает, делает ровно то что можно сделать ручками в "политиках" через gpedit.msc. Правда, не дает ответ на вопрос, есть ли эти права, но в принципе и не обязательно, достаточно "успешно добавить". Как простейший вариант, можно эту утилиту просто стибрить к себе в прогу. Ну а если делать хорошо (API-простыня), то видимо копать сюда: How To Manage User Privileges Programmatically in Windows NT LSA Functions - Privileges and Impersonation ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2017, 00:05 |
|
Сервис от имени user. Проверка/установка политики-права "Вход в качестве службы"
|
|||
---|---|---|---|
#18+
Дмитрий77Ну а если делать хорошо Как-то так получилось Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Код: 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. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100.
Код: 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. 56. 57. 58. 59. 60. 61. 62. 63.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2017, 04:40 |
|
|
start [/forum/topic.php?fid=20&fpage=37&tid=1399630]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 137ms |
0 / 0 |