Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать "запуск от имени" ? WIN NT/XP 
:(
    Опции темы
Алёна
Дата 7.10.2002, 17:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужно установить время на WinXP , но нет прав на это :-(
(закрыт админом  в целях защиты ...)
Но часы нужно хотя бы периодически синхронизировать с точными...

В XP есть возможность сделать "запуск от имени" ...
Хотелось бы чтобы в моей программе, которая забирает время с хоста ,
всё-таки работала функция установки времени SetSystemTime,  пароль и имя пользователя с правами админа  компьютера известен.
Как теперь их использовать , да ещё хотелось бы чтобы аудентификация проходила автоматически , без вопросов введите пароль...
Понятно , что легче открыть права на установку, но нельзя .

Буду очень рада ответу...
  Вверх
Baa
Дата 7.10.2002, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



BOOL CreateProcessAsUser(

   HANDLE hToken, // handle to a token that represents a logged-on user
   LPCTSTR lpApplicationName, // pointer to name of executable module
   LPTSTR lpCommandLine, // pointer to command line string
   LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
   LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
   BOOL bInheritHandles, // new process inherits handles
   DWORD dwCreationFlags, // creation flags
   LPVOID lpEnvironment, // pointer to new environment block
   LPCTSTR lpCurrentDirectory, // pointer to current directory name
   LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
   LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION  
  );


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Алёна
Дата 9.10.2002, 02:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет Ваа!
А что теперь делать с CreateProcessAsUser, там ведь нужно
перед ней использовать LogonUser?
(может немного примера, ну пожа-а-а-луйста!!)
  Вверх
Baa
Дата 9.10.2002, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



А вот придется тебя огорчить :) Не поможет тебе это..
http://www.delphi.xonix.ru/article/?id=logonuser

Придется тебе писать свой сервис :)


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
dim
Дата 10.10.2002, 22:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вообще-то данная проблема свойственна только W2K/NT, а в XP должно работать потому что LogonUser уже не требует SE_TCB_NAME привелегии. Насколько я понял речь идет об XP - значит проблем не должно быть.
  Вверх
Алёна
Дата 11.10.2002, 00:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Странно, тогда если в XP  нет SE_TCB_NAME почему тогда  результат кода ниже есть "Клиент не обладает требуемыми правами" ????????

ДА, на остальные мои  изменения типа подстановки в код несуществуюшего пользователя и несуществ. имени запускаемой программы этот код реагирует правильно "Вход в систему не произведён ,имя пользователя не опознаны" и
"не удаётся найти указанный файл" соответственно...
Запускаемая программа лежит в текущей директории и копия  в Винде , на всяк случай :-)

Где-то близка к результату , а в чём дело не разберу...


int argc;
 char **argv;
HANDLE hToken = NULL;
BOOL ok = FALSE;
char *user;
char *domain;
char *password;
STARTUPINFO startup_info;
PROCESS_INFORMATION proc_info;
LPTSTR lpCmd = NULL;
char lpSystemDir[MAX_PATH];

              user = "test" ;
            password ="test";
//              domain =0;
              domain =".";
ok = LogonUser(
      user,
  domain,
    password,
  LOGON32_LOGON_INTERACTIVE,
    LOGON32_PROVIDER_DEFAULT,
                                &hToken
);

if (ok == FALSE)
goto finish2;

ZeroMemory(&startup_info,sizeof(STARTUPINFO));

startup_info.cb = sizeof(STARTUPINFO);

startup_info.wShowWindow = SW_SHOW;

startup_info.dwFlags = STARTF_USESTDHANDLES;

  startup_info.lpDesktop = (LPTSTR) "Winsta0\\Default";


               lpCmd = "calc.exe" ;


ok = CreateProcessAsUser(
hToken,
      NULL,
                                      lpCmd,
                                      NULL,
NULL,
TRUE,
      0,

NULL,
NULL,
&startup_info,
&proc_info);

if (ok == TRUE)
{
CloseHandle(proc_info.hThread);
CloseHandle(proc_info.hProcess);
}

finish2:
if (ok == FALSE)
{
LPTSTR lpMsgBuf;
DWORD cnBytes;

cnBytes = FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_MAX_WIDTH_MASK,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR)&lpMsgBuf,
0,
NULL
);

if (cnBytes > 0)
{
MessageBox(NULL, lpMsgBuf, "SECBUG", MB_OK);
LocalFree(lpMsgBuf);
}
}

if (lpCmd != NULL)
LocalFree(lpCmd);

if (hToken != NULL)
CloseHandle(hToken);
  Вверх
dim
Дата 11.10.2002, 03:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Sorry, тогда я погарячился - просто не юзал WinXP. Скорее всего не остается ничего другого как использовать service.
  Вверх
Baa
Дата 11.10.2002, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Кстати, домен надо указывать не точку, а NULL
У меня не ХР... помочь ничем не могу...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.