Eteindre pc a distance

Soyez le premier à donner votre avis sur cette source.

Vue 79 538 fois - Téléchargée 8 351 fois

Description

Petite application pour montrer les API "InitiateSystemShutdown" et "AbortSystemShutdown"

Permet d'eteindre ou redémarrer un PC à distance, en affichant un message au client et ceci avec un delai d'attente en secondes.

PS : Ce programme n'est aucunement un cours de piratage ou un truc dans le genre pour faire chier le monde, c'est au contraire une API assez interessant pour faire des applications d'administration.

De toute façon :
- Son etendu est limité à un reseau local
- Et il faut avoir des droits sur la machine distante pour la redemarrer ou l'arretter, (evidemment).

Source / Exemple :


{

  • WinShut v1.2 *
  • Extinction de PC à distance *
  • LEVEUGLE Damien (c) 2005 *
  • elguevel@free.fr *
} unit shutdown; interface uses Windows, StdCtrls; procedure Eteindre( Machine : string; Texte : string; Force : Boolean; Reboot : Boolean; CountDown : Integer ); procedure Annuler ( Machine : string ); procedure AjustePrivileges( Machine : string ); implementation const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; var hToken: THandle; { Lance l'extinction de la machine } procedure Eteindre( Machine : string; Texte : string; Force : Boolean; Reboot : Boolean; CountDown : Integer ); begin try AjustePrivileges( Machine ); finally InitiateSystemShutdown( PChar( Machine ), PChar( Texte ), CountDown, Force, Reboot ); CloseHandle( hToken ); end; end; { Annule l'extinction de la machine } procedure Annuler( Machine: string ); begin try AjustePrivileges( Machine ); finally AbortSystemShutdown( PChar( Machine ) ); CloseHandle( hToken ); end; end; { Ajuste les privilège de la machine pour pouvoir l'eteindre } {
      • ATTENTION : Cette procedure est necessaire, mais ne vous permet
pas de vous passer de droits suffisants sur le reseau pour pouvoir eteindre la machine distante. } procedure AjustePrivileges( Machine : string ); var hProc : THandle; TP : TTokenPrivileges; PrevToken : TTokenPrivileges; PSsize : DWORD; begin hProc := GetCurrentProcess; OpenProcessToken( hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken ); TP.PrivilegeCount := 1; LookupPrivilegeValue( PChar(Machine), SE_SHUTDOWN_NAME, TP.Privileges[0].Luid ); TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken, False, TP, SizeOf(TP), PrevToken, PSsize ); end; end.

Conclusion :


Si celà ne marche pas (a part sur le localhost) c'est que vous n'avez pas les droits suffisants pour faire une tel manipulation sur le reseau, soit certains services ne sont pas démarré.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
La source est disponible ici, normalement y'a plus qu'à compiler.

Sinon il suffit simplement d'aller à la racine du site cité ci-dessus si on est un peu débrouillard et suivre les liens.

Mais je ne devrais normalement pas faire la promotion de (mes) logiciels ou fournir des exe. Le site est normalement prévu pour échanger des "Codes Sources". Si vous voulez des logiciels allez plutôt directement sur des sites de téléchargements.
Messages postés
42
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
23 juillet 2011

salut
j'ai pas pu télécharger le fichier zip sur
http://elguevel.free.fr/download/shutdown.zip
SVP partager le sur un autre serveur
merci
Messages postés
4
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
15 juin 2008

le zip manque un fichié .exe pour démarer logiciel
aidé moi de telecharger ce zip complet
merci.
Messages postés
24
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
9 janvier 2009

merci pour le ce programme mais ?a marche avec un reseau internet ?
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
ba le nom de la machine ...
Afficher les 22 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.