Shutdown Befehl über Netzwerk senden ?

  • VB.NET

Es gibt 67 Antworten in diesem Thema. Der letzte Beitrag () ist von Bit-Hexer.

    Shutdown Befehl über Netzwerk senden ?

    Hey , ich würde gerne für meinen Lehrer ein kleines Programm schreiben das bei Button klick alle Pc´s im Netzwerk herunterfährt !
    Aber wie mache ich das alle Pc´s im Netzwerk diesen Befehl erhalten ? ( Es wäre besser , wenn kein Client auf den Rechnern laufen müsste )
    Also die Frage ist einfach nur wie ich diesen Befehl übers ganze Netzwerk schicke !
    Shell("c:\windows\system32\shutdown.exe -s ")
    vor ein paar Jahren hättest du das noch machen können :)
    aber das wurde gepatcht da zuviel ***** damit gemacht wurde.

    wir würde jetzt nur das einfallen was du nicht machen willst *Clienten auf Rechner verteilen

    vlt. kann man es auch irgendwo zulassen in irgendeiner Einstellung. ich schau mal in Laufe des Tages nach.


    mfg Myers
    Also das mit Shutdown -i ist eine schöne sache, ich habs zwar noch nciht ausprobiert, sieht aber schonmal schön aus :P

    Aber wie bekomme ich es z.B. in, dass ich jetzt eine IP eingebe, also in eine Textbox und dann auf einen Button drücke, und er DEN Rechner aus dem lokalen Netzwerk dann runterfährt?


    MfG VB.Ghost
    Du machst einen Server und auf alle anderen rechner einen client.
    Eigentlich wärs besser wenn du einen client und auf die anderen rechner server machst. Dann kannste mit der ip direkt verbinden.
    Der client sended an die angegebene ip z.b. den befehl "shutdown" und sofort wird dieser befehl: shell ("shutdown -s -f -t 1", ..hide..) ausgeführt.
    Fals du es net schaffst kann ich dir ma nen bsp schreiben. 5min^^
    @ apfel

    wenn ihr das mit clients macht, dann natürlich nicht, doch wenn ich von rechner a den shutdown befehl ausführe, welcher rechner b herunterfahren soll, muss ich ein benutzerkonto haben, welches adminrechte auf rechner b hat....sonst klappts nicht(ich rede hier davon, das ich an meinem rechner ohne zusätliche programme wie server/client etc, nur mit hilfe von cmd und dem shutdown befehl einen anderen rechner im netzwerk herunterfahre)
    @ Malischh:

    Also ich habe hier schon eine Weile rumprobiert, also auch mit so Sachen, die glaube ich völlig falsch sind ( Winsock etc. ). Das andere Topic in deinem Link habe ich auch schon angeguckt, nur leider ist das 1. Nur als Konsolenanwendung, und 2. liefs bei mir irgend wie nicht, weil er meinte immer dass da eine Sub Main fehlt, obwohl die da ja eigendlich auch drin stand, naja, also das war auch nicht so erfolgreich...
    Womit ich sagen möchte, dass wenn du gaaaanz viel Zeit hast, dann wäre es nett wenn du da ein Beispiel schreiben könntest 8o

    MfG VB.Ghost
    Danke, ich werde das gleich nochmal ausprobieren, aber noch vorher einmal eine kurze Frage:

    Ich möchte, dass wenn das Fenster "System herunterfahren" offen ist, der Button1 deaktiviert wird. Das tut er auch, abebr er geht nicht wieder auf aktiviert, auch wenn ich ihm das versucht habe klar zu machen:

    VB.NET-Quellcode

    1. If FindWindow(vbNullString, "System herunterfahren") <> 0 Then
    2. Button1.Enabled = False
    3. ElseIf FindWindow(vbNullString, "System herunterfahren") = 0 Then
    4. Button1.Enabled = True
    5. End If


    Warum geht er nciht wieder zurück?


    MfG VB.Ghost

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB.Ghost“ ()

    Keine ahnung ich kenn den Code nicht, aber versuchs ma so:

    VB.NET-Quellcode

    1. If FindWindow(vbNullString, "System herunterfahren") <> 0 Then
    2. Button1.Enabled = False
    3. Else
    4. Button1.Enabled = True
    5. End If


    Das Server Client Beispiel werd ich dir später schicken.
    Yo du hasst recht!!

    Ich würds aber mit einem Timer machen :P

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. timer1.interval = 1000
    3. timer1.enabled = true
    4. End Sub
    5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    6. If FindWindow(vbNullString, "System herunterfahren") <> 0 Then
    7. Button1.Enabled = False
    8. Else
    9. Button1.Enabled = True
    10. End If
    11. end sub
    Also ich fasse meine Frage einfach nochmal schnell zusammen :rolleyes: ....
    Es ist doch möglich über den CMD Befehl " shutdown -i " alle Pc´s im Netzwerk herunterzufahren , ohne Adminrechte zu haben ?
    Könnte man dann nicht einfach eine Batch machen wie diese hier :

    Quellcode

    1. @echo off
    2. echo Achtung , jetzt werden alle Pc´s im Netzwerk heruntergefahren !
    3. shutdown -i
    4. echo .... astalavista baby ....


    Man könnte ja einfach die Batch über VB.net starten !
    Hab ich jetzt irgendwie was falsch verstanden , oder ist es echt nur so einfach ?
    Ja eigentlich schon. Mit den Admin rechten hab ich keine Ahnung, da ich des nie ausprobiert habe. Da musst du den Kollegen fragen.
    Ich finde aber, das eine Server, Client Variante schöner wär, da man noch vielen Schnick Schnak reinbauen kann. Z.B. Tastatur und Maus Sperre, Bildschrim ausschalten, CD Laufwerk öffnen,.... :whistling:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Malischh“ ()

    Also gegen die Server + Client Variante hätte ich auch nichts, vor allem wenn es so funktionieren könnte, dass man einfach eine IP eingibt,auf einen Knopf drückt, und der jeweilige Rechner fährt herunter. Das einzige Problem wird sein, dass ich da LEIDER keine Ahnung von VB in Verbindung mit so Netzwerkkrams habe.... Finde ich sehr schade, also wenn jemand Anleitungen der so zu dem Thema kennt ( VB 2008 ), dann bitte posten :thumbsup:

    MfG VB.Ghost
    Ich würde Vorschlagen, dass wir das IP Shutdowner Programm als Comunity Projekt hier im Thread schreiben. Also ich mach ma den Anfang: 8-)

    VB.NET-Quellcode

    1. 'Die Form hat eine Textbox1 und einen Button1
    2. 'In der Textbox1 wird die IP angegeben
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. textbox1.enabled = false
    5. if connect(textbox1.text,"shutdown") = true then
    6. textbox1.enabled = true
    7. msgbox "Erfolgreich Ausgeschaltet!"
    8. else
    9. textbox1.enabled = true
    10. msgbox "Error....."
    11. end if
    12. end sub




    OK ihr seid dran. Die Connect Funktion muss noch geschrieben werden.

    Ach ja Malischh Grüße Zurück :D