Saada Tietokoneen Käytettävyyttä Käyttäen PowerShell
Tietokoneen käyttöaika on tärkeä tilasto järjestelmien hallinta. Seuraavassa on useita tapoja määrittää järjestelmän käyttöaika tietokoneelle (huomaa, että tämä luettelo ei ole suinkaan tyhjentävä):
1. Task Manager ’ s Performance-välilehti näyttää tietokoneen käyttöajan päivinä, tunteina, minuutteina ja sekunteina.
2. Systeminfo-komentorivityökalu näyttää tietokoneen viimeisen käynnistysajan.
3. Tietokoneen Järjestelmätapahtumalokin tuorein tapahtumatunnus 6005 tallentaa tietokoneen viimeisen käynnistysajan.
4., WMI Win32_OperatingSystem-luokassa on LastBootUpTime-ominaisuus, joka sisältää tietokoneen viimeisen käynnistysajan.
jokaisella näistä tekniikoista on hyvät ja huonot puolensa. Esimerkiksi, Task Manager tarjoaa nopean näkyvyyden yksi tietokone on päällä, ja tapahtumaloki sisältää lisää tietoa noin 6005 tapahtuma, joka voi tarjota tietoa järjestelmän vika. Ensimmäiset kolme vaihtoehtoa ovat luultavasti ole paras automaatio tarkoituksiin (esim. hakujen luettelon palvelinten uptime), joten katsotaan WMI. Ensin on kuitenkin katsottava, miten WMI palauttaa käyttöaikatietoja.,
WMI: n avulla saadaan tietokoneen käyttöaika
on useita tapoja hakea tietokoneen käyttöaika WMI: n avulla. Yksi ilmeisimmistä tavoista ennen Windows Powershellia oli käyttää WMIC-komentoa. Esimerkiksi:
Tämä komento hakee LastBootUpTime omaisuutta Win32_OperatingSystem luokka esimerkiksi tietokoneella., Powershellissä, me käyttää Päästä-WmiObject cmdlet sijaan, että WMIC:
Kokeile näitä komentoja itse, ja näet, että lähtö ei välttämättä ole ”käyttäjäystävällinen”, koska päivämäärä ja kellonaika ilmaistaan LastBootUpTime ominaisuus on alustettu kuten CIM (Common Information Model) datetime merkkijono. Esimerkiksi:
Tämä string datetime kääntää Voi 12, 2016, 15:48:36 (3:48pm). 125599 on määrä mikrosekuntia (me sivuuttaa niitä), ja -360 on määrä minuuttia poikkeama GMT., Tässä esimerkissä -360 tarkoittaa, että aika on 6 tuntia GMT: stä jäljessä. (Vastaavasti +180 tarkoittaisi ” 3 tuntia GMT: tä edellä.”)
jotta CIM-datetime-merkkijono olisi käyttökelpoisempi, se on muunnettava käyttökelpoiseksi päivämääräksi (DateTime-objekti). Onneksi PowerShell tekee tämän yksinkertaiseksi: järjestelmän ToDateTime staattinen menetelmä.Hallinta.ManagementDateTimeConverter.NET-luokka muuntaa CIM datetime-merkkijonon DateTime-objektiksi, jota voimme käyttää helpommin Powershellissa. Kuvassa 1 on esimerkki.,
Kuva 1 – Muuntaa tietokoneen viimeisen käynnistyksen aikana osaksi DateTime
Kuvassa 1, $dateTime-muuttuja sisältää päivämäärä ja kellonaika, nykyinen tietokone on viimeksi käynnistetty. Saada lähtö päällä (sen sijaan, päivämäärä ja aika viime boot), voimme vähennä se, että nykyinen aika (Get-Date), joka johtaa Aikaväli objekti, joka sisältää eron. Kuvassa 2 on esimerkki tästä.,
Kuva 2 – Muuntaa tietokoneen viimeisen käynnistyksen aikana luettavaan päällä
ensimmäinen komento Luku 2 luo Aikaväli sisältävä esine ero nykyisen päivämäärän ja ajan ja viime käynnistyksessä aika ($dateTime objektin loimme Kuva 1). Toinen komento tulostaa Aikaväli esine, ja lopullinen komento käyttää -f toimijan tuotos Aikaväli luettavissa alustettu merkkijono, joka kertoo, että nykyinen tietokone on saanut jopa 4 päivää, 19 tuntia, 56 minuuttia ja 44 sekuntia.,
viimeisen käynnistysajan saaminen etätietokoneelta
kuvien 1 ja 2 esimerkit kohdistuvat paikalliseen tietokoneeseen. Miten voimme kohdistaa etätietokoneen? Onneksi WMI: n avulla voimme hakea tietoja etätietokoneesta käyttämällä-ComputerName-parametria. WMI antaa meille myös mahdollisuuden määrittää vaihtoehtoiset tunnukset etätietokoneelle Pscredentiaalisessa objektissa. Kuva 3 näyttää esimerkin server1-nimisen tietokoneen viimeisestä käynnistysajasta.,
Kuva 3 – Saada viimeisen käynnistyksen aikana etätietokoneesta
ensimmäinen komento Kuva 3 saa PSCredential-objektin osaksi $cred muuttuja, ja toinen komento saa CIM-datetime-merkkijono, joka sisältää viimeisen käynnistyksen aikana tietokoneen p1 (huomaa -Tietokonenimi ja -Credential parametrit). Kolmas komento muuntaa viimeisen käynnistyksen aikana osaksi DateTime objektin, ja viimeinen komento tulostaa viimeisen käynnistyksen aikana tietokoneen.
Putting It All Together – the Get-Uptime.,ps1 Script
esimerkkejä kuvissa 1 ja 2 osoittavat, miten päästä tietokoneen viimeisen käynnistyksen aikana ja osoittavat, helppo-to-lue merkkijono, ja Kuvassa 3 on esitetty, miten saada kauko-tietokone on viimeisen käynnistyksen aikana. Tietenkin, ei tarvitse muistaa kaikkia vivahteita, jos me koteloida logiikkaa helppo käyttää script. Get-Uptime. ps1 script tekee meille kaiken kovan työn. Skriptin syntaksi on seuraava:
– Tietokonenimi-parametri on valinnainen ja nimet tietokone(t), jotka haluat saada käytettävyyttä tietoja., Tämä parametri tukee useita esineitä, putkiston Tulo, ja esineitä, joilla on ComputerName ominaisuus. – ComputerName parametrin nimi on valinnainen. Jos jätät tämän parametrin pois, oletuksena on, että tulostat nykyisen tietokoneen käyttöaikatiedot.
– Tunnus parametri toimittaa varajäsenen valtakirjojen jos haluat kyselyn yhden tai useamman etätietokoneet ja nykyisen kirjautuneen tilin ei voi käyttää. Käyttöajan Querying ei vaadi järjestelmänvalvojan oikeuksia paikallisella tietokoneella, mutta sitä tarvitaan etätietokoneissa.,
käsikirjoitus lähdöt kohteita, joissa kolme ominaisuudet: Tietokonenimi (tietokoneen nimi), LastBootTime (DateTime sisältää tietokoneen viime käynnistyksessä aika) ja Käytettävyys (helppo-to-lue käytettävyyttä string).
Saada Käytettävyyttä Useiden Tietokoneiden
Kuva 4 havainnollistaa saada käytettävyyttä kolme kauko-tietokoneet kahdella eri tavalla.,
Kuva 4 – Saada käytettävyyttä kolme kauko-tietokoneet kahdella eri tavalla
ensimmäinen komento Kuva 4 määrittää kolme tietokonetta parametrina Saada Käytettävyyttä käsikirjoituksen, ja toinen komento määrittää kolme tietokoneita kaasuputken tulo. Huomaa, että molemmat komennot tuottaa sama tuotos (paitsi että käytettävyyttä jouset tuotoksen toisesta komento on hieman myöhemmin).
Koska kirjoitus tukee putki tulo, voit jopa käyttää lähtö Get-ADComputer cmdlet raportoida käytettävyyttä kaikissa tietokoneissa on OU., Ajatellaanpa esimerkiksi seuraavaa käskyä:
(Jaan komennon usealle riville, jotta se olisi helpompi lukea.) Tämä komento palauttaa nimet, kaikki tietokoneet Palvelimet OU, valitsee vain Nimi omaisuutta jokainen tietokone (Select-Object -ExpandProperty), lajittelee luettelon tietokoneen nimet, ja lopulta saa käyttöaika kunkin tietokoneen.
Tietokoneen Käyttöaikaa Helppo
Tietokoneen käyttöaika on tärkeä mittari. On olemassa erilaisia tapoja saada käyttöaikaa, mutta ei yksinkertainen tapa PowerShell. Käynnistysaika.,ps1 script täyttää tämän aukon ja helpottaa tietokoneen käyttöajan saamista riippumatta siitä, haluatko saada nykyisen tietokoneen käyttöajan vai käyttöajan etätietokoneille.