Jump to content

Bootzeit / Uptime per Skript abfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hallo zusammen,

 

ich bin gerade dabei ein SKript zu schreiben, welches mir von allen Server die Laufzeit ausgeben soll.

 

Zwecks Windows Updates kann man dann sehen, ob die Server schon neugestartet sind.

 

Mit Servern ab 2012 funktioniert meine Abfrage fehlerfrei, nur alles was älter ist (2008 / 2008R2) scheint nicht mit der Abfrage klar zu kommen:

 

 

$servers = Get-ADComputer -filter {Name -like "*NTS*"} -Properties * | Sort

"Servername;Beschreibung;Startzeit;Betriesbsystem" |  Out-File C:\Laufzeiten.csv
"" |  Out-File C:\Laufzeiten.csv -Append

foreach($server in $servers){

$bootzeit = Get-CimInstance Win32_OperatingSystem -Property LastBootUpTime -ComputerName $($server.name) -EA SilentlyContinue | Select LastBootUpTime

$name = $($server.name)
$beschreibung = ($server.Description)
$bootzeit = $($bootzeit.LastBootUpTime)
$os = $($server.OperatingSystem)


"$name;$beschreibung;$bootzeit;$os" | Out-File C:\Laufzeiten.csv -Append
}

 

Jemand eine Idee, wie ich eine Abfrage für alle Server hinbekomme?

 

 

Danke schon einmal

 

 

Link to comment

Eine GPO mit einem Computer-Shutdown-Script oder andersrum mit einem Start-Script?

Aber ein entsprechendes Monitoring wäre wohl sinnvoller.

 

Forced-Shutdown ist keine Option, da die Serververantwortlichen meist besser entscheiden können, wann eine Downtime möglich ist.

 

Ich habe es auch mit fogendem Befehl versucht:

 

Invoke-Command -ComputerName $server -ScriptBlock {systeminfo | find "Systemstartzeit"}

 

Funktioniert leider auch nicht

Link to comment

CimInstanze ist neuer. Evtl. hilft eine neue Powershell Version auf den alten Systemen oder du nimmst Get-WMIObject.

 

Mit folgendem Befehl bekomme ich auch bei 2008er Servern ein vernünftiges Ergebnis

 

Get-WmiObject win32_operatingsystem | select csname, @{LABEL=’LastBootUpTime’
;EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}

An sich ist das Ergebnis schonmal nicht schlecht. Hier einmal das Ganze Skript:

 

cls

$host.ui.RawUI.WindowTitle = "Laufzet v0.2"

$servers = Get-ADComputer -filter {Name -like "*NTS*"} -Properties * | Sort

"Servername;Startzeitpunkt;Beschreibung;Betriesbsystem" |  Out-File C:\Laufzeiten.csv
"" |  Out-File C:\Laufzeiten.csv -Append

foreach($server in $servers){


#$bootzeit = Get-WmiObject win32_operatingsystem -ComputerName $server.Name | select csname, @{LABEL='LastBootUpTime’ ;EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}} -EA SilentlyContinue
$zeit = Get-WmiObject win32_operatingsystem -ComputerName $server.Name | select @{LABEL='LastBootUpTime’ ;EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}} -EA SilentlyContinue

$name = $($server.name)
$beschreibung = $($server.Description)
$bootzeit = $($zeit.LastBootUpTime)
$os = $($server.OperatingSystem)

if($bootzeit -ne $null) {
"$name;$bootzeit;$beschreibung;$os" | Out-File C:\Laufzeiten.csv -Append
}
else{
"$name;ABFRAGE NICHT MÖGLICH ;$beschreibung;$os" | Out-File C:\Laufzeiten.csv -Append
}

}

 

Das einzige was mich jetzt noch stört, ist das ANzeigeformat des Datums. Mit deim reinen "Get-WmiObjcet" Befehl, bekomme ich das Datum immer im deutschen Format angezeigt.

 

In meiner CSV-Datei ist es allerdings mal deutsch mal englisch, unabhänging vom Betriebssystem.

 

Kann mir da jemand helfen ?

Edited by Kuddel071089
Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...