AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XP shutdownbefehle

Ein Thema von JB-1990 · begonnen am 18. Nov 2007 · letzter Beitrag vom 1. Dez 2007
Antwort Antwort
Seite 2 von 3     12 3      
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#11

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 00:04
Wenn der Benutzer das Privile "ShutdownSystem" hat, dann sollte er shutdown.exe ohne Probleme verwenden können.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 08:30
Zitat von JB-1990:
Ziemlich sinnlose Disskusion findest du nicht?
Ich wollte dich nur auf ein Manko deines Programmes hinweisen. Hinzukommt, es sind genau solche Programme, die dazu führen, dass viele Windows Benutzer immer noch als Administrator arbeiten. Unter Linux gäbe es diese Diskussion erst gar nicht, da dein programm von vorneherein als unbrauchbar eingestuft wäre.

Zitat:
Jeder sollte für sich entscheiden, ob und wann er das Programm braucht.
Dagegen habe ich auch nichts gesagt.

Zitat:
Abgesehen davon hab ich es nicht als Freeware,Shareware o.ä. zur verfügung gestellt.
Wie gesagt, es war nur ein wohlgemeinter Hinweis.

Zitat:
Vielleicht kommt da auch neid in dir hervor
You made my day. Ich wüßte zumindest, wie ich es schreiben müsste, damit es auch mit eingeschränkten Benutzerrechten funktioniert.

Zitat:
Hab da aber keinen Bock mehr drauf hier weiter zu disskutieren.
Ich auch nicht, da du anscheinend keine konstruktive Kritik verträgst und dich gleich persönlich angegriffen fühlst.

Zitat:
dann mach ein eigenes was viel besser ist
Könnte ich machen, habe aber zum einem keine Zeit dazu und desweiteren ist es keine Herausforderung, die mich reizen würde, da es für mich nichts neues bringen würde.

Zitat:
oder schreib Verbesserungsvorschläge
MSDN-Library durchsuchenExitWindowsEx

Zitat:
für minderwertige Diskussionen ist das Forum hier zu schade, weil es echt tolle Leute gibt, die hier sehr schnell,sehr gute und durch aus äußerst kompetente Antworten geben wie in keinem Forum sonst.(Punkt)
Sach mal, bist du heute mit dem falschen Fuß aufgestanden? Noch mal, ich habe nur ein Manko deines Programmes aufgezeigt und du tust so als wenn ich dich übelst beschimpft hätte.

@Dezipaitor: Dieses Privileg müsste der Administrator aber erst explizit vergeben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#13

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 11:17
Komisch. Das Herunterfahrenprivileg ist bei mir auch der Hauptbenutzergruppe möglich. Jetzt kann ich nur nicht sagen, ob ich es eingestellt habe, oder es standard ist.

Zeitgesteuert kann man übrigens auch über die Aufgabenplanung unter Zubehör/System etwas machen - z.b. shutdown oder eine Batch aufrufen. Siehe hier. Leider sind wohl Adminrechte notwendig für die Aufgabenplanung, was ich mal garnicht verstehen kann.

Für die Programmierung von "Herunterfahren von System" empfehle ich übrigens lieber ExitWindowsXX oder WMI zu verwenden, weil man Fehler einfach besser überprüfen kann. Zudem können sich Parameter von shutdown.exe von Version zu Version ändern.

Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
JB-1990

Registriert seit: 3. Okt 2007
56 Beiträge
 
#14

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 12:28
@Luckie
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...

Zitat von Luckie:
Ich auch nicht, da du anscheinend keine konstruktive Kritik verträgst und dich gleich persönlich angegriffen fühlst.
Konsutruktiv verstehe ich, dass de Verbesserungsvorschläge für mein Prog bringst und net nur sagst was es nicht kann. Denn ich denke es ist zu erkennen, dass ich auf dem Gebiet neuland erschließe, sonst würde ich sowas net fragen.Genau solche Leute kann ich garnicht ab, die nur an der Arbeit anderer was auszusetzen haben aber nicht sagen, was sie besser machen könnten und erst dann aktiv werden, wenn sie angegriffen werden...

Zitat von Dezipaitor:
Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?
Meine Meinung...kein Plan, wie Windows das macht,aber denke ma schon, wäre ma interessant zu wissen, kennt sich jemand damit aus.

RunDLL32.EXE powrprof.dll,SetSuspendState
das funzt, habsch auch schon eingebaut, macht aber wie gesagt nur standby und ich will nicht erst über Standby in den Ruhezustand...hab da was gefunden:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie kann ich sowas in ein Prog. einbauen ohne gleich die *.bat zu erstellen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 12:39
Zitat von JB-1990:
@Luckie
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...
Glaub mir, man braucht Administratorenrechte, wenn die Privilegien nicht angepasst wurden. Und Windows benutzt wahrscheinlich, die von mir verlinkte API-Funktion.

Zitat:
Genau solche Leute kann ich garnicht ab, die nur an der Arbeit anderer was auszusetzen haben aber nicht sagen, was sie besser machen könnten und erst dann aktiv werden, wenn sie angegriffen werden...
Und ich kann Leute nicht ab, die den Unterschied zwischen konstruktiver Kritik und "was auszusetzen haben" nicht kennen und einen gleich persönlich angreifen, die nicht in der Lage sind höflich nachzufragen, sondern gleich ausfallend werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
JB-1990

Registriert seit: 3. Okt 2007
56 Beiträge
 
#16

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 13:11
Zitat von Luckie:
Glaub mir, man braucht Administratorenrechte, wenn die Privilegien nicht angepasst wurden. Und Windows benutzt wahrscheinlich, die von mir verlinkte API-Funktion.
Werden wir noch sehen, werd es bei jemanden ohne Adminrechte machen...
Zitat:
Und ich kann Leute nicht ab, die den Unterschied zwischen konstruktiver Kritik und "was auszusetzen haben" nicht kennen und einen gleich persönlich angreifen, die nicht in der Lage sind höflich nachzufragen, sondern gleich ausfallend werden.
jetzt hat jeder gesagt was er nicht leiden kann, würde sagen Diskussion is beendet.

Zurück zur Frage:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 13:32
Zitat von JB-1990:
Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?
Hier im Forum suchenShellexecute wäre eine Möglichkeit.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#18

Re: XP shutdownbefehle

  Alt 21. Nov 2007, 13:35
Das Herunterfahren hat nichts mit Adminrechten zu tun.
Man kann die Gruppe Administratoren und den Benutzer Administrator so einstellen, dass er nichts mehr machen kann.
Es geht nur um das Shutdown Privileg, was Administratoren und Hauptbenutzer normal haben.
Die Privilegien sind immer angepasst! Denn was die Gruppen und Benutzer so mächtig macht, sind eben die Privilegien.

Seht unter den lokalen Kontorichtlinen mit "gpedit.msc" - dem PolicyEditor nach. Da kann man auch dem Gast Shutdownrechte geben.

Zitat von JB-1990:
das mit den Adminrechten werd ich noch rausbekommen, aber theoretisch braucht man keine, da "Start"-->"Herunterfahren"-->"was auch immer" auch auf die Shutdown.exe zugreifen müsste...
Dein Benuter hat eben das Shutdownprivileg. Und shutdown.exe wird nicht augerufen. Im Gegenteil. Shutdown.exe und jedes andere Programm verwendet die MSDN API Funktion ExitWindowsEx oder WMI direkt.

Zitat von JB-1990:
Zitat von Dezipaitor:
Außerdem wäre es eine "Herausforderung" die shutdown.exe in allen Rafinessen nachzubauen. Dabei lernt man wirklich eine Menge.
Verwendet shutdown.exe einen Dienst, um die ganzen Dinge, wie Dialoganzeige zu machen? Würde ich mal denken, oder?
Meine Meinung...kein Plan, wie Windows das macht,aber denke ma schon, wäre ma interessant zu wissen, kennt sich jemand damit aus.

RunDLL32.EXE powrprof.dll,SetSuspendState
das funzt, habsch auch schon eingebaut, macht aber wie gesagt nur standby und ich will nicht erst über Standby in den Ruhezustand...hab da was gefunden:

Ruhezustand.bat
powercfg /hibernate on
rundll32.exe powrprof.dll,SetSuspendState

Standby.bat
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState

Wie kann ich sowas in ein Prog. einbauen ohne gleich die *.bat zu erstellen.
Mit powercfg aktivierst du den Ruhezustand, auch wenn ihn der Benutzer ausgeschaltet hat in der Systemsteuerung. Danach schaltest du ihn explizit aus und der Benutzer kann den Ruhezustand nicht mehr über den Explorer verwenden.

Mit rundll32 rufst du eine Funktion auf, die in der powrprof.dll enthalten ist. Diese Funktion SetSuspendState kann man direkt aufrufen über Delphi und sogar noch mit Parameter befüllen. Zudem bekommt man Informationen über Fehler.

Ich würde dir empfehlen, direkt die Funktionen zu verwenden und nicht über Batch-Dateien zu gehen. Man verwendet Batch nur dann, wenn mal kurz und einfach etwas benötigt und mein keine Ahnung von Programmierung hat oder der Aufwand dafür zu groß wäre. Für den Zwischenfall gäbe es ja auch noch die MS Windows Skript Sprache, die extra für soetwas gemacht wurde. (sorry keine Ahnung, wie die wirklich heißt).


In der JEDI Security Code Library gibt es dieses Beispiel, welches versucht den Rechner herunterzufahren. Man kann es natürlich für die anderen Stadien anpassen.


Delphi-Quellcode:
(*
This demonstration tries to shutdown your computer by enabling the
needed privilege and calling the WinAPI-function afterwards.
The shutdown will be cancelled after ten seconds.
*)


program SimpleShutdown;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  JwaWindows,
  JwsclExceptions,
  JwsclToken;

var
  Token: TJwSecurityToken;

begin
  try
    Token:=TJwSecurityToken.CreateTokenByProcess(GetCurrentProcess,
      TOKEN_ADJUST_PRIVILEGES or TOKEN_READ or TOKEN_QUERY);
  except
    on E: EJwsclOpenProcessTokenException do
    begin
      Writeln(E.Message);
      Readln;
      Exit;
    end;
  end;
  try
    if Token.PrivilegeAvailable[SE_SHUTDOWN_NAME] then
    begin
      Writeln('SE_SHUTDOWN_NAME is available');
      Token.PrivilegeEnabled[SE_SHUTDOWN_NAME]:=True;
    end
    else
      Writeln('SE_SHUTDOWN_NAME is not available');
  finally
    FreeAndNil(Token);
  end;

  if not InitiateSystemShutdown(nil, 'The computer will be shut down in 60 seconds.', 60, False, False) then
    Writeln(SysErrorMessage(GetLastError))
  else
  begin
    Sleep(10000);
    AbortSystemShutdown(nil); //stops the shutdown
  end;

  Readln;
end.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
JB-1990

Registriert seit: 3. Okt 2007
56 Beiträge
 
#19

Re: XP shutdownbefehle

  Alt 22. Nov 2007, 18:41
Zitat von Luckie:
Zitat von JB-1990:
Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?
Hier im Forum suchenShellexecute wäre eine Möglichkeit.
via cmd? Und dann im 4. parameter den Befehl der Bat?

Delphi-Quellcode:
(*
This demonstration tries to shutdown your computer by enabling the
needed privilege and calling the WinAPI-function afterwards.
The shutdown will be cancelled after ten seconds.
*)
 

program SimpleShutdown;

{$APPTYPE CONSOLE} 

uses
  SysUtils,
  JwaWindows,
  JwsclExceptions,
  JwsclToken;

var
  Token: TJwSecurityToken;

begin
  try
    Token:=TJwSecurityToken.CreateTokenByProcess(GetCurrentProcess,
      TOKEN_ADJUST_PRIVILEGES or TOKEN_READ or TOKEN_QUERY);
  except
    on E: EJwsclOpenProcessTokenException do
    begin
      Writeln(E.Message);
      Readln;
      Exit;
    end;
  end;
  try
    if Token.PrivilegeAvailable[SE_SHUTDOWN_NAME] then
    begin
      Writeln('SE_SHUTDOWN_NAME is available');
      Token.PrivilegeEnabled[SE_SHUTDOWN_NAME]:=True;
    end
    else
      Writeln('SE_SHUTDOWN_NAME is not available');
  finally
    FreeAndNil(Token);
  end;

  if not InitiateSystemShutdown(nil, 'The computer will be shut down in 60 seconds.', 60, False, False) then
    Writeln(SysErrorMessage(GetLastError))
  else
  begin
    Sleep(10000);
    AbortSystemShutdown(nil); //stops the shutdown
  end;

  Readln;
end.
zwar super lösung, aber geht über mein Verständnis raus, kein plan, was der da macht und das gefällt mir net, wenn ein Programm was macht und ich nicht weiß was...

[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: XP shutdownbefehle

  Alt 22. Nov 2007, 18:45
Zitat von JB-1990:
zwar super lösung, aber geht über mein Verständnis raus, kein plan, was der da macht und das gefällt mir net, wenn ein Programm was macht und ich nicht weiß was...
Wie wäre es dann mit nachlesen? Wenn ich immer alle Befehle, die ich in diesem Forum lese, auf Anhieb verstünde, würde ich mir ein eigenes Delphi schreiben (können).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz