Announcement

Collapse
No announcement yet.

NT/2000 feste Shutdown-Restart-Logoff Begfehle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • NT/2000 feste Shutdown-Restart-Logoff Begfehle

    HallO!

    Ich suche verzweifelt die Befehle o.g. . Unter 9x ist es ja kein Problem, hat aber einer zufällig die Befehle oder Sources zur Hand, um sie mir auszuhändigen? Wäre super!

    Danke,
    Bastian

  • #2
    Hallo Bastian. Ich hab so etwas mal in der Toolbox 3/99 (Tips und Tricks) gelesen. Das Folgende ist zum Neustart gedacht(Ich kenn mich mit NT nicht aus bzw. ich hab noch nie darauf gearbeitet und hab einfach mal abgeschrieben:

    unit BootNT;
    // USES ....
    interface
    funktion AdjustTokenPrivileges(
    TokenHandle: THandle;
    DisableAllPrivileges: BOOL;
    CONST NewState: TTokenPrivileges;
    BufferLength: DWORD;
    PreviousState: PTokenPrivileges;
    ReturnLength: PWORD) : BOOL;
    Stdcall;

    //...
    implementation
    function AdjustTokenPrivileges; External 'advapi32.dll'
    Name 'AdjustTokenPrivileges';
    {$R *.DFM}

    procedure ReebootWindowsNt;
    const
    AdjustMsg = 'Konnte die Privilegien nicht ändern.' #13#10;
    TokenMsg = 'Konnte den Token nicht öffnen.'#13#10;
    FailMsg = 'Der Neustart schlug fehl.';
    var
    Success : Boolean;
    TokenPriv : TTokenPrivileges;
    TokenHandle : THandle;
    CurrentProc : THandle;
    Begin
    Success := False;
    CurrentProc := GetCurrentProcess;
    if OpenProcessToken(CurrentProc,
    TOKEN_ADJUST_PRIVILEGES OR
    TOKEN_QUERY,
    TokenHandle) then begin
    //Privilegien holen
    if LookupPrivilegeValue(NIL, 'SeShutdownPrivilege',
    TokenPriv.Privileges[0].LUID) then Begin
    TokenPriv.PrivilegeCount :=1;
    TokenPriv.Privileges[0].Attributes :=
    SE_PRIVILEGE_ENABLED;
    //System neustarten
    if AdjustTokenPrivileges(TokenHandle, False,
    TokenPriv,
    0, NIL, NIL) then
    Success:= ExitWindowsEX(EWX_REBOOT, 0);
    if NOT Success then
    showmessage(AdjustMsg + FailMsg)
    end
    end else
    showmessage(TokenMsg + FailMsg);
    End;

    Procedure TForm1.Button1Click(Sender: TObject);
    Begin
    RebootWindowsNT;
    end;
    end.
    mfg. Tobyy
    [email protected]
    http://schueler.freepage.de/tobyy

    Comment


    • #3
      Ei Tschuldige das der obige Text so eng geschrieben ist.
      hab ich nicht beabsichtigt. Anscheinend war meine Schreibweise nicht korekt aber ich hock mich jetzt nicht noch mal so lange hin, da ich keine Zeit mehr hab. Hoffentlich kannst du Trotzdem was damit anfangen.
      mfg Tob

      Comment


      • #4
        www.erm.tu-cottbus.de/delphi/src/rshutdown/rshutdown.zi

        Comment

        Working...
        X