[UDF] Shutdown / Reboot / Logoff

  • Hallo Community!

    Ich habe eine kleine UDF geschrieben mit der man per Remote Pc's
    herunterfahren, neu startetn und abmelden kann.

    Das ganze ist über WMI realisiert.


    Spoiler anzeigen
    [autoit]

    Func _ccdown($strComputer)
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & $strComputer & "\root\cimv2")

    If @error Then
    MsgBox(64, 'Fehler' , 'Der Computer konnte nicht heruntergefahren werden.')
    Exit
    EndIf

    $colOperatingSystems = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For $objOperatingSystem in $colOperatingSystems
    $objOperatingSystem.Win32Shutdown(8)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ccboot($strComputer)
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & $strComputer & "\root\cimv2")

    If @error Then
    MsgBox(64, 'Fehler' , 'Der Computer konnte nicht neu gestartet werden.')
    Exit
    EndIf

    $colOperatingSystems = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For $objOperatingSystem in $colOperatingSystems
    $objOperatingSystem.Win32Shutdown(2)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _cclogoff($strComputer)
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & $strComputer & "\root\cimv2")

    If @error Then
    MsgBox(64, 'Fehler' , 'Der Computer konnte nicht abgemeldet werden.')
    Exit
    EndIf

    $colOperatingSystems = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For $objOperatingSystem in $colOperatingSystems
    $objOperatingSystem.Win32Shutdown(0)
    Next
    EndFunc

    [/autoit]

    Syntax:

    [autoit]

    _ccdown('pc-name')

    [/autoit][autoit]

    _ccboot('pc-name')

    [/autoit][autoit]

    _cclogoff('pc-name')

    [/autoit]

    Ich würde mich über feedback freuen.

    Mfg Aiden

  • Also wir haben eben ein paar Testt laufen lassen welches zeigt das WMI disabled ist wenn man keine Administrationsrechte hat.

    Was zur folge hat das eine Fehlermeldung ausgegeben wird.

    100% sicher sind wir uns nicht da es zu Schwirigkeiten bei einem Testlauf gekommen ist.

  • also mit admin-rechten funktionierts einwandfrei ;) - ohne... kann ich mir ned vorstellen!

    thx

  • Find ich klasse! auch wenns sowas schon gibt. Aber was ich gut fänden würde wäre ein Script mit dem man sich remote an eine Domäne ANMELDEN kann ^^ Aber ich denke mal das das keiner hin, naja ich jedenfalls nicht :P

    MfG

    akira2012

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • Super Programm, funktioniert allerdings nur als DomAdmin/Admin, wie ihr selbst schon festgestellt habt.
    Was muss ich in der Registry ändern, damit eine bestimmte Gruppe Remote PCs runter fahren darf?


    Gruß
    dragst3r