Muista lukea sarjan aiemmat artikkelit:
- Opi käyttämään automaattista Windowsia PowerShellillä
- Learning käyttämään Cmdlets PowerShellissä
- Oppiminen esineiden käyttämisessä PowerShellissä
Ja pysy kuulolla koko sarjan koko viikon ajan.
Oletusmuotoilu
Kun aloin ensin PowerShellin kanssa, ajattelin, että kaikki on taikaa, mutta totuus on vain vähän aikaa ymmärtää, mitä tapahtuu huuvan alla. Sama koskee PowerShell-muotoilujärjestelmää. Itse asiassa, jos suoritat Get-Service-cmdletin, tuotettu tuotos näyttää vain kolme ominaisuutta: Tila, Nimi ja DisplayName.
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Jos käytämme notepadin Find-toimintoa, voimme siirtyä nopeasti osioon, joka kertoo Get-Service-cmdlet-tuotoksen etsimällä ServiceController-tyypin.
Tietojen muotoilu
Jos et ole tyytyväinen objektin tai tyypin oletusmuotoiluun, voit rullata oman muotoilun. Sinun on tiedettävä kolme cmdletkiä.
- Format-List
- Muoto-Taulukko
- Format-Wide
Format-Wide yksinkertaisesti kerää kokoelma esineitä ja näyttää kunkin objektin yhden ominaisuuden. Oletusarvoisesti se etsii nimen ominaisuutta; jos objektisi ei sisällä nimi-ominaisuutta, se käyttää objektin ensimmäistä ominaisuutta, kun ominaisuudet on lajiteltu aakkosjärjestykseen.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Tämä taulukkoluku tosiasiallisesti sopii hyvin tällaiseen tietoon, mutta haluaa esittää, että haluamme tarkastella sitä luettelomuodossa. Meidän täytyy vain tehdä se Format-List.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Muoto-Taulukko, toisaalta ottaa tiedot ja muuttaa sen taulukkoon. Koska Get-Processin tiedot ovat jo taulukon muodossa, voimme käyttää sitä helposti valitsemaan ne kohteet, jotka haluamme näyttää taulukossa. Käytin AutoSize-parametria, jotta kaikki tiedot sopisivat yhteen näyttöön.
Get-Process | Format-Table name,id –AutoSize
Suodatus ja vertailu
Yksi parhaista tavoista käyttää objektipohjaista putkistoa on se, että voit suodattaa esineitä putkesta missä tahansa vaiheessa Where-Object-cmdletin avulla.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (yhtäläinen)
- neq (ei yhtäläinen)
- gt (suurempi kuin)
- ge (Greater Than tai Equal To)
- lt (vähemmän kuin)
- le (alle tai yhtä)
- (Wildcard String Match)
Täydellinen luettelo ja lisätietoja löytyvät noin_comparison-käsitteellisestä ohjetiedostosta, mutta jos-Obeject-syntaksia käytetään jonkin aikaa. Se on kaikki tällä kertaa!