Перейти к содержанию

Запуск процессов из под службы


Рекомендуемые сообщения

Помогите пожалуйста!

 

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

Сейчас активно идет внедрение в далеких от Москвы городах и поэтому данные у меня не полные, но так как они массовые думаю что вы мне сможете помочь

 

1) Речь идет о Windows XP

2) У меня есть небольшой сервис (запущенный под систем эккаунтом), который является пускачем другой программы (запускает эту программу в сессии пользователя, но под System эккаунтом) которая в свою очередь является UI частью программы.

3) По всей видимости если на компьютерах стоит антивирус касперского (по крайней мере версия 5.0) происходит такое чудо, что пускач не может пускануть эту программу (коды ошибок к сожалению не могу дать, в логах системных ничего нет).

4) всякие доверенные программы и так далее не помогают.

5) Я обратил внимание, что даже другие сервисы, которые должны быть запущены под SYSTEM эккаунтом вроде как под ним и не запущены, по крайней мере в диспетчере задач имя пользователя у них пустое

6) данный способ работает уже много где и под Windows XP и под Windows Vista и под Windows 7 и с антивирусами других производителей, но ничего похожего нет.

 

Что делать? ААА :acute: жду... спасибо.

 

п.с. поподробнее здесь приведу код, который запускает процесс тут инвоки Win32 апишных функций

 

public static int? CurrentSessionID()

{

int dwSessionId = 0;

IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;

IntPtr pSessionInfo = IntPtr.Zero;

int dwCount = 0;

 

WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, ref pSessionInfo, ref dwCount);

 

Int32 dataSize = Marshal.SizeOf(typeof(WTS_SESSION_INFO));

 

Int32 current = (int)pSessionInfo;

for (int i = 0; i < dwCount; i++)

{

WTS_SESSION_INFO si = (WTS_SESSION_INFO)Marshal.PtrToStructure((System.IntPtr)current, typeof(WTS_SESSION_INFO));

if (WTS_CONNECTSTATE_CLASS.WTSActive == si.State)

return si.SessionID;

 

current += dataSize;

}

return null;

}

 

 

 

public static bool StartProcessAndBypassUAC(String applicationName, out PROCESS_INFORMATION procInfo)

{

uint winlogonPid = 0;

IntPtr hUserTokenDup = IntPtr.Zero, hPToken = IntPtr.Zero, hProcess = IntPtr.Zero;

procInfo = new PROCESS_INFORMATION();

 

var sss = CurrentSessionID();

if (sss == null)

return false;

int dwSessionId = sss.Value;

 

Process[] processes = Process.GetProcessesByName("winlogon");

foreach (Process p in processes)

{

if ((uint)p.SessionId == dwSessionId)

{

winlogonPid = (uint)p.Id;

}

}

 

hProcess = OpenProcess(MAXIMUM_ALLOWED, false, winlogonPid);

 

if (!OpenProcessToken(hProcess, TOKEN_DUPLICATE, ref hPToken))

{

CloseHandle(hProcess);

return false;

}

 

SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();

sa.Length = Marshal.SizeOf(sa);

 

if (!DuplicateTokenEx(hPToken, MAXIMUM_ALLOWED, ref sa, (int)SECURITY_IMPERSONATION_LEVEL.SecurityIdentification, (int)TOKEN_TYPE.TokenPrimary, ref hUserTokenDup))

{

CloseHandle(hProcess);

CloseHandle(hPToken);

return false;

}

 

STARTUPINFO si = new STARTUPINFO();

si.cb = (int)Marshal.SizeOf(si);

si.lpDesktop = @"winsta0\default";

 

int dwCreationFlags = NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE;

 

bool result = CreateProcessAsUser(hUserTokenDup, // client's access token

null, // file to execute

applicationName, // command line

ref sa, // pointer to process SECURITY_ATTRIBUTES

ref sa, // pointer to thread SECURITY_ATTRIBUTES

false, // handles are not inheritable

dwCreationFlags, // creation flags

IntPtr.Zero, // pointer to new environment block

null, // name of current directory

ref si, // pointer to STARTUPINFO structure

out procInfo // receives information about new process

);

 

CloseHandle(hProcess);

CloseHandle(hPToken);

CloseHandle(hUserTokenDup);

 

return result; }

Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

Добро пожаловать на форум!

 

Если проблемы с версией антивируса 5.0, дальше говорить смысла нет. Она уже давно не поддерживается (и, по идее, даже работать должна с трудом :acute:), даже корпоративная.

Ссылка на сообщение
Поделиться на другие сайты
Здравствуйте!

Добро пожаловать на форум!

 

Если проблемы с версией антивируса 5.0, дальше говорить смысла нет. Она уже давно не поддерживается (и, по идее, даже работать должна с трудом :)), даже корпоративная.

 

то есть вы хотите сказать, что если лицензия куплена до августа 2010 года, то продукт не поддерживается? :acute:

 

:ninja:

Ссылка на сообщение
Поделиться на другие сайты
Нет. Есть таблица поддержки продуктов: http://support.kaspersky.ru/support/support_table

 

ну на самом деле с современными версиями этот трюк не проходит, так что может дело не только в версии касперского. То есть на помощь мне не сильно надеяться?

Ссылка на сообщение
Поделиться на другие сайты
Давайте так

 

Что говорит по этому поводу КИС2010?

 

мне к сожалению говорит не КАВ и не КИС, мне говорят по телефону разъяренные пользователи :acute:

 

1) мне вот не понятно вот что, я говорю службе запускаться из под эккаунта администратора

2) запускаю службу

3) в диспетчере задач не вижу чтобы процесс службы запускался под тем эккаунтом который я указал, имя пользователя пустое

 

сейчас у меня к сожалению под рукой только удаленный стол к месту где стоит 5.0

Ссылка на сообщение
Поделиться на другие сайты

Поставьте себе на комп триалку КИС2010 и проверьте

 

Ваше же программа , а не пользователей.

 

 

3) в диспетчере задач не вижу чтобы процесс службы запускался под тем эккаунтом который я указал, имя пользователя пустое

Можно увидеть скриншот?

Ссылка на сообщение
Поделиться на другие сайты

Такое бывает и без этой программы.

 

Как лечится уже не помню

Но это не связано с антивирусом.

Ссылка на сообщение
Поделиться на другие сайты

поставил кис на свежую машину XP

вижу такой же скриншот про эккаунты.... но служба смогла запустить процесс и всё работает как надо (это хорошо) :acute:

 

дистрибутив

kis9.0.0.736ru.exe

Ссылка на сообщение
Поделиться на другие сайты
мне к сожалению говорит не КАВ и не КИС, мне говорят по телефону разъяренные пользователи :acute:

 

здесь дело обстоит так:

 

Если какое то приложение переходит в разряд неподдерживаемых, то заведомо к этому сроку лицензий с оставшимся сроком действия остаться уже не должно. Именно для того, чтобы не звонили разъяренные пользователи. Т.е. скорее всего у вас лицензия на более свежую корпоративную версию, но она по каким то причинам используется с более старой 5.0. После (а на самом деле как я уже написал - гораздо заранее ) перевода приложения в разряд неподдерживаемых все активности с ней связанные (не только исправления ошибок, но и продажа ключей) полностью прекращаются. Вы и ваши пользователи имеют право перейти бесплатно на более новые версии приложений, если имеется соотв. действующая лицензия.

Ссылка на сообщение
Поделиться на другие сайты
здесь дело обстоит так:

 

Если какое то приложение переходит в разряд неподдерживаемых, то заведомо к этому сроку лицензий с оставшимся сроком действия остаться уже не должно. Именно для того, чтобы не звонили разъяренные пользователи. Т.е. скорее всего у вас лицензия на более свежую корпоративную версию, но она по каким то причинам используется с более старой 5.0. После (а на самом деле как я уже написал - гораздо заранее ) перевода приложения в разряд неподдерживаемых все активности с ней связанные (не только исправления ошибок, но и продажа ключей) полностью прекращаются. Вы и ваши пользователи имеют право перейти бесплатно на более новые версии приложений, если имеется соотв. действующая лицензия.

 

за информацию спасибо, но к сожалению замена версии антивируса в учреждении не входит в нашу компетенцию, наши люди в учреждении устанавливают оборудование и софт.

Ссылка на сообщение
Поделиться на другие сайты

А там точно стоит корпоративная 5ка?

тогда надо тренироваться на корпоративной 6 (6.0.3.837 или 6.0.4.14хх)

 

Да, кстати - какой мощности компы там? Если известно

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...