|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
Как узнать SID процесса, для того чтобы понять системный процесс или нет и от имени какого пользователя он запущен27.12.2021, 16:15. Показов 3361. Ответов 25
Метки нет (Все метки)
The Trick рекомендовал функцию WinStationGetProcessSid. Я не нашёл её описания даже в MSDN.
Попытался объявить её сам:
Добавлено через 2 часа 36 минут Итак, поработав пару часов, я выяснил следующее: 1. Как использовать именно эту функцию WinStationGetProcessSid я понятия не имею вообще, она недокументированная, в примерах, что иногда проскакивают на просторах Интернета, там в этой функции 5 параметров, а чтобы функция успешно экспортировалась надо 6 параметров. Это удивляет, вообще не понимаю как ей пользоваться. Решил от неё отрешиться поэтому. 2. Получить SID процесса можно с помощью GetTokenInformation. Я уже нашёл способ, переделывая чужие примеры, но не получается получить SID процессов для LOCAL SERVICE и NETWORK SERVICE, только для SYSTEM и USER 3. Нашёл абсолютно замечательный пример в Интернете где получается список процессов и список SID'ов с помощью функции WTSEnumerateProcesses. Там с привилегиями можно получить SID'ы для абсолютно всех процессов, я не знаю можно ли прикреплять ссылки на этом форуме, но вот тут я нашёл супер код этот: https://forum.sources.ru/index... ew=showall
0
|
||||||
| 27.12.2021, 16:15 | |
|
Ответы с готовыми решениями:
25
От имени какого пользователя запущен процесс
|
|
Модератор
|
||||
| 28.12.2021, 12:29 | ||||
|
0
|
||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||
| 28.12.2021, 15:49 [ТС] | |||||||||
|
Добавлено через 50 минут Пробую ещё раз. Передаю в объявлении структуру FILETIME как и изначально делал (чем не 64 бита) и всё равно не хочет работать, попробуйте сами:
Точно так же не хочет работать и ProcessStartTime As Currency и даже если pProcessUserSid As Currency тоже не хочет. Добавлено через 6 минут
0
|
|||||||||
|
Модератор
|
||||
| 28.12.2021, 15:53 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 28.12.2021, 15:54 [ТС] | ||
|
Я правильно понимаю логику работы функции? Ей передаются два параметра PID и FILETIME интересуемого процесса!? И она определяет SID по этим двум параметрам.
Добавлено через 57 секунд
0
|
||
|
Модератор
|
|||
| 28.12.2021, 15:59 | |||
|
Добавлено через 49 секунд
0
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||
| 28.12.2021, 16:08 [ТС] | |||||||
|
Добавлено через 2 минуты Вот такое объявление функции прошло на ура
0
|
|||||||
|
Модератор
|
|||
| 28.12.2021, 16:13 | |||
|
0
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 28.12.2021, 16:32 [ТС] | ||||||
|
Вот правильный код который получает SID но в байтовом массиве
0
|
||||||
|
Модератор
|
||
| 28.12.2021, 16:46 | ||
|
0
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 28.12.2021, 17:49 [ТС] | ||||||
|
Кстати я разобрался с GetTokenInformation. Написал функцию которая определяет имя пользователя процесса, через полученный SID.
Я там писал, что только с привилегиями у меня работало. Теперь и без, почти все процессы определяет. Главное было поменять PROCESS_ALL_ACCESS на PROCESS_QUERY_LIMITED_INFORMATION.
0
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 28.12.2021, 21:51 [ТС] | |
|
А почему нельзя объявлять As Any в своих пользовательских функциях (меня это сильно удивило)
Добавлено через 2 минуты А WinStationGetProcessSid это не оболочка функции GetTockenInformation??? Я ещё так и не закончил с этой функцией кстати...
0
|
|
|
Модератор
|
|||
| 28.12.2021, 22:09 | |||
|
0
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 29.12.2021, 00:30 [ТС] | ||
|
0
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||
| 29.12.2021, 01:27 [ТС] | |||||||
|
Если бы NtQuerySystemInformation ещё бы и SID'ы выковыривал... Добавлено через 11 минут Я доделал наконец-таки свой пример для этой функции, там всего лишь надо было передать в качестве сида указатель на байтовый массив. Единственное что волнует это возвращаемое значение функции WinStationGetProcessSid всё время разное у меня. А что должно возвращаться для проверок Boolean? У меня всё время разные числа, то положительные, то отрицательные, не понимаю.
Добавлено через 2 минуты Dim lpSid As Long забыл объявить там добавить надо, но у меня итак сработало само почему-то объявление этой переменной
0
|
|||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||
| 29.12.2021, 22:49 [ТС] | |||||||
|
Улучшения в новой версии моей функции: 1. В зависимости от того XP или нет выставляется PROCESS_QUERY_INFORMATION либо PROCESS_QUERY_LIMITED_INFORMATION для семёрки. 2. Используется уникодная функция LookupAccountSidW на случай если у кого-то будут китайские имена пользователей например. 3. Используется функция GetMem4 вместо старой CopyMemory для убыстрения копирования памяти в 4 байта (хотя на современных компьютерах мы не почувствуем разницы в скорости, но тем ни менее).
1
|
|||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 30.12.2021, 13:41 [ТС] | |
|
The trick, The trick, так почему WinStationGetProcessSid возвращает всё время разные числа? просто интересно, хотя я ей уже решил и не пользоваться
0
|
|
|
Модератор
|
||||||
| 30.12.2021, 14:03 | ||||||
|
HackerVlad,
хотя нет, там BOOLEAN. Для VB6 юзай Byte.
0
|
||||||
| 30.12.2021, 14:03 | |
|
Помогаю со студенческими работами здесь
20
Узнать системный процесс или нет Процесс svchost.exe запущен от имени пользователя Как узнать запущен ли процесс или программа?
Как при закрытие какого либо процесса узнать процесс который его убил Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|