A PowerShell
számítógépes üzemidő fontos statisztika a rendszerkezelésben. Íme néhány módszer, amellyel meghatározhatjuk a számítógép rendszer-üzemidejét (vegye figyelembe, hogy ez a lista semmiképpen sem kimerítő):
1. A Feladatkezelő teljesítmény lapján a számítógép üzemideje Nap, Óra, Perc és másodperc.
2. A Systeminfo parancssori eszköz megjeleníti a számítógép utolsó indítási idejét.
3. A legfrissebb eseményazonosító 6005 a számítógép rendszer eseménynaplójában rögzíti a számítógép utolsó indítási idejét.
4., A WMI Win32_OperatingSystem osztály LastBootUpTime tulajdonsággal rendelkezik, amely tartalmazza a számítógép utolsó indítási idejét.
mindegyik technikának megvannak a maga előnyei és hátrányai. Például a Feladatkezelő gyors láthatóságot biztosít egyetlen számítógép üzemidejéhez, az Eseménynapló pedig további információkat tartalmaz a 6005 esemény körül, amelyek betekintést nyújthatnak a rendszer meghibásodásába. Az első három választás valószínűleg nem a legjobb automatizálási célokra (például a kiszolgálók listájának lekérdezése az uptime számára), tehát nézzük meg a WMI-t. Első, bár, meg kell, hogy vessen egy pillantást, hogyan WMI visszatér uptime információ.,
segítségével WMI, hogy a számítógép Uptime
számos módon tudjuk letölteni a számítógép uptime segítségével WMI. Az egyik legnyilvánvalóbb módszer, a Windows PowerShell előtt, a WMIC parancs használata volt. Például:
Ez a parancs beolvassa a Win32_operatingsystem class példány LastBootUpTime tulajdonságát a számítógépen., A PowerShellben a wmic helyett a Get-WmiObject parancsmagot használjuk:
próbálja ki ezeket a parancsokat, és látni fogja, hogy a kimenet nem feltétlenül” felhasználóbarát”, mert a lastbootuptime tulajdonságban kifejezett dátum és idő cim (Common Information Model) datetime karakterláncként van formázva. Például:
Ez a datetime karakterlánc májusra fordul 12, 2016, 15:48:36 (3:48: 00). 125599 a mikroszekundumok száma (ezeket figyelmen kívül hagyjuk), a -360 pedig a GMT-től eltolt percek számát jelenti., Ebben a példában a -360 azt jelenti, hogy az idő 6 óra a GMT mögött. (Hasonlóképpen, a +180 azt jelentené, hogy “3 órával a GMT előtt.”)
ahhoz, hogy a CIM datetime karakterlánc jobban használható legyen, használható dátummá (DateTime objektum) kell konvertálnunk. Szerencsére a PowerShell ezt egyszerűvé teszi: a rendszer ToDateTime statikus módszere.Menedzsment.ManagementDateTimeConverter. Net osztály átalakítja a CIM datetime string egy DateTime objektum tudjuk használni könnyebben PowerShell. Az 1. ábra egy példát mutat.,
1. Ábra – Konvertáló a számítógép utolsó boot idő egy DateTime
1. Ábra, a $dateTime változó tartalmazza az a dátum, amikor a jelenlegi számítógépes volt tegnap elindult. Az uptime (nem az utolsó indítás dátuma és ideje) kimenetét az aktuális időből (Get-Date) tudjuk kivonni, ami a különbséget tartalmazó Időtartamobjektumot eredményez. A 2. ábra egy példát mutat erre.,
2. Ábra – Konvertáló a számítógép utolsó boot időt olvasható uptime
Az első parancs a 2. Ábra létrehoz egy TimeSpan objektum, amely a különbség a között, hogy a jelenlegi időpont, illetve az utolsó rendszerindítás ideje (a $dateTime objektumot hoztunk létre, az 1. Ábra). A második parancs a TimeSpan objektumot adja ki, a végső parancs pedig az-f operátort használja a TimeSpan kiadására olvasható formázott karakterláncként, amely azt jelzi, hogy az aktuális számítógép 4 napig, 19 óráig, 56 percig és 44 másodpercig működik.,
az utolsó indítási idő megszerzése egy távoli számítógépről
az 1.és 2. ábrán látható példák a helyi számítógépet célozzák meg. Hogyan lehet megcélozni egy távoli számítógépet? Szerencsére a WMI lehetővé teszi számunkra, hogy a-ComputerName paraméter segítségével információt szerezzünk egy távoli számítógépről. A WMI lehetővé teszi számunkra, hogy alternatív hitelesítő adatokat adjunk meg egy távoli számítógéphez egy PSCredential objektumban. A 3. ábra egy példát mutat a server1 nevű számítógép utolsó indítási idejének megszerzésére.,
3. Ábra – az utolsó boot idő egy távoli számítógépről
Az első parancs, a 3. Ábra kap egy PSCredential tárgyat a $hitelt változó, a második parancsot kap CIM datetime tartalmazó karakterlánc, az utolsó boot idő a számítógép szerver1 (észre a -Számítógépnév meg -Hitelesítő paraméterek). A harmadik parancs az utolsó indítási időt DateTime objektummá alakítja, az utolsó parancs pedig a számítógép utolsó indítási idejét adja ki.
mindent összerakva-a Get-Uptime.,ps1 Script
A példa mutatja a Számokat 1-2 mutatják, hogy a számítógép utolsó boot időt mutat, mint egy könnyen olvasható, string, valamint a 3. Ábra azt mutatja, hogyan lehet egy távoli számítógép utolsó boot idő. Természetesen nem kell emlékezni az összes árnyalatra, ha a logikát egy könnyen használható szkriptbe ágyazzuk. A Get-Uptime.ps1 szkript mindent megtesz nekünk. A szkript szintaxisa a következő:
a-ComputerName paraméter opcionális, és megnevezi azt a számítógépet(eket), amelyhez az uptime információkat szeretné megkapni., Ez a paraméter több objektumot, pipeline bemenetet, valamint ComputerName tulajdonsággal rendelkező objektumokat támogat. A-ComputerName paraméter neve opcionális. Ha kihagyja ezt a paramétert, az alapértelmezett az aktuális számítógép frissítési információinak kiadása.
a-Credential paraméter alternatív hitelesítő adatokat szolgáltat, ha egy vagy több távoli számítógépet szeretne lekérdezni, és a jelenlegi bejelentkezett fiókja nem rendelkezik hozzáféréssel. Az üzemidő lekérdezése nem igényel rendszergazdai jogosultságokat a helyi számítógépen, de távoli számítógépekhez szükséges.,
a szkript három tulajdonsággal rendelkező objektumokat ad ki: ComputerName( a számítógép Neve), LastBootTime (a számítógép utolsó indítási idejét tartalmazó DateTime), valamint Uptime (egy könnyen olvasható uptime karakterlánc).
több számítógép üzemideje
A 4. ábra szemlélteti a három távoli számítógép üzemidejének két különböző módon történő elérését.,
4. Ábra – az uptime három távoli számítógépek két különböző módon,
Az első parancs, a 4. Ábra megadja a három számítógépek, mint a paraméter az Uptime forgatókönyvet, a második parancs meghatározza a három számítógépek, mint a csővezeték bemenet. Vegye figyelembe, hogy mindkét parancs azonos kimenetet eredményez (azzal a különbséggel, hogy a második parancs kimenetében lévő uptime karakterláncok valamivel későbbiek).
mivel a szkript támogatja a csővezeték bemenetet, a Get-ADComputer cmdlet kimenetét is felhasználhatja az OU összes számítógépének üzemidejének bejelentésére., Vegyük például a következő parancsot:
(a parancsot több sorra osztom, hogy könnyebben olvasható legyen.) Ez a parancs lekéri a szerverek összes számítógépének nevét OU, csak az egyes számítógépek Névtulajdonságát választja ki (Select-Object-ExpandProperty), rendezi a számítógépnevek listáját, végül pedig minden számítógépről megkapja az üzemidőt.
számítógép Uptime Made Easy
számítógép uptime egy fontos mutató. Vannak különböző módon, hogy uptime, de nem egy egyszerű módja a PowerShell. A Felállás.,ps1 script kitölti ezt a rést, és megkönnyíti, hogy a számítógép uptime, nem számít, hogy szeretné-e, hogy az aktuális számítógép uptime vagy uptime távoli számítógépek.