3
Contributors
2
Replies
3
Views
12 Years
Discussion Span
Last Post by Alvein
0

is it possible to write a program which will shutdown the remote systme in c?

Of course its possible. Depends on what way you want to do it and if you have access to install an application on the before mentioned "remote system".

0

is it possible to write a program which will shutdown the remote systme in c?

Please try,

BOOL RemoteShutdown(LPSTR szMachine,LPSTR szMessage,DWORD dwTimeout,BOOL bForce,BOOL bReboot) {
BOOL bRS=FALSE;
HANDLE hToken;
TOKEN_PRIVILEGES tpvPrivileges;
  if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
    if(LookupPrivilegeValue(NULL,SE_REMOTE_SHUTDOWN_NAME,&(tpvPrivileges.Privileges[0].Luid))) {
      tpvPrivileges.PrivilegeCount=1;
      tpvPrivileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
      if(AdjustTokenPrivileges(hToken,FALSE,&tpvPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL))
        bRS=InitiateSystemShutdown(szMachine,szMessage,dwTimeout,bForce,bReboot);
      }
  return(bRS);
}

Tested locally. I Don't have a network to try a working case.

szMachine: either name or IP should work.
szMessage*: some blah's for remote user to be aware of your action.
dwTimeout*: how many seconds to show your blah's.
bForce: close all applications with no confirmation.
bReboot: follow shutdown with a restart.

*(NULL,0): inmediate shutdown.

RemoteShutdown() returns TRUE on success.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.