Tässä opetusohjelmassa tutustumme PowerShell-profiileihin ja niiden käyttöön. PowerShell-profiilien avulla voit mukauttaa ympäristöäsi ja lisätä elementtejä jokaiseen PowerShell-istuntoon, jonka käynnistät. PowerShell-profiili on skripti, joka suoritetaan joka kerta, kun käynnistämme PowerShellin. Voit käyttää PowerShell-profiilia kirjautumisskriptinä ympäristön mukauttamiseen. Käyttämällä PowerShell-profiilia voit lisätä komentoja, aliaksia, funktioita, muuttujia, laajennuksia, moduuleja, PSDriveja ja muita istuntokohtaisia elementtejä evnironmetiin. Sinun ei tarvitse tuoda tai luoda niitä uudelleen joka kerta, kun käytät PowerShelliä. Ne ladataan automaattisesti. PowerShell tukee useita profiileja käyttäjille ja isäntäohjelmille. PowerShell ei luo profiileja puolestasi.
Jos haluat istuntokohtaisia komentoja, muuttujia, preferenssimuuttujia, aliaksia, funktioita, komentoja (paitsi Set-ExecutionPolicy) ja usein käyttämiäsi PowerShell-moduuleja, voit käyttää profiileja, jotka ladataan kaikissa tulevissa istunnoissa.
Profiilitiedostot
PowerShell-konsoli tukee seuraavia profiileja:
-
$Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
– Nykyinen käyttäjä, nykyinen isäntä -
$Home\Documents\PowerShell\Profile.ps1
– Nykyinen käyttäjä, kaikki isännät -
$PsHome\Microsoft.PowerShell_profile.ps1
– Kaikki käyttäjät, nykyinen isäntä -
$PsHome\Profile.ps1
– Kaikki käyttäjät, kaikki isännät
Yllä olevat profiilit on esitetty tärkeysjärjestyksessä. Luettelon ensimmäisellä profiililla on korkein etusijajärjestys. Kuten yllä olevista profiileista näkyy, meillä on kaksi muuttujaa. Muuttujat $PSHome
ja $Home
esittävät seuraavat arvot.
-
$PSHome
– Tallentaa PowerShellin asennushakemiston -
$Home
– Tallentaa nykyisen käyttäjän kotihakemiston
Muut ohjelmat, jotka isännöivät PowerShelliä, voivat tukea omia profiilejaan. PowerShell Integrated Scripting Environment (ISE) tukee seuraavia isäntäkohtaisia profiileja.
-
$Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
– Nykyinen käyttäjä, nykyinen isäntä -
$PsHome\Microsoft.PowerShellISE_profile.ps1
– Kaikki käyttäjät, nykyinen isäntä
Microsoftin mukaan PowerShellin ohjeessa ”CurrentUser, Current Host” -profiiliin viitataan useimmiten nimellä ”PowerShell-profiilisi”.
Profiilimuuttuja
PowerShellissä meillä on automaattinen muuttuja nimeltä $Profile
. Kaikki PowerShell-profiilin polut, jotka ovat käytettävissä nykyisessä istunnossa, tallennetaan $Profile
-muuttujaan. Tarkastelemalla $Profile
-muuttujaa näet profiilin polun.
$Profile
-muuttuja tallentaa ”Current User, Current Host” -profiilin polun. Muut profiilit tallennetaan $Profile
-muuttujan huomautusominaisuuksiin.
Muuttujan ominaisuuksien avulla voit määrittää profiilin. Windows PowerShell -konsolissa $Profile
-muuttujassa on seuraavat arvot.
-
$Profile
– Nykyinen käyttäjä, nykyinen isäntä -
$Profile.CurrentUserCurrentHost
– Nykyinen käyttäjä, nykyinen isäntä -
$Profile.CurrentUserAllHosts
– Nykyinen käyttäjä, kaikki isännät -
$Profile.AllUsersCurrentHost
– Kaikki käyttäjät, nykyinen isäntä -
$Profile.AllUsersAllHosts
– Kaikki käyttäjät, kaikki isännät
Muuttujaa pystyt käyttämään komennoissa.
Code:
Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts
Output:
Yllä olevilla komennoilla testataan, onko määritetty profiili luotu. Kuten näet, vastaus on kaikkiin niistä väärä. Kuten olemme jo aiemmin maininneet, profiileja ei luoda oletusarvoisesti. Sinun on luotava ne.
Luo profiili
Luoda profiili
Luoaksesi profiilin sinun on käytettävä seuraavaa komentoa.
Koodi:
New-Item -ItemType File -Path $profile -Force
Ylläoleva komento luo profiilin ”Nykyinen käyttäjä, nykyinen isäntä”.
Huomaa, että ylläoleva komento korvaa minkä tahansa olemassa olevan profiilin. Jos haluat varmistaa, ettet korvaa mitään jo olemassa olevaa profiilia ja menetä jo tekemiäsi muutoksia, voit kokeilla alla olevaa komentoa.
Code:
if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}
Yllä oleva komento tarkistaa, onko profiilia ”All Users, All Hosts” olemassa, ja jos sitä ei ole olemassa, se luo profiilin.
Profiilin luomiseksi sinun on ajettava PowerShell-konsoli järjestelmänvalvojana. Tämä pätee Windows Vistasta ja uudemmista versioista alkaen.
Profiilin muokkaaminen
Jos profiili on olemassa ja haluat tehdä siihen muutoksia tai lisäyksiä, sinun on muokattava profiilia tekstieditorilla. Käyttämällä notepadia on helppo tapa muokata profiilia.
Koodi:
notepad $profile
Kuten alla näkyy, nykyinen profiilini on konfiguroitu niin, että se antaa Tervetuloa-viestin, kun avaan konsolin.
Nyt käytän edellä mainittua komentoa soveltaakseni joitain muutoksia profiiliini.
Alhaalla ovat muutokset, joita olen soveltanut.
Sitten kun olen käynnistänyt PowerShell-konsolin uudelleen, kuten näet muutokset on sovellettu.
Profiiliohjeet
Alhaalla annan joitakin ohjeita profiilien määrittämiseen, kuten Microsoft tarjoaa.
Jos käytät useita isäntäsovelluksia, laita
$Profile.CurrentUserAllHosts
profiiliisi ne kohteet, joita käytät kaikissa isäntäsovelluksissa. Laita isäntäsovelluskohtaiset kohteet, kuten komento, joka asettaa isäntäsovelluksen taustavärin, kyseistä isäntäsovellusta koskevaan profiiliin.Jos olet järjestelmänvalvoja, joka mukauttaa PowerShelliä monille käyttäjille, noudata näitä ohjeita:
- Tallenna yleiset kohteet
$profile.AllUsersAllHosts
-profiiliin- Tallenna isäntäsovelluskohtaiset kohteet isäntäsovelluskohtaisiin
$profile.AllUsersCurrentHost
-profiileihin- Tallenna tietyille käyttäjille tarkoitetut kohteet käyttäjäkohtaisiin profiileihin
Muista tarkistaa isäntäsovelluksen dokumentaatiosta, että siinä mainitaan PowerShell-profiilien mahdollinen erikoistoteutus.
Ei profiilia
Kaikkakin olet luonut profiileja ladattavaksi joka kerta, kun avaat konsolin, voit suorittaa PowerShellin ilman ladattavaa profiilia. Voit tehdä tämän suorittamalla PowerShellin -NoProfile
-parametrilla. Tämä voidaan tehdä cmd.exe-ohjelmasta, Suorita-valintaikkunasta tai itse PowerShellistä.
Code:
PowerShell -NoProfile
Suorituskäytäntö
PowerShellin suorituskäytäntö määrittää, voitko suorittaa komentosarjoja ja ladata määritystiedostoja, myös profiileja. Suorituskäytäntö ”Rajoitettu” on oletusarvoisesti käytössä. Lisätietoja PowerShellin suorituskäytännöstä löydät täältä. Jos käytät ”Rajoitettu”-käytäntöä, se estää kaikkien komentosarjojen suorittamisen, mukaan lukien profiilit. Profiilin sisältöä ei sovelleta. Komento Set-ExecutionPolicy
asettaa ja muuttaa suorituspolitiikan kaikissa PowerShell-istunnoissa, koska arvo tallennetaan rekisteriin. Sitä ei tarvitse asettaa, kun avaat konsolin, tai tallentaa Set-ExecutionPolicy
-komentoa profiiliin.
Profiili etäistunnossa
PowerShell-profiileja ei ajeta automaattisesti etäistunnoissa, joten profiilien lisäämiä komentoja ei ole etäistunnossa. Lisäksi $Profile
automaattista muuttujaa ei täytetä etäistunnoissa.
Jos haluamme ajaa profiilin paikallisesta tietokoneestamme etäistuntoon, meidän on käytettävä Invoke-Command
-komentoa.
Alla oleva esimerkki ajaa paikallisen profiilin etäistuntoon.
Code:
$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile
Output:
Koska profiilia ei täytetä etäistunnossa, voimme myös ladata etäprofiilin istuntoon. Tarkista alla oleva esimerkki.
Code:
$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Output:
Toivottavasti PowerShell-profiileja koskeva opetusohjelma on hyödyllinen.
Kertokaa kommenttinne ja ajatuksenne.
Palautettanne arvostetaan.
Seuraavat linkit
- PowerShell-oppaat
- PowerShell-skriptit
- about_Profiles | Microsoft Docs
- PowerShell Automaattiset muuttujat
- PowerShell Loogiset operaattorit
- PowerShell-suorituskäytännöt
- Test-Path – Microsoft Docs
- New-Item – Microsoft Docs
- Write-Output – Microsoft Docs
- Set-ExecutionPolicy – Microsoft Docs
- Invoke-Command – Microsoft Docs