Jaa tämä viesti:

PowerShell-profiili on komentosarja, joka käynnistyy PowerShellin käynnistyessä ja jolla on tietty nimi.

PowerShell tukee useita profiileja käyttäjille ja isäntäohjelmille. Kun puhumme isäntäohjelmista, ajattelemme ensisijaisesti Windows PowerShell Consolea ja Windows PowerShell ISE:tä. Se ei kuitenkaan luo profiileja puolestasi, joten jatka tämän artikkelin lukemista ja näytän sinulle, miten profiileja luodaan ja muokataan mahtavien esimerkkien avulla.

Voimme luoda 3 profiilitiedostoa jokaiselle järjestelmässä olevalle käyttäjälle, yhden jokaiselle isäntäohjelmalle (Windows PowerShell Console ja ISE) ja yhden kaikille isäntäohjelmille.

Lisäksi on mahdollista luoda 3 profiilitiedostoa kaikille käyttäjille, jos haluamme soveltaa joitain kaikkiin käyttäjiin sovellettavia mukautuksia.

TÄRKEÄÄ: Jos sinulla on erillinen asennus PowerShellin versiosta 6, voimme luoda 4 lisäprofiilia. Kaksi profiilitiedostoa käyttäjäkohtaisesti ja kaksi profiilitiedostoa kaikille käyttäjille.

Sisällysluettelo

PowerShellin profiilikomennot, isännät, profiilien nimet, profiilien sijainnit

Tässä taulukossa näkyvät profiilityypit, komento, jolla voidaan testata, onko profiilia olemassa, ja jonka avulla voimme halutessamme luoda niitä, mitä isäntää tämä profiili koskee, profiilitiedoston nimi ja profiilitiedoston sijainti.

# Profiilin tyyppi Komento Host Profiilitiedoston nimi Profiilitiedoston sijainti
1* Virtaava käyttäjä, Current Host $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\WindowsPowerShell\
2 Kaikki käyttäjät, nykyinen isäntä $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
3 Current User, All Hosts $profile.CurrentUserAllHosts Console, ISE Profile.ps1 $HOME\ Documents\WindowsPowerShell\
4 All Users, All Hosts $profile.AllUsersAllHosts Konsoli, ISE Profile.ps1 $PSHOME\
5** Virranomainen käyttäjä, Nykyinen isäntä $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\ Documents\WindowsPowerShell\
6** Kaikki käyttäjät, Nykyinen isäntä $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME\

Taulukko 1 – PowerShellin profiilityypit, komennot, isännät, tiedostojen nimet, tiedostojen sijainnit

* $profilen sijasta voimme käyttää $profile.CurrentUserCurrentHost-komentoa.

** Suorita komento Windows PowerShell ISE -konsolista.

Muuttujien $HOME ja $PSHOME oikeiden arvojen löytämiseksi PowerShell-asennuksestasi suorita seuraavat komennot:

$HOME

Vakiintuneesti $HOME:n arvo on C:\Users\käyttäjänimi

$HOME-arvo
$PSHOME

Vakiintuneesti $PSHOME:n arvo on C:\Windows\System32\WindowsPowerShell\v1.0

$PSHOME-arvo

MUISTUTUS: Jos sinulla on erillinen asennus PowerShellin versiosta 6, voimme luoda lisäprofiileja. Kaksi per nykyinen käyttäjä ja kaksi kaikille käyttäjille.

# Profiilin tyyppi Komento Host Profiilitiedoston nimi Profiili Tiedoston sijainti
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\PowerShell\
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME\ Documents\PowerShell\
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME\

Taulukko 2 – PowerShell v6 Profiilityypit, komennot, isännät, tiedostonimet, tiedostojen sijainnit

Vakiintuneesti $HOME:n arvo on C:\Users\user_name

$HOME-arvo PowerShell v6:lle

Usually, value for $PSHOME is C:\Program Files\PowerShell\6

$PSHOME-arvo PowerShell v6:lle

Huomautus: Dokumenttien kansioiden nimien ero PowerShell v6:n kansiossa on PowerShell ja aiempien PowerShell-versioiden kansioiden nimi on WindowsPowerShell.

PowerShell-profiilin luominen vaihe vaiheelta

Tässä näytän tarkalleen, miten PowerShell-profiili luodaan.

PowerShell-profiilin luominen nykyiselle käyttäjälle ja nykyiselle isäntäkoneelle

Tämä on oletusarvoinen Windows PowerShell-profiili.

Seuraa näitä vaiheita luodaksesi PowerShell-profiilin konsolille isäntänä ja nykyiselle käyttäjälle:

Vaihe 1: Avaa Windowsin PowerShell-konsoli (nykyinen isäntä).

Window PowerShell-konsoli

Vaihe 2: Ensin testataan, onko profiili olemassa PowerShell-asennuksessamme vai ei. Kirjoitetaan seuraava komento Window PowerShell-konsoliin ja painetaan ENTER-näppäintä.

Test-Path $PROFILE

MUISTUTUS: Parametrin arvo Test-Path CmdTaulukosta 2 – Komento-sarakkeesta saadaan. ($profile, $profile.CurrentUserAllHosts, jne)

Vaihe 3: Jos edellisen komennon tulos on false, profiilia ei ole olemassa, joten siirry vaiheeseen 4. Jos tulos on true, profiilitiedosto on olemassa, joten siirry vaiheeseen 5

Profiilitiedostoa ei ole olemassa (false)

Vaihe 4: Koska profiilia ei ole olemassa, luomme sellaisen seuraavalla komennolla, jonka kirjoitat ja painat ENTER.

New-Item -Type File -Force $PROFILE
Profiilitiedosto on luotu
Microsoft.PowerShell_profile.ps1 – Profiili nykyiselle käyttäjälle ja konsoli isäntänä

Vaihe 5: Profiili on luotu ja voimme avata profiilitiedoston PowerShell ISE:ssä seuraavalla komennolla PowerShell ISE:ssä, jonka kirjoitamme ja painamme ENTER.

ise $PROFILE
Avaa Windows PowerShell ISE:ssä profiilitiedosto

Vaihe 6: Tyhjä profiilitiedosto on avattu Windows PowerShell ISE:ssä

Windows PowerShell ISE avasi tyhjän profiilitiedoston Microsoft.PowerShell_profile.ps1

Vaihe 7: Jatka esimerkkiin 1 nähdäksesi, miten tätä profiilia mukautetaan.

PowerShell-profiilin luominen nykyiselle käyttäjälle ja kaikille isännille

Seuraa seuraavia vaiheita PowerShell-profiilin luomiseksi:

Vaihe 1: Avaa Windows PowerShell Console (Tämä on vain valitsemasi isäntä komentojen suorittamiseksi, ja voimme tehdä nämä vaiheet myös Windows PowerShell ISE:stä käsin).

Vaihe 2: Ensin testataan, onko Profiili olemassa tai ei olekaan PowerShell-asennuksessa. Kirjoitetaan seuraava komento Window PowerShell-konsoliin ja painetaan ENTER-näppäintä.

Test-Path $PROFILE.CurrentUserAllHosts

MUISTUTUS: Parametrin arvo Test-Path CmdTaulukosta 2 – Komentosarake. ($profile, $profile.CurrentUserAllHosts, jne)

Vaihe 3: Jos edellisen komennon tulos on false, profiilia ei ole olemassa, joten siirry vaiheeseen 4. Jos tulos on true, profiilitiedosto on olemassa, joten siirry vaiheeseen 5

Profiilitiedostoa ei ole olemassa (false)

Vaihe 4: Koska profiilia ei ole olemassa, luomme sellaisen seuraavalla komennolla, jonka kirjoitat ja painat ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Profiilitiedosto on luotu
Tiedosto profile.ps1 – Nykyisen käyttäjän ja kaikkien isäntien profiili

Vaihe 5: Profiili on luotu ja voimme avata profiilitiedoston PowerShell ISE:ssä seuraavalla komennolla ja painaa ENTER.

ise $PROFILE.CurrentUserAllHosts

Vaihe 6: Tyhjä profiilitiedosto on avattu Windows PowerShell ISE:ssä

Windows PowerShell ISE avasi tyhjän profiilitiedoston profile.ps1

Vaihe 7: Jatketaan esimerkillä 2, jotta nähdään, miten profiilia voidaan mukauttaa.

Toistetaan prosessi muille profiilityypeille ainoa asia on käyttää oikeaa muuttujan arvoa komento-sarakkeessa taulukosta 1 – PowerShellin profiilityypit, komennot, isännät, tiedostonimet, tiedostojen sijainnit.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMINT: Kun haluat luoda profiilin Windows PowerShell ISE:lle isäntänä, sinun on avattava Windows PowerShell ISE ja seurattava vaiheita suorittamalla komennot Windows PowerShell ISE -konsolista (katso alla oleva kuvakaappaus)

Windows PowerShell ISE-konsoli ja vastaava profiilitiedosto ISE:lle isäntänä

Windows PowerShell -profiilin muokkaaminen esimerkkien avulla

Esimerkki 1 – Konsolin profiili isäntänä ja nykyiselle käyttäjälle (Nykyinen käyttäjä – Nykyinen isäntä)

Profiilin nimi: Microsoft.PowerShell_profile.ps1
Profiilin sijainti: $Home\Documents\WindowsPowerShell\
Käytetään: Microsoft.PowerShell_profile.ps1
Profiilin nimi: Microsoft: Tässä esimerkissä olen muuttanut fontin taustavärit luettavammiksi.

Tässä on Microsoft.PowerShell_profile.ps1-profiilitiedoston koodi. Kopioi vain koodi profiilitiedostoon ja tallenna muutokset, jotta saat saman väriskaavan tai muokkaat sen haluamaksesi.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Microsoft.PowerShell_profile.ps1 -profiilitiedoston koodi

Joissain vanhemmissa järjestelmissä Set-PSReadLineOption CmdLet-asetus oli hieman erilainen kuten alla olevassa esimerkissä.

Set-PSReadlineOption -TokenKind String -ForegroundColor MagentaSet-PSReadlineOption -TokenKind Operator -ForegroundColor CyanSet-PSReadlineOption -TokenKind Parameter -ForegroundColor Cyan 

Fontin värit on muutettu tästä…

PowerShell-konsolin fontin värit ilman profiilin mukauttamista.

…tähän.

PowerShell Console fontin värit profiilin mukauttamisen jälkeen.

Käytä Get-PSReadLineOption CmdLet nähdäksesi kelvolliset Color Arguments (väriargumentit) ja nykyiset argumenttiarvot (värit).

Get-PSReadLineOption CmdLet ja nykyiset värit skeema

Esimerkki 2 – Profiili sekä Windows PowerShell -konsolia että ISE:tä varten isäntäkoneina (Nykyinen käyttäjä – Kaikki isännät)

Profiilin nimi: profile.ps1
Profiilin sijainti: $Koti\Dokumentit\WindowsPowerShell\
Käytetään seuraaviin tarkoituksiin: Windows PowerShell\
Varustetaan:

Tässä esimerkissä lataan omat PowerShell-moduulini joillekin kirjoittamilleni CmdLeteille, jotka ovat osa Efficiency Booster PowerShell -projektia. Tämä projekti on kirjasto omista CmdLeteistäni, jotka on järjestetty useisiin moduuleihin, ja suosittelen lämpimästi lataamaan projektitiedostojen zip-tiedoston ja testaamaan sitä omassa ympäristössäsi, jotta voit seurata minua tämän blogin artikkeleissa.

Tässä ovat komennot moduulien ja profiilitiedoston sisällön tuomiseksi.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profiili.ps1 profiilitiedoston koodi

Voidaan nopeasti testata, että tuodut moduulit todella ladataan, kun avataan PowerShell-konsoli seuraavalla komennolla:

Get-Module -ListAvailable
Profiilitiedostossa olevat tuodut moduulit latautuvat PowerShell-konsoliympäristössä

Ymmärtääksemme paremmin PowerShell-profiilien, moduulien ja CmdLetien linkittämistä toisiinsa lukekaa tämän postauksen seuraava alaotsikko Kuinka järjestää omat PowerShellin CmdLetit PowerShell-moduuleihin ja minkä profiilin avulla tuo rakenne järjestetään ja Kuinka linkitämme yhteen PowerShell-profiilin, -moduulin ja -CmdLetin.

Esimerkki 3 – Profile for ISE as Host (Current User – Current Host)

Profile Name: Microsoft.PowerShellISE_profile.ps1
Profiilin sijainti: $Home\Documents\WindowsPowerShell\
Käytetään seuraaviin tarkoituksiin: Tässä esimerkissä olen tuonut moduulin, joka pitää sisällään CmdLetit, jotka ovat Window PowerShell ISE:n lisäosia.

Tässä on komento, joka on kopioitava profiilitiedostoon.

Import-Module 09addons
Microsoft.PowerShellISE_profile.ps1 profiilitiedoston koodi

Lopputuloksena meillä on Windows PowerShell ISE:ssä kaksi lisäosaa. Lue nämä kaksi artikkelia, jotta tiedät enemmän siitä, miten ne koodataan.

  • How To Write Advanced Functions Or CmdLet’s With PowerShell (Fast)
  • How To Write PowerShell Function’s Or CmdLet’s Help (Fast)
Windows PowerShell ISE:n lisäosa (Add-).ons

Voidaan nopeasti testata, että tuodut moduulit todella ladataan, kun avataan PowerShell-konsoli seuraavalla komennolla:

Get-Module -ListAvailable
Tuotu moduuli profiilitiedostossa ladataan PowerShell ISE -ympäristöön

Huomautus: Windows PowerShell ISE Tuo neljä mallia kahdesta profiilitiedostosta ( profile.ps1 ja Microsoft.PowerShellISE_profile.ps1 ).

Esimerkki 4 – Profiili sekä Windows PowerShell -konsolia että ISE:tä varten isäntänä (Kaikki käyttäjät – Kaikki isännät)

Profiilin nimi: profile.ps1
Profiilin sijainti: $PSHOME\
Käytetään: Tässä esimerkissä olen muuttanut vain ikkunan PowerShell-konsolin ja ISE:n otsikon sekä Current Userille että Administratorille.

Tässä on Profile-tiedoston koodi:

$NTIdentity = ::GetCurrent()$NTPrincipal = new-object Security.Principal.WindowsPrincipal $NTIdentity$IsAdmin = $NTPrincipal.IsInRole(::Administrator)$hostversion="v$($Host.Version.Major).$($Host.Version.Minor)"$hostname = $host.NameIF ($IsAdmin){ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion - Running as ADMINISTRATOR" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion - Running as ADMINISTRATOR" }}Else{ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion" }}

Voit nähdä, että sekä PowerShell-konsolin että ISE:n otsikoissa on mukautettu teksti, isännän nimi ja PowerShellin versio otsikossa.

Konsolin otsikon mukautettu teksti
Konsolin otsikon mukautettu teksti, kun sitä ajetaan järjestelmänvalvojana
Mukautettu teksti. for Windows PowerShell ISE Title

Hyödyllisiä PowerShell-komentoja profiileihin liittyen

Tässä on muutamia hyödyllisiä PowerShell-komentoja, joiden avulla saat tietoa profiileista.

Minkä tahansa profiilikomennon suorittamisen tuloksena saat profiilitiedoston sijainnin.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Profiilikomennot

TÄRKEÄÄ: Kun haluat löytää profiilitiedoston sijainnin Windows PowerShell ISE:lle isäntänä, sinun on avattava Windows PowerShell ISE ja suoritettava profiilikomennot Windows PowerShell ISE:n konsolista

Käyttämällä Test-Path-komentoa (Test-Polku CmdLet) voit tarkastaa, onko profiilitiedostoa olemassa järjestelmässä vai ei. Jos saat tulokseksi True profiili on olemassa ja false tarkoittaa, että profiilitiedostoa ei ole olemassa. Käytä komentoja taulukosta 1 – PowerShellin profiilityypit, komennot, isännät, tiedostonimet, tiedostojen sijainnit muiden profiilityyppien tarkistamiseen riippumatta siitä, onko niitä olemassa vai ei.

Test-Path $PROFILE

Tämä koodirivi luo profiilitiedoston. Käytä komentoja taulukosta 1 – PowerShellin profiilityypit, komennot, isännät, tiedostonimet, tiedostojen sijainnit luodaksesi muita profiilityyppejä.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Jos haluat lukea profiilitiedoston sisällön joko Notepadissa tai Window PowerShell ISE:ssä, käytä näitä kahta komentoa.

ise $PROFILEnotepad $PROFILE

Henkilökohtaisesti pidän enemmän Windows PowerShell ISE:stä, koska se on kätevämpi ympäristö PowerShell-koodin kirjoittamiseen.

Käytä tätä koodiriviä saadaksesi profiilien sijainnit kaikille profiilityypeille.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Profiilitiedostojen sijainnit

Tarkista nämä kaksi muuttujaa saadaksesi PowerShellin asennus- ja kotihakemiston sijainnin.

$pshome$home 

Kuinka valita käytettävä profiilitiedosto

Jos käytät useita isäntäsovelluksia, kuten Windows PowerShell Consolea ja ISE:tä, laita kaikki mukautukset nykyisen kirjautuneen käyttäjän profiiliin $PROFILE.CurrentUserAllHosts. Olen esimerkiksi luonut omat CmdLets-ohjelmat, jotka on järjestetty moduuleihin, joten laitan komennot näiden moduulien lataamiseksi tähän profiiliin, koska haluan, että moduulit ladataan sekä PowerShell-konsolin että ISE:n avaamisen yhteydessä. Katso esimerkki 2 havainnollistamiseksi.

Jos haluat tehdä erityisiä mukautuksia isäntäsovellukseen, laita kaikki mukautuskoodi kyseistä isäntäsovellusta koskevaan profiiliin. Esimerkiksi muutan PowerShell Consolen fonttien taustaväriä, jotta ne näkyvät paremmin, tai olen ladannut moduuleja, jotka ovat ISE:n lisäosia. Olen näyttänyt tämän esimerkissä 1 PowerShell Consolea varten ja esimerkissä 3 PowerShell ISE:tä varten.

Jos sinun täytyy muokata PowerShelliä monille käyttäjille ja olet järjestelmänvalvoja, niin noudata seuraavia vinkkejä:

  • Tallenna yleisimmät mukautukset $PROFILEen.AllUsersAllHosts -profiiliin, koska se on laajin
  • Jos haluat mukauttaa Windows PowerShellin kaikille käyttäjille, mutta isäntäsovelluskohtaisesti. Esimerkiksi erilainen räätälöinti Windows PowerShell Consolea varten ja toinen räätälöinti Windows PowerShell ISE:tä varten, niin laita koodi $PROFILE.AllUsersCurrentHost-profiileihin
  • Kirjoita koodi tietyille käyttäjille käyttäjäkohtaisiin profiileihin. Periaatteessa tämä tarkoittaa joko $PROFILE.CurrentUserAllHosts tai $PROFILE.CurrentUserCurrentHost -profiilin käyttämistä.

Kuinka suorittaa konsoli tai ISE ilman ladattuja profiileja

Avaa suorita-valintaikkuna Win + R ja avaa PowerShell vaihtoehdolla -NoProfile.

PowerShell.exe -NoProfile

Varoitus: PowerShellin latausaika

Kun käytössä on suurempi ja monimutkaisempi profiili, se voi alkaa vaikuttaa siihen, kuinka nopeasti PowerShell avautuu. Voit selvittää vianmääritystä varten, onko profiilisi vastuussa PowerShellin huonoista latausajoista, avaamalla suoritusvalintaikkunan Win + R ja avaamalla PowerShellin vaihtoehdolla -NoProfile.

PowerShell.exe -NoProfile

Profiilit ja etäistunnot

PowerShellin profiileja ei ajeta automaattisesti etäistunnoissa, joten profiileihin lisätyt komennot eivät ole läsnä etäistunnossa. Lisäksi automaattista $PROFILE-muuttujaa ei täytetä etäistunnoissa.

Profiilin ajaminen istunnossa tapahtuu Invoke-Command CmdLet -komennolla.

Esimerkiksi seuraava komento ajaa ”Nykyinen käyttäjä, nykyinen isäntä” -profiilin paikallisesta tietokoneesta istunnossa $s.

Invoke-Command -Session $s -FilePath $PROFILE

Omien PowerShell CmdLetien järjestäminen PowerShell-moduuleihin ja -profiileihin

Jotta ymmärtäisit PowerShell-profiilin, moduulin ja CmdLetien välisen yhteyden, olen luonut Efficiency Booster PowerShell -projektin, jossa on paljon omia CmdLet-ohjelmiani, jotka on järjestetty useisiin moduuleihin, jotka ladataan jokaiseen PowerShell-istuntoon, jossa on mukana PowerShell-profiili, milloin tahansa avaankin Windows-powerShell-konsolin tai -ISEn.

Lataa rohkeasti zip-tiedosto, joka sisältää projektin koodin, jotta voit helposti seurata mukana. ReadMe.txt-tiedostossa on selitys asennus- ja muokkausvaiheista, joten lue kyseisen tiedoston ohjeet. Vielä paremmin voit lukea asennus- ja muokkausohjeet lukemalla seuraavan artikkelin How To Install And Configure PowerShell: CmdLets, Modules, Profiles.

Käytän kirjakaupan, kirjahyllyn ja kirjojen analogiaa selittääkseni Powershell Profile, Module ja CmdLet -profiilin, moduulin ja CmdLet -profiilin välisen yhteyden.

Kuvitellaan esimerkiksi, että haluaisit oppia lisää PowerShell-skriptiohjelmoinnista ja haluaisit ostaa joitakin kirjoja aiheesta kirjakaupasta.

Kävellessäsi kirjakauppaan näet monia hyllyjä, joissa on erilaisia tarroja kirjaosastoille, kuten Taide, Liiketalous, Tietokoneet, Kirjallisuus, Matkailu jne. Tietenkin kävelet hyllylle, jossa on merkintä Tietokoneet, ja löydät sieltä kirjan, jossa selitetään PowerShell Scripting, jonka haluat ostaa.

Palaamme nyt PowerShellin maailmaan ja yhdistämme analogiatarinan PowerShelliin:

  • CmdLet, jota käytämme PowerShellin mukana toimitettuna, tai jokin itse kirjoittamamme CmdLet, on kirja.
  • Tuon CmdLetin koodi on kirjan sisältö.
  • PowerShell-moduuli on jonkin kirjakaupan osaston kirjahylly, kuten esimerkiksi Tietokoneet-kirjakaupan osaston hylly, johon kirjamme on laitettu.
  • Lopuksi PowerShell-profiili on itse kirjakauppa.

Joka kerta kun avaamme Windows PowerShell konsolin tai ISE:n, avaamme istuntomme ja tämän istunnon mukana ladattavat profiilitiedostot ja räätälöinnit on tehty, jotta PowerShell-ympäristömme voidaan asettaa haluamallamme tavalla.

Moduulien ja CmdLetien kohdalla. Profiilitiedosto tuo moduulit ja Moduuli lataa jokaisen CmdLet-skriptin, joka kuuluu kyseiseen Moduuliin.

Koska haluan käyttää omia CmdLet-skriptejäni sekä Windows PowerShell -konsolissa että ISE-isäntäsovelluksissa, luon mieluummin $profile.CurrentUserAllHosts -profiilityyppi, joka ei ole muuta kuin Profile.ps1-tiedosto, joka on luotu:

  • $Home\ Documents\WindowsPowerShell\-kansioon PowerShell-versiolle 5.1 ja vanhemmille
  • $Home\ Documents\PowerShell\-kansioon PowerShell-versiolle 6.0.

Miten linkitämme yhteen PowerShell-profiili, moduuli, Ja CmdLet

Tässä on lyhyt kuvaus tuosta PowerShellissä tehdystä rakenteesta

  • Luo PowerShell-profiili
  • Luo Moduulikansio ja tiedostorakenne
  • Muokkaa profiilia tuomaan tarvittavat moduulit
  • .

  • Luo CmdLet PowerShell-skripti
  • Kirjoita oma CmdLet-toimintokoodi
  • Muokkaa Moduulitiedosto tuomaan CmdLet-skripti

Kuvitan tämän prosessin Efficiency Boosterin PowerShell-projektin esimerkeillä profiilista, Modules ja CmdLet, jotta kenenkään on helpompi ymmärtää koko prosessi. Kannustan siis jälleen kerran lämpimästi kaikkia asentamaan toimitetun zip-tiedoston.

Seuraa näitä vaiheita luodaksesi PowerShell-profiilin, -moduulin, -CmdLetin ja linkittääksesi ne toisiinsa:

Vaihe 1: Avaa Windowsin PowerShell-konsoli

Vaihe 2: Ensin testataan, onko Profiili olemassa PowerShell-asennuksessamme vai ei. Kirjoita Window PowerShell-konsoliin seuraava komento ja paina ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Vaihe 3: Jos edellisen komennon tulos on false, profiilia ei ole olemassa, joten siirry vaiheeseen 4. Jos tulos on tosi, profiilitiedosto on olemassa, joten siirry vaiheeseen 5

Vaihe 4: Koska profiilia ei ole olemassa, luomme sen seuraavalla komennolla, joka kirjoitetaan ja painetaan ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Vaihe 5: Profiili on luotu ja voimme avata profiilitiedoston PowerShell ISE:ssä seuraavalla komennolla ja painetaan ENTER.

ise $PROFILE.CurrentUserAllHosts

Vaihe 6: Profiilitiedosto on avattu PowerShell ISE:ssä.

Vaihe 7: Nyt meidän on luotava Moduuli-kansiorakenne ja tarvittavat tiedostot.

Vaihe 8: Kansioon, johon loimme profiilitiedostomme, luodaan Moduuli-kansio tarkalla nimellä Modules. Tässä säilytämme kaikkien Moduulien kansiorakennetta.

Moduulit-kansio

Vaihe 9: Moduulit-kansioon luodaan kansiot jokaiselle haluamallesi Moduulille. Olen esimerkiksi luonut Efficiency Booster PowerShell Project -projektiin seuraavat moduulit:

Moduulit Efficiency Booster PowerShell Project -projektiin

Step 10: Jokaiseen Moduulikansioon luodaan tiedosto, jonka tiedostopääte on .psm1 ja jonka nimi on täsmälleen sama kuin Moduulikansion nimi. Esimerkiksi 03common-kansioon luomme tiedoston 03common.psm1

PowerShell-moduulin tiedosto psm1

Vaihe 11: Vaihtoehtoisesti voimme luoda manifest-tiedoston (.psd1-päätteinen) jokaiselle moduulille, joka kuvaa tarkemmin kyseistä kansiota.

Vaihe 12: Samaan moduulikansioon luomme .ps1-päätteisen tiedoston (tavallinen PowerShell-skriptitiedosto), johon kirjoitamme oman CmdLet-koodimme. Voimme esimerkiksi luoda GetCPUInfo.ps1-tiedoston, johon kirjoitamme koodin omalle Get-CPUInfo CmdLetillemme.

Get-CPUInfo CmdLet -skriptitiedosto

Vaihe 13: Nyt olemme valmiita kirjoittamaan oman CmdLet-koodin ja skriptin. Tutustu vapaasti esimerkkiin Get-CPUInfo ja muihin Efficiency Booster PowerShell -projektin CmdLeteihin. Tulevissa viesteissä kirjoitan tarkemmin jokaisesta projektin CmdLetistä. Lataa toistaiseksi projektin lähdekoodi täältä.

Get-CPUInfo CmdLet lähdekoodi

Vaihe 14: Linkitä CmdLet-skripti oikeaan PowerShell-moduuliin. Avaa moduulin .psm1-tiedosto ja kirjoita tämä koodirivi:
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
Kirjoitetaan esimerkiksi Get-CPUInfo CmdLetille tämä koodirivi tiedostoon 03common.psm1-tiedosto:

. $psScriptRoot\GetCPUInfo.ps1 
Linkki CmdLet-skriptitiedoston ja moduulin välillä

Vaihe 15: Profiili-skriptitiedostossa tuomme moduulin, joka sisältää CmdLet-skriptitiedostomme, joten kirjoitamme tämän komennon profiilitiedostoon.
Import-Module ModuleName
Esimerkiksi Get-CPUInfo CmdLet-skriptimme on osa 03common-moduulia, joten kirjoitamme tämän koodin profiiliin:

Import-Module 03common
Profiilin ja Moduulin välinen linkki

Vaihe 16: Toistamme vaiheet 9 -15 jokaiselle Moduulillemme ja CmdLetillemme, jotka haluamme sisällyttää profiiliimme ja jotka ladataan jokaisella käynnistämämme PowerShell-istunnon yhteydessä.

Vaihe 17: Testaamme, että kaikki tuodut moduulit ladataan, kun avaamme tietyn isännän. Voimme listata moduulit seuraavalla komennolla:

Get-Module -ListAvailable
Load modules in PowerShell Console Environment

Vaihe 18: Voimme testata, että kaikki kunkin moduulin sisältämät CmdLetit on ladattu ympäristöön. Tässä on hyödyllinen esimerkkikomento:

Get-Command -Module 02utils
Ladatut CmdLetit PowerShell-konsoliympäristössä 02utils-moduulille

Hyödyllisiä PowerShell-profiiliartikkeleita

.

Vastaa

Sähköpostiosoitettasi ei julkaista.