boot time

  • Hey,

    brauche wieder mal einen kleinen tipp,

    wie kann ich die Boottime eines Remote-Rechners auslesen und ausgeben .

    Danke

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    3 Mal editiert, zuletzt von subzero007 (16. Oktober 2009 um 14:09)

  • Habe was gefunden:

    [autoit]

    BootTime()
    Func BootTime()
    $COMPUTERNAME=EnvGet("COMPUTERNAME")
    Local $ProductCode, $ProductName, $Val
    Local $objItems
    Local $objWMI

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20

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

    $objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
    $objItems = $objWMI.ExecQuery('Select * from Win32_OperatingSystem', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($objItems) Then
    For $objItem In $objItems
    $oBootTime = $objItem.LastBootUptime
    Next
    EndIf
    $BootTimeArray=StringSplit($oBootTime,".",1) ; Entferne alle Zahlen nach dem . damit es in der Console schöner aussieht.
    $BootTime=$BootTimeArray[1]; Gib mir den Teil des Arrays links vom . (Punkt)
    ConsoleWrite($BootTime)
    EndFunc

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

    Kann mir noch jemand einen tipp geben fürs format:
    das gibt er jetzt aus:
    20091014071539

    wüde es gerne so darstellen:

    Stunde:Minute:sekunde Tag:Jahr

    Einen Tipp Für mich ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • [autoit]


    StringRegExpReplace($conv_date, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$4:$5:$6 $3.$2.$1")

    [/autoit]

    Ergibt: Stunde:Minute:sekunde Tag.Monat.Jahr
    Dieser Teil legt die Rückgabe fest: ,"$4:$5:$6 $3.$2.$1"

  • Was mache ich falsch das format ist immer noch das selbe?

    [autoit]

    BootTime()
    Func BootTime()
    $COMPUTERNAME=EnvGet("COMPUTERNAME")
    Local $ProductCode, $ProductName, $Val
    Local $objItems
    Local $objWMI

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20

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

    $objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
    $objItems = $objWMI.ExecQuery('Select * from Win32_OperatingSystem', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($objItems) Then
    For $objItem In $objItems
    $oBootTime = $objItem.LastBootUptime
    Next
    EndIf
    $BootTimeArray=StringSplit($oBootTime,".",1) ; Entferne alle Zahlen nach dem . damit es in der Console schöner aussieht.
    $BootTime=$BootTimeArray[1]; Gib mir den Teil des Arrays links vom . (Punkt)
    StringRegExpReplace($BootTime, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$4:$5:$6 $3.$2.$1")
    ConsoleWrite($BootTime)
    EndFunc

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Du hast vor StringRegExpReplace die Variable vergessen
    zum kürzer machen als $COMPUTERNAME kanst du auch @PCNAME hernehmen

  • Danke habe es berits gelöst
    @pcname werde ich nicht nehmen da ich sowieso diesen wert als parameter vom Remote rechner übergeben werde.....

    also= $COMPUTERNAME = $Remoterechner

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • So bin fertig aber wenn ich auf einen server stosse wo ich nicht genügend rechte also kein Admin bin habe kommt diese fehler meldung.
    Wie kann ich das abfangen??

    (13) : ==> Variable must be of type "Object".:
    $objItems = $objWMI.ExecQuery('Select * from Win32_OperatingSystem', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    $objItems = $objWMI^ ERROR

    [autoit]


    Func BootTime($Host)
    ; $COMPUTERNAME=EnvGet("COMPUTERNAME")
    $COMPUTERNAME=$host

    Local $ProductCode, $ProductName, $Val
    Local $objItems
    Local $objWMI

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20

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

    $objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
    $objItems = $objWMI.ExecQuery('Select * from Win32_OperatingSystem', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($objItems) Then
    For $objItem In $objItems
    $oBootTime = $objItem.LastBootUptime
    Next
    EndIf
    $BootTimeArray=StringSplit($oBootTime,".",1) ; Entferne alle Zahlen nach dem . damit es in der Console schöner aussieht.
    $BootTime=$BootTimeArray[1]; Gib mir den Teil des Arrays links vom . (Punkt)
    $BootTime=StringRegExpReplace($BootTime, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$4:$5:$6 $3.$2.$1")

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

    ConsoleWrite($BootTime&@crlf)
    EndFunc

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Habe es gefunden

    [autoit]


    $objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
    if @error Then Return

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."