At få Computer Uptime ved hjælp af Po .ershell

0 Comments

Computer uptime er en vigtig statistik i systemstyring. Her er flere af måderne, hvorpå vi kan bestemme systemets oppetid for en computer (Bemærk, at denne liste på ingen måde er udtømmende):

1. Task Manager ‘ s fane Performance viser computerens oppetid som Dage, Timer, minutter og sekunder.

2. Kommandolinjeværktøjet Systeminfo viser computerens sidste opstartstid.

3. Den seneste begivenhed ID 6005 i computerens system hændelseslog registrerer computerens sidste opstartstid.

4., Classmi classin32_operatingsystem-klassen har en LastBootUpTime-egenskab, der indeholder computerens sidste starttid.

hver af disse teknikker har deres fordele og ulemper. For eksempel giver Task Manager Hurtig synlighed for en enkelt computers oppetid, og hændelsesloggen indeholder yderligere oplysninger omkring 6005-begivenheden, der kan give indsigt i et systemfejl. De første tre valg er sandsynligvis ikke det bedste til automatiseringsformål (f.forespørgsel om en liste over servere til oppetid), så lad os se på .mi. Først skal vi dog se på, hvordan .mi returnerer oppetidsinformation.,

brug af HMI for at få computerens oppetid

Der er flere måder, vi kan hente en computers oppetid ved hjælp af .mi. En af de mest oplagte måder, før Windowsindo .s Po .ershell, var at bruge commandmic-kommandoen. For eksempel:

denne kommando henter LastBootUpTime-egenskaben for klassen instancein32_operatingsystem på computeren., I PowerShell, vi ville bruge de Få-WmiObject cmdlet snarere end WMIC:

Prøv disse kommandoer selv, og du vil se at produktionen er ikke nødvendigvis “brugervenlig”, fordi den dato og tid, der er udtrykt i de LastBootUpTime ejendom, der er formateret som en CIM (Common Information Model) datetime streng. For eksempel:

denne datetime-streng oversættes til maj 12, 2016, 15:48:36 (3:48pm). 125599 er antallet af mikrosekunder (vi ignorerer dem), og -360 repræsenterer antallet af minutters forskydning fra GMT., I dette eksempel betyder -360, at tiden er 6 timer bag GMT. (På samme måde ville +180 betyde “3 timer foran GMT.”)

for at gøre CIM datetime-strengen mere brugbar, bliver vi nødt til at konvertere den til en brugbar Dato (et DateTime-objekt). Heldigvis gør Po .ershell dette enkelt: ToDateTime statisk metode til systemet.Forvaltning.ManagementDateTimeConverter. net class konverterer CIM datetime-strengen til et DateTime-objekt, vi lettere kan bruge i Po .ershell. Figur 1 viser et eksempel.,

Figur 1 – Konvertering af computerens sidste boot-tid i DateTime

I Figur 1, $dateTime variablen indeholder datoen og tidspunktet for den aktuelle computer var sidste startet op. For at få output af oppetiden (snarere end dato og klokkeslæt for den sidste opstart), kan vi trække det fra den aktuelle tid (Get-Date), hvilket resulterer i et TimeSpan-objekt, der indeholder forskellen. Figur 2 viser et eksempel på dette.,

Figur 2 – Konvertering af computerens sidste boot-tid i en læsbar oppetid

Den første kommando i Figur 2 udgør en Tidshorisont objekt, der indeholder forskellen mellem den aktuelle dato og tid og de sidste boot-tid (den $dateTime objekt, vi oprettede i Figur 1). Den anden kommando udgange Tidshorisont objekt, og den sidste kommando -f operatør til produktion af Tidshorisont som en læsbar formateret streng, der fortæller os, at den nuværende computer har været op til 4 dage, 19 timer, 56 minutter og 44 sekunder.,

Hent den sidste opstartstid fra en fjerncomputer

eksemplerne i Figur 1 og 2 er målrettet mod den lokale computer. Hvordan kan vi målrette mod en fjerncomputer? Heldigvis WMI giver os mulighed for at hente oplysninger om en fjerncomputer ved hjælp af parameteren-ComputerName. WMI giver os også mulighed for at specificere alternative legitimationsoplysninger til en fjerncomputer i et PSCredential-objekt. Figur 3 viser et eksempel på at få den sidste opstartstid for en computer ved navn server1.,

Figur 3 – Få den sidste boot tid fra en fjerncomputer

Den første kommando i Figur 3 bliver en PSCredential objekt til $cred-variabel, og den anden kommando får CIM datetime streng, der indeholder den sidste boot-tid for computeren server1 (bemærk -Computernavn og -Credential-parametre). Den tredje kommando konverterer den sidste opstartstid til et DateTime-objekt, og den sidste kommando udsender den sidste opstartstid for computeren.

sætte det hele sammen – Get-Uptime.,ps1 Script

eksemplerne vist i Figur 1 og 2 viser, hvordan man får computerens sidste opstartstid og viser som en letlæselig streng, og figur 3 viser, hvordan man får en fjerncomputers sidste opstartstid. Selvfølgelig er der ingen grund til at huske alle nuancerne, hvis vi indkapsler logikken i et brugervenligt script. Get-Uptime. ps1 scriptet gør alt det hårde arbejde for os. Scriptets syntaks er som følger:

parameteren-Computernavn er valgfri og navngiver den eller de computere, som du vil have oppetidsinformationen til., Denne parameter understøtter flere objekter, pipeline input, og objekter, der har en ComputerName ejendom. Parameternavnet-Computernavn er valgfrit. Hvis du udelader denne parameter, er standard at udsende oppetidsinformation for den aktuelle computer.

parameteren-legitimationsoplysninger leverer alternative legitimationsoplysninger, hvis du vil forespørge på en eller flere eksterne computere, og din nuværende loggede konto ikke har adgang. Forespørgsel uptime kræver ikke administratorrettigheder på den lokale computer, men det er nødvendigt for eksterne computere.,scriptet udsender objekter med tre egenskaber: Computernavn (computerens Navn), LastBootTime (en DateTime, der indeholder computerens sidste opstartstid) og Uptime (en letlæselig uptime-streng).

kom oppetid for flere computere

figur 4 illustrerer at få oppetiden for tre fjerncomputere på to forskellige måder.,

Figur 4 – optimal oppetid for tre eksterne computere på to forskellige måder

Den første kommando i Figur 4 angiver de tre computere, som en parameter til at Få Oppetid script, og den anden kommando angiver de tre computere, som rørledningen input. Bemærk, at begge kommandoer producerer identisk output (bortset fra at oppetidsstrengene i output fra den anden kommando er lidt senere).da scriptet understøtter pipeline input, kan du endda bruge output fra Get-ADComputer cmdlet til at rapportere om oppetiden for alle computere i en OU., Overvej for eksempel følgende kommando:

(Jeg opdeler kommandoen på flere linjer for at gøre det lettere at læse.) Denne kommando henter navnene på alle computere i serverne OU, vælger kun Navnegenskaben for hver computer (Vælg-objekt-e .pandproperty), sorterer listen over computernavne og får til sidst oppetiden fra hver computer.

computer Uptime Made Easy

Computer uptime er en vigtig metrisk. Der er forskellige måder at få oppetid på, men ikke en enkel måde i Po .ershell. Den Get-Uptime.,ps1-script udfylder dette hul og gør det nemt at få computerens oppetid, uanset om du vil have den aktuelle computers oppetid eller oppetid til eksterne computere.


Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *