Как перезагрузить НТ ??
практически всё переписывал из мсдн на сайте мелко-мягких
token_handle dd 0
mashine_process_handle dd 0
token_privileges dd 1 ;privilege count
luid dd 0 ;luid lo
dd 0 ;luid hi
attributez dd SE_PRIVILEGE_ENABLED
token db 'SeShutdownPrivilege',0
TOKEN_QUERY equ 8
TOKEN_ADJUST_PRIVILEGES equ 20h
SE_PRIVILEGE_ENABLED equ 2
EWX_REBOOT equ 2
EWX_SHUTDOWN equ 1
EWX_FORCE equ 4
start
call GetCurrentProcess ; установка привилегий на ребут
mov mashine_process_handle,eax
push offset token_handle
push TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY
push mashine_process_handle
call OpenProcessToken
or eax,eax
mov token_flag,eax
jz short mashine_nt ; если не НТ то привилегии пофиг
push offset luid
push offset token ; собсно установка привилегий
push offset system
call LookupPrivilegeValueA
push 0
push 0
push 0
push offset token_privileges
push 0
push token_handle
call AdjustTokenPrivileges <--- вот тут ошибка ERROR_NOACCESS и следовательно ExitWindowsEx посылает к билу гейтсу
push 0FFFFh
push EWX_FORCE or EWX_REBOOT or EWX_SHUTDOWN
call ExitWindowsEx
or eax,eax
jz short mashine_no_reboot
push 0
call ExitProcess
пробовал на win 2000 на разных машинах
срабатывает только если запускать этот код через телнет
[ Это Сообщение было отредактировано ukms[z] в 2002-09-19 1935 ]