Hey,
brauche wieder mal einen kleinen tipp,
wie kann ich die Boottime eines Remote-Rechners auslesen und ausgeben .
Danke
Hey,
brauche wieder mal einen kleinen tipp,
wie kann ich die Boottime eines Remote-Rechners auslesen und ausgeben .
Danke
Habe was gefunden:
[autoit]BootTime()
Func BootTime()
$COMPUTERNAME=EnvGet("COMPUTERNAME")
Local $ProductCode, $ProductName, $Val
Local $objItems
Local $objWMI
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$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
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 ?
StringRegExpReplace($conv_date, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$4:$5:$6 $3.$2.$1")
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
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$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
Schau doch das Beispiel in der Hilfe an und probier es durch...
[autoit]$BootTime=StringRegExpReplace($BootTime, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$4:$5:$6 $3.$2.$1")
[/autoit]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
Hatte da mal eine UDF gemacht. Geht vill. auch schneller.
https://autoit.de/index.php?page…+udf#post113349
LG
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
Func BootTime($Host)
; $COMPUTERNAME=EnvGet("COMPUTERNAME")
$COMPUTERNAME=$host
Local $ProductCode, $ProductName, $Val
Local $objItems
Local $objWMI
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$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")
ConsoleWrite($BootTime&@crlf)
EndFunc
Habe es gefunden
[autoit]
$objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
if @error Then Return