Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизПоделитесь примером использования функции Найти похожие ветки
← →
Knight (2003-12-17 11:21) [0]AdjustTokenPrivileges
Хочу в прогу, до кучи, вставить синхронизацию времени на компах, но для установки системного времени требуются соответствующие права.
← →
Fredericco (2003-12-17 11:25) [1]
procedure TForm1.RebootS;
var
hToken : THandle;
tkp,PrevState : _TOKEN_PRIVILEGES;
k : Cardinal;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(PrevState), PrevState, k);
ExitWindowsEx(6, 0)
end;
← →
Knight (2003-12-17 12:51) [2]>> Fredericco © (17.12.03 11:25) [1]
Чё-то я не допонял... это что же получается, что на любом компе можно установить любые права, без запроса? %(
И где взять lpName, типа "SeShutdownPrivilege", но для установки системного времени? Хэлп ссылается на константы winnt.h которого у меня нет.
← →
Fredericco (2003-12-17 16:02) [3]
> Чё-то я не допонял... это что же получается, что на любом
> компе можно установить любые права, без запроса
Нет.
> И где взять lpName, типа "SeShutdownPrivilege"
Фиг знает, я все это в инете нарыл.
← →
Knight (2003-12-17 22:25) [4]Во... дома в Вижле нашёл (хотя думал, что я его снёс, на он мне без MSDN нужен, только бельшой вин его и спас... затерялся :) ... может кому пригодится :)
#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
#define SE_TCB_NAME TEXT("SeTcbPrivilege")
#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
← →
Ломброзо (2003-12-17 22:32) [5]В доменах NT системное время на рабочих станциях синхронизируется со временем контроллера домена.
← →
Knight (2003-12-17 22:49) [6]>> Ломброзо © (17.12.03 22:32) [5]
У меня домена нет... вот книгу халявную найду, по настройке Win2k Server... тогда поглядим, а пока ручками приходится, только вот при смене времени, почему-то винда на это никак не реагирует, а обновляет свой будильник в трее, только при очередной смене минут... как сделать, чтоб она сразу реагировала? Пробовал перекрывать трей окном, но перерисовывает старое время, т.е. посыл месаги на обновление наверно не поиожет...
← →
Knight (2003-12-18 12:51) [7]Кто знает, как сказать виндам, что надо время, отображаемое в трее, обновить?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c