|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
Собственно алгоритм: получаем WellKnownSid, из него читабельное имя группы. Оно не очевидно, т.е. Administrators на русской системе будет "Администраторы". API-решение есть Код: 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. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148.
Код: vbnet 1. 2. 3. 4.
Вывод: Код: vbnet 1. 2. 3. 4.
Но хочется получить то же самое через .Net У меня получилось высечь только слово "Все": Код: vbnet 1. 2.
Соответствует SECURITY_WORLD_SID_AUTHORITY+SECURITY_WORLD_RID Для Администраторы и Пользователи по логике надо сгенерировать WellKnownSidType.AccountDomainAdminsSid WellKnownSidType.AccountDomainUsersSid но у меня нет идей что лепить во второй параметр. Администраторы: SECURITY_NT_AUTHORITY+SECURITY_BUILTIN_DOMAIN_RID+DOMAIN_ALIAS_RID_ADMINS Пользователи:SECURITY_NT_AUTHORITY+SECURITY_BUILTIN_DOMAIN_RID+DOMAIN_ALIAS_RID_USERS Ну и не знаю как бодаться с "СИСТЕМА": Соответствует SECURITY_NT_AUTHORITY+SECURITY_LOCAL_SYSTEM_RID Поможете? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:06 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:15 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
МСУ, но ваш код Код: vbnet 1. 2. 3. 4. 5. 6. 7.
он же ошибается через раз, и он не прокатывает именно для AccountDomainAdminsSid и AccountDomainUsersSid, потому что там второй параметр не нуль, а хз что если на .Net - языке. В принципе мне нужно то думаю вот это: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Смущает некоторое несоответствие с API-вариантом, но подозреваю что там не совсем правильно. Т.е. эти алиасы нужны не для красного словца а для проверки/назначения прав в DACL - таблицах. И подозреваю что именно эти алиасы как раз правильные, а не DOMAIN_GROUP_RID_ADMINS/DOMAIN_ALIAS_RID_USERS И по идее, начал счас копаться, sid-а в принципе достаточно чтобы вычленить правильную DACL запись из набора rules (и sid как раз не имеет языковой подоплеки). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 15:05 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
Дмитрий77он же ошибается через раз, и он не прокатывает именно для AccountDomainAdminsSid и AccountDomainUsersSid, потому что там второй параметр не нуль, а хз что если на .Net - языке. Ну он не может, значит, транслировать это. Дмитрий77Вывод: NT AUTHORITY\СИСТЕМА Все BUILTIN\Администраторы BUILTIN\Пользователи Ну так это и требовалось. Разве не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 18:55 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
МСУ, Ну наверно правильно. Хотя API (под спойлером в первом посте) выводят без приставок BUILTIN\ и NT AUTHORITY\, но они и берут не совсем из того места. Ты если в этой кухне разбираешься, сюда 17059241 не глянешь? Хоть убей, не могу владельца через .Net сменить. Ветка реестра хитрая, у администратора нет прав на ее изменение, ему надо эти права дать - для этого сначала назначить его владельцем. Что не так делаю? И можно ли там без API вообще обойтись. По логике описания .Net класса можно, но он с RegistryRights.TakeOwnership по дефолту даже ветку открыть не дает. Близок уже к тому чтоб эту всю кухню на чистых API оставить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 19:29 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
Дмитрий77Ты если в этой кухне разбираешься, сюда 17059241 не глянешь? Тема углублённая, с ходу так что-то посоветовать сложно. Нужно поднимать тестовую среду, отлаживать код, искать варианты, разбираться более глубоко. А разбираться в таком, находясь в отпуске, у меня нет особого желания, уж прости :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 19:37 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
МСУ, ну нет так нет. Но у меня возникло ощущение, что .Net не умеет сменить владельца если нет общих прав на запись ветки. И привелегию SE_TAKE_OWNERSHIP_NAME на hToken процесса .Net не может установить. Я его попытался "подпихнуть" через API, но бесполезно. Мне то надо только поменять только OWNER_SECURITY_INFORMATION, а А SetAccessControl по ходу всю таблицу DACL-ов пытается переписать, а прав на это нету. И сдается мне надо здесь забить на .Net реализацию и импортировать API-шный отлпаженный код, причем полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:01 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
Дмитрий77, ну если апи работают, забей на .net, не критично. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:24 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
МСУДмитрий77, ну если апи работают, забей на .net, не критично. НЕ попадайся на удочку, вступая в дискуссию с этим саморефлексирующим типом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:31 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
hVostt, конкретнее по теме ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:31 |
|
Получить имена стандартных групп пользователей:Администраторы, Все, СИСТЕМА, Пользователи
|
|||
---|---|---|---|
#18+
Ага, соседняя ветка? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:32 |
|
|
start [/forum/topic.php?fid=20&msg=38843543&tid=1402073]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 356ms |
total: | 495ms |
0 / 0 |