Erstmal sollte man
WinExec nicht mehr verwenden, da es nur noch aus Kompatibilitätsgründen zu 16-Bit Programmen vorhanden ist.
Zum anderen dürfte klar sein, dass man Administratirenrechte benötigt, um einen Rechner remote runterzufahren, sonst könnte da ja jeder kommen. mache ich das natürlich mit einem Client, sind diese nicht erforderlich, da der Client ja im Kontext des angemeldeten Benutzers läuft.
Will man auf einen Client verzichten kann man das auch mit Windows eigenen Fuznktionen machen, wie zum Beispiel
InitiateSystemShutdown. Vorher muss man sich allerdings die nötigen Privilegien holen "SeRemoteShutdownPrivilege" und sich am Remoterechner mit einem lokalen Administratorenkonte von dem Remoterechner autentifizieren. Dies kann man machen, in dem man sich auf die administrative Freigabe mittels
WNetAddConnection2 verbindet.