Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Vzdálené vypnutí-nastavení WinXP

Program je prajednoduchý:

function ShutDown (const Computer, Msg: string; const Time: Word; const Force, Reboot: Boolean): Boolean;
var rl: Cardinal; hToken: Cardinal; tkp: TOKEN_PRIVILEGES;
begin
	if not OpenProcessToken (GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
		ShowMessage ('Nejde otevřít Token procesu.')
	else begin
		if LookupPrivilegeValue (nil, 'SeShutdownPrivilege', tkp.Privileges [0].Luid) then begin
			tkp.Privileges [0].Attributes	:= SE_PRIVILEGE_ENABLED;
			tkp.PrivilegeCount		:= 1;
			AdjustTokenPrivileges (hToken, False, tkp, 0, nil, rl);
			if GetLastError () <> ERROR_SUCCESS then ShowMessage ('Nepodařilo se nastavit privilegia.') end
		else begin
			ShowMessage('Nenalezana privilegia k ShutDown.');
		end
	end;

	Result	:= InitiateSystemShutdown (PChar (Computer), PChar(Msg), Time, Force, Reboot);
end;
Admin práva jsou, jestliže jsi přihlášen jako Administrator nebo člen skupiny Administrators. Kdybys na vzdálené vypnutí počítače neměl právo, bude program řvát jinak (Nenalezana privilegia k ShutDown). Zde selhala přímo funkce na vzdálené vypnutí InitiateSystemShutdown. Možné příčiny: Neznámé jméno počítače nebo neběží nějaká služba - můžou to být: Oznamování systémových událostí, Správce vzdáleného přístupu, Systém událostí modelu COM+, Terminálová služba a Vzdálené volání procedur (RPC).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny