Помогите с кодом на С.
Нужно зная имя и пароль администратора получить список процессов на удаленном компе под Win200/XP. А также возможность запускать процессы на удаленной машине.
Если у кого то есть исходник, буду благодарен. Или хотя бы функции, которые копать. Но первое желательней.
Здравствуйте, demiurgos, Вы писали:
D>Помогите с кодом на С. D>Нужно зная имя и пароль администратора получить список процессов на удаленном компе под Win200/XP. А также возможность запускать процессы на удаленной машине.
D>Если у кого то есть исходник, буду благодарен. Или хотя бы функции, которые копать. Но первое желательней.
Здравствуйте, TarasCo, Вы писали:
TC>Здравствуйте, demiurgos, Вы писали:
D>>Помогите с кодом на С. D>>Нужно зная имя и пароль администратора получить список процессов на удаленном компе под Win200/XP. А также возможность запускать процессы на удаленной машине.
D>>Если у кого то есть исходник, буду благодарен. Или хотя бы функции, которые копать. Но первое желательней.
TC>Получение списка процессов: TC>http://borland.xportal.ru/forum/viewtopic.php?t=12828&start=4
три раза КУ......
только вот бы еще что..... как бы при соединении к удаленной машине непосредственно указывать имя и пароль администратора, а не брать текущий ???
Здравствуйте, demiurgos, Вы писали:
D>Здравствуйте, TarasCo, Вы писали:
TC>>Здравствуйте, demiurgos, Вы писали:
D>>>Помогите с кодом на С. D>>>Нужно зная имя и пароль администратора получить список процессов на удаленном компе под Win200/XP. А также возможность запускать процессы на удаленной машине.
D>>>Если у кого то есть исходник, буду благодарен. Или хотя бы функции, которые копать. Но первое желательней.
TC>>Получение списка процессов: TC>>http://borland.xportal.ru/forum/viewtopic.php?t=12828&start=4
D>три раза КУ......
D>только вот бы еще что..... как бы при соединении к удаленной машине непосредственно указывать имя и пароль администратора, а не брать текущий ???
1)
Можно сделать имперсонализацию текущего потока:
LogonUser
ImpersonateLoggedOnUser
Но для этого нужны высокие привелегии ( нужно иметь привелегию SE_TCB_NAME )
2)
Возможно, может помочь ф. WNetAddConnection3. Она вообще то нужна при доступе к шарам. Но суть примерно таже — обеспечить доступ к файлам от имени пользователя.
Здравствуйте, demiurgos, Вы писали:
D>Пароль налел как вводить... только вот проблема: к 2003 без проблем коннектится, а XP не хочет.... D>Не подскажете...
на sysinternals есть пакет psutils. Кажется, там есть и исходные тексты — работает именно так, как надо. Даже если там нет исходников, то можно посмотреть дизассемблером — код качественный, плотный и легоразбираемый.
Здравствуйте, TarasCo, Вы писали:
D>>только вот бы еще что..... как бы при соединении к удаленной машине непосредственно указывать имя и пароль администратора, а не брать текущий ???
TC>1) TC>Можно сделать имперсонализацию текущего потока: TC>LogonUser TC>ImpersonateLoggedOnUser TC>Но для этого нужны высокие привелегии ( нужно иметь привелегию SE_TCB_NAME )
TC>2) TC>Возможно, может помочь ф. WNetAddConnection3. Она вообще то нужна при доступе к шарам. Но суть примерно таже — обеспечить доступ к файлам от имени пользователя.
WNetConnection работает с Win 2003. А вот с xp не получается что-то. А с LogonUser или ImpersonateLoggedOnUser что то никак разобраться не могу... если есть пример использования этих ф. киньте плиз. А то сроки поджимают, курсач уж сдавать пора. 2 ночи осталось Сэнкю за внимание
D>WNetConnection работает с Win 2003. А вот с xp не получается что-то. А с LogonUser или ImpersonateLoggedOnUser что то никак разобраться не могу... если есть пример использования этих ф. киньте плиз. А то сроки поджимают, курсач уж сдавать пора. 2 ночи осталось Сэнкю за внимание
на делфи недавно писал
if LogonUser(
pAnsiChar(user),
pAnsiChar(domain),
pAnsiChar(passwd),
LOGON32_LOGON_BATCH , //LOGON32_LOGON_INTERACTIVE ,
LOGON32_PROVIDER_DEFAULT,
hUser )
then
begin
if ImpersonateLoggedOnUser( hUser ) then
begin
log('logged in as '+user);
if not RevertToSelf() then
err('can not RevertToSelf()');
end
else
begin
err('Can not ImpersonateLoggedOnUser '+inttostr(GetLAstError()));
end;
end
else
begin
err('Can not login as '+user+' '+inttostr(GetLAstError()));
end;