InitiateSystemShutdown



  • hi
    zwei fragen:

    1. man kann ja mittels bool variable (true/false) wählen, ob der rechner rebooten soll oder nicht. wenn man nun also FALSE wählt, wird ein shutdown ausgelöst und der rechner rebootet nicht. ABER das ist nicht so ein shutdown wie ich ihn gerne hätte. es kommt dann der "Sie können den computer jetzt ausschalten" screen. der rechner läuft ja aber eigentlich noch. kann man dies ned so machen, das der rechner ganz aus ist?

    2. irgendwie klappt das nur auf meinem rechner. andere computer im LAN werden nicht heruntergefahren. muss die application auf jedem rechner laufen oder was muss man tun das es auf den anderen LAN rechner geht?



  • dieser text ist gewollt damit der user informiert wird.. wenn die zeit abgelaufen ist bootet der rechner neu bzw. schällt aus. du kannst den text nurch durch ein timeout von 0 sekunden unterdrücken.

    um einen rechner heruntefahren zu können brauchst du dazu die nötigen rechte über den rechner. in der standardkonfiguration sind das admin rechte.



  • das mit den 0 sekunden war mir schon klar. das ist aber nicht die antwort auf meine frage 🙂 ich will das der rechner ganz ausgeht. so als würdest du auf start/beenden gehen. wenn der rechner dann runtergefahren ist, hörst du ja das netzteil nicht mehr, ne?...

    um einen rechner heruntefahren zu können brauchst du dazu die nötigen rechte über den rechner. in der standardkonfiguration sind das admin rechte.

    wie genau muss ich hier denn vorgehen? was muss ich am zielrechner einstellen das es klappt, oder was kann ich das gleich programmtechnisch machen...?



  • Schau dir doch mal dir Remarks an:

    To shut down a remote computer, the calling thread must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer. [...] Administrators can enable the SE_REMOTE_SHUTDOWN_NAME privilege on remote computers. For more information, see Running with Special Privileges.



  • must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer

    ich kann dieses priv in meinem programmcode festlegen, bringt mir ja aber nichts. was muss ich denn tun damit ich das alles aus meinem programm heraus aktivieren kann? damit der client am zielrechner nichts tun muss. ? (ist am sichersten, sonst kann ja dann jeder die rechner runterfahren)



  • ich denke mir ja schon das ich

    1. in meinem code SE_REMOTE_SHUTDOWN_NAME und nicht SE_SHUTDOWN_NAME festlegen muss.

    2. ich in meinem code wohl benutzername/passwort (um rechte zu bekommen) festlegen muss. oder nicht? weis aber nicht wie genau ich dann vorgehen muss.



  • So wie ich das verstanden hatte ist das eine Sache, die auch dem Remote-PC geschehen muss. Bin mir aber nicht sicher - hab noch nie etwas damit gemacht 🙄



  • wenn du bRebootAfterShutdown auf false setzt sollte der rechner eigentlich herunterfahren.

    SE_SHUTDOWN_NAME bezieht sich nur auf prozess auf deinem pc. um die rechte zu bekommen einen anderen pc herunterzufahren musst du dich bei dem pc "anmelden". die einfachste variante dazu wäre WNetAddConnection2 mit dem entsprechenden benutzer und passwort


Anmelden zum Antworten