Shutdown Problem !

Zu allererst,

ICH BIN ES GEWOHNT KEINE HILFE ZU BEKOMMEN

So jetzt zu meinem Problem:

Da ich versucht habe aber null ahnung von c++ habe, nachdem man im OS W2k
angemeldet ist per Code die Zugriffsrechte in HKLM\\SECURITY zu ändern und ich
nun die Schnauze voll habe, entstand ne neue Lösung für mein Problem.

Problembeschreibung: Eintrag in HKLM\\SECURITY\meinOrdner
Bedingung: - ohne regini, ohne regedt32


Neue Lösung:

Vor der Anmeldung als User (Beim Anmeldebildschirm) ne batch starten, alle benötigten einträge ausführen (in der registry).Funktioniert echt super.

Das NEUE Problem:

Der Restart des Rechner funktioniert überhaupt nicht und das mit sämtlichen shutdown befehlen, oder DOS progs.

Es kommt die Meldung "Sie können jetzt Ihren Rechner ausschalten".

Die Kiste schaltet nicht ab, bzw rebootet nicht.

Ist man im System angemeldet geht alles.

Wie fährt MS die Kiste runter wenn man nicht angemeldet ist, mit reboot ?




DAS GEHT NICHT, und führt dazu das man aufgefordert wird die Kiste auszuschalten:

Code:
  	 HANDLE hToken;
  	 TOKEN_PRIVILEGES tPrivs;
  
  	 OpenProcessToken(GetCurrentProcess(),   TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, &hToken);
  	 LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tPrivs.Privileges[0].Luid);
  	 tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  	 tPrivs.PrivilegeCount = 1;
  	 AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0);
  
  		if(poweroff == "-1")
  		ExitWindowsEx(EWX_SHUTDOWN | EWX_POWEROFF, NULL);
  
  		if(poweroff == "-2")
  		ExitWindowsEx(EWX_REBOOT, NULL);
  
  		if(poweroff == "-3")
  		ExitWindowsEx(EWX_LOGOFF, NULL);
  
  		if(poweroff == "-4")
  		{
 			 ExitWindows(ShutdownWithoutLogon, 0);			 
  				//ExitWindows(EWX_POWEROFF,0);
  		}

Geht nur wenn man angemeldet ist.

Aber MS schafft das ja auch !
 
In der MSDN steht noch Folgendes:

EWX_FORCE

Windows XP: If the computer is locked and this flag is not specified, the shutdown process will fail.

Zusätzlich:

The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section.

Du setzt zwar da SeShutdownPrivilege, aber ich weiss nicht, ob das SE_SHUTDOWN_NAME entspricht.
 
moin


So hat es bei mir bis jetzt immer funktioniert.

Code:
HANDLE hToken;
TOKEN_PRIVILEGES tPrivs;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tPrivs.Privileges[0].Luid);
tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tPrivs.PrivilegeCount = 1;
AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0);
ExitWindowsEx(EWX_POWEROFF+EWX_FORCE, 0);


mfg
umbrasaxum
 
Bist du da im Windows drin ? Also biste da angemeldet ?

Probiert das doch mal aus wenn du nicht angemeldet bist, also beim LOGIN

Mit ner bat.

Dann nix mehr Dann is vorbei er schaltet den rechner nicht ab
 
moin


Ne dann wird das wohl nciht gehen, da du selber kein Benutzer bist und dann keine Rechte bekommen kannst denke ich.

Hast davon aber noch ncihts gesagt, oder hab ichs überlesen.


mfg
umbrasaxum
 
Also in einem anderen Thread zu dem Thema stand mal

system("shutdown -a");

ausführen...

Das soll funktioniert haben...

Aber wenn du das genau wissen willst, da gibts nen Button auf dieser Seite der nennt sich SUCHEN, da findeste das auch.
 
Zurück