Share this post:

Un profil PowerShell este un script care se execută la pornirea PowerShell și are un nume specific.

PowerShell acceptă mai multe profiluri pentru utilizatori și programe gazdă. Când spunem programe gazdă ne gândim în principal la Windows PowerShell Console și Windows PowerShell ISE. Cu toate acestea, nu creează profilurile pentru dvs. așa că continuați să citiți acest articol și vă voi arăta cum să creați și să personalizați profilurile cu exemple minunate.

Potem crea 3 fișiere de profil pentru fiecare utilizator din sistem, unul pentru fiecare gazdă (Windows PowerShell Console și ISE) și unul pentru toate gazdele.

În plus, este posibil să creăm 3 fișiere de profil pentru toți utilizatorii dacă dorim să aplicăm anumite personalizări aplicabile tuturor utilizatorilor.

IMPORTANT: Dacă aveți o instalare separată a versiunii 6 a PowerShell, atunci putem crea 4 profiluri suplimentare. Două fișiere de profil pentru fiecare utilizator și două fișiere de profil pentru toți utilizatorii.

Tabel de conținut

Comenzi PowerShell Profile, Hosts, Profile Names, Profile Locations

Aici este un tabel care arată Profile Types, Command care poate fi folosit pentru a testa dacă există un profil și pentru a le crea dacă dorim, Which Host this Profile applies to, Name of the Profile file, and Location of Profile File.

# Profile Type Command Host Numele fișierului de profil Locația fișierului de profil
1* Current User, Current Host $profile Console Microsoft.PowerShell_profile.ps1 $HOME\\ Documents\WindowsPowerShell\
2 All Users, Current Host $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 Console, ISE Profile.ps1 $PSHOME\
5** Utilizator curent, gazdă curentă $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\ Documents\WindowsPowerShell\
6** Toți utilizatorii, Gazda curentă $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME

Tabelul 1 – Tipuri de profiluri PowerShell, comenzi, gazde, nume de fișiere, locații de fișiere

* În loc de $profil putem folosi $profil.Comanda CurrentUserCurrentHost.

** Se execută comanda din consola Windows PowerShell ISE.

Pentru a găsi valorile corecte pentru variabilele $HOME și $PSHOME pe instalația dvs. de PowerShell, vă rugăm să executați următoarele comenzi:

$HOME

De obicei, valoarea pentru $HOME este C:\Users\user_name

$HOME value
$PSHOME

De obicei, valoarea pentru $PSHOME este C:\Windows\System32\WindowsPowerShell\v1.0

valoarea $PSHOME

REMEMBER: Dacă aveți o instalare separată a versiunii 6 a PowerShell, atunci putem crea profiluri suplimentare. Două pentru fiecare utilizator curent și două pentru toți utilizatorii.

# Profile Type Command Host Profile File Name Profile Name Profile Locația fișierului
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.AllUsersAllHosts profile.ps1 $PSHOME\

Tabelul 2 – PowerShell v6 Tipuri de profiluri, comenzi, gazde, nume de fișiere, locații de fișiere

De obicei, valoarea pentru $HOME este C:\Users\user_name

Valoare $HOME pentru PowerShell v6

De obicei, valoarea pentru $PSHOME este C:\Program Files\PowerShell\6

valoarea $PSHOME pentru PowerShell v6

Atenție: Diferența dintre numele dosarelor din dosarul Documents PowerShell v6 este PowerShell, iar numele dosarului versiunilor anterioare PowerShell este WindowsPowerShell.

Cum se creează un profil PowerShell pas cu pas

Aici vă voi arăta exact cum să creați un profil PowerShell.

Crearea unui profil PowerShell pentru utilizatorul curent și gazda curentă

Acesta este profilul Windows PowerShell implicit.

Să urmați acești pași pentru a crea un profil PowerShell pentru Consola ca Gazdă și utilizatorul curent:

Pasul 1: Deschideți Consola Windows PowerShell (Gazda curentă).

Consola Windows PowerShell

Pasul 2: În primul rând, vom testa dacă Profilul există sau nu în instalarea noastră PowerShell. Tastați următoarea comandă în Consola Window PowerShell și apăsați ENTER.

Test-Path $PROFILE

REMEMBER: Valoarea parametrilor pentru Test-Path CmdLasă obținem din Tabelul 2 – coloana Command. ($profile, $profile.CurrentUserAllHosts, etc)

Etapa 3: Dacă rezultatul comenzii anterioare este fals, profilul nu există, deci treceți la etapa 4. Dacă rezultatul este adevărat, fișierul de profil există, deci treceți la pasul 5

Filele de profil nu există (false)

Pasul 4: Deoarece profilul nu există, vom crea unul cu următoarea comandă pe care o veți tasta și veți apăsa ENTER.

New-Item -Type File -Force $PROFILE
Filele de profil au fost create
Microsoft.PowerShell_profile.ps1 – Profilul pentru utilizatorul curent și Consola ca gazdă

Pasul 5: Profilul a fost creat și putem deschide fișierul Profil în PowerShell ISE cu următoarea comandă și vom apăsa ENTER.

Deschideți Windows PowerShell ISE cu fișierul de profil

Etapa 6: A fost deschis fișierul de profil gol în Windows PowerShell ISE

Windows PowerShell ISE a deschis un fișier de profil gol Microsoft.PowerShell_profile.ps1

Etapa 7: Continuați la Exemplul 1 pentru a vedea cum se personalizează acest profil.

Crearea unui profil PowerShell pentru Utilizatorul curent și toate gazdele

Să urmați acești pași pentru a crea un profil PowerShell:

Pasul 1: Deschideți consola Windows PowerShell (Aceasta este doar o gazdă aleasă pentru a rula comenzile și putem face acești pași și din Windows PowerShell ISE).

Pasul 2: Mai întâi, vom testa dacă Profilul există sau nu în instalarea noastră PowerShell. Tastați următoarea comandă în consola Windows PowerShell și apăsați ENTER.

Test-Path $PROFILE.CurrentUserAllHosts

REMEMBER: Valoarea parametrului pentru Test-Path CmdLet we get from Table 2 – Command column. ($profile, $profile.CurrentUserAllHosts, etc)

Etapa 3: Dacă rezultatul comenzii anterioare este fals, profilul nu există, deci treceți la etapa 4. Dacă rezultatul este adevărat, fișierul de profil există, deci treceți la pasul 5

Filele de profil nu există (false)

Pasul 4: Deoarece Profilul nu există, vom crea unul cu următoarea comandă pe care o veți tasta și veți apăsa ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Fileul profil a fost creat
File profil.ps1 – Profil pentru utilizatorul curent și toate gazdele

Pasul 5: Profilul a fost creat și putem deschide fișierul Profil în PowerShell ISE cu următoarea comandă și să apăsăm ENTER.

ise $PROFILE.CurrentUserAllHosts

Pasul 6: Fișierul de profil gol a fost deschis în Windows PowerShell ISE

Windows PowerShell ISE a deschis un fișier de profil gol profile.ps1

Pasul 7: Continuați cu Exemplul 2 pentru a vedea cum se poate personaliza profilul.

Repetăm procesul pentru alte tipuri de profil singurul lucru este să folosim valoarea corectă a variabilei din coloana Command din Tabelul 1 – Tipuri de profiluri PowerShell, comenzi, gazde, nume de fișiere, locații de fișiere.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMEMBER: Când doriți să creați profilul pentru Windows PowerShell ISE ca gazdă, trebuie să deschideți Windows PowerShell ISE și să urmați pașii executând comenzile din consola Windows PowerShell ISE (uitați-vă la captura de ecran de mai jos)

Windows PowerShell ISE Console și fișierul de profil respectiv pentru ISE ca gazdă

Cum se editează profilul Windows PowerShell cu exemple

Exemplul 1 – Profil pentru consolă ca gazdă și utilizator curent (Utilizator curent – gazdă curentă)

Nume profil: Microsoft.PowerShell_profile.ps1
Localizarea profilului: $Home\Documents\WindowsPowerShell\
Utilizat pentru: În acest exemplu, am schimbat culorile de fundal ale fontului pentru a fi mai ușor de citit.

Iată codul din fișierul de profil Microsoft.PowerShell_profile.ps1. Trebuie doar să copiați codul din fișierul de profil și să salvați modificările pentru a avea aceeași schemă de culori sau să o personalizați după cum doriți.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Codul din fișierul de profil Microsoft.PowerShell_profile.ps1

Pe unele sisteme mai vechi, setarea Set-PSReadLineOption CmdLet era puțin diferită, ca în exemplul de mai jos.

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

Culoarea fonturilor a fost schimbată de la aceasta…

Culoarea fonturilor consolei PowerShell fără personalizare de profil.

… la aceasta.

Culoarea fonturilor din consola PowerShell după personalizarea profilului.

Utilizați Get-PSReadLineOption CmdLet pentru a vedea argumentele de culoare valide și valorile actuale ale argumentelor (culorilor).

Get-PSReadLineOption CmdLet și schema actuală a culorilor

Exemplul 2 – Profil pentru ambele console Windows PowerShell și ISE ca gazde (Utilizator curent – Toate gazdele)

Numele profilului: profile.ps1
Localizarea profilului: $Home\Documents\WindowsPowerShell\
Utilizat pentru: Atunci când doriți să personalizați simultan atât consola Windows PowerShell, cât și ISE sau să rulați propriile funcții avansate sau CmdLets atât în consola PowerShell, cât și în ISE.

În acest exemplu, îmi încarc propriile module PowerShell pentru câteva CmdLets pe care le-am scris și care fac parte din proiectul Efficiency Booster PowerShell. Acest proiect este o bibliotecă a propriilor mele CmdLets organizate în mai multe module și vă recomand să descărcați fișierul zip cu fișierele proiectului și să testați în propriul mediu și să mă puteți urmări în articolele de pe acest blog.

Iată comenzile pentru a importa modulele și conținutul fișierului de profil.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profile.Codul fișierului de profil ps1

Potem testa rapid că modulele importate sunt într-adevăr încărcate atunci când deschidem consola PowerShell folosind următoarea comandă:

Get-Module -ListAvailable
Modulele importate în fișierul Profile sunt încărcate în mediul PowerShell Console

Pentru a înțelege mai bine interconectarea PowerShell Profiles, Modules and CmdLets vă rugăm să citiți următorul subtitlu din această postare How To Organize Your Own PowerShell CmdLets in PowerShell Modules And Which Profile To Use To Organize That Structure și How We Link Together PowerShell Profile, Module, And CmdLet.

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

Profile Name: Microsoft.PowerShellISE_profile.ps1
Localizarea profilului: $Home\Documents\WindowsPowerShell\
Utilizat pentru: În acest exemplu, am importat modulul care conține CmdLets care vor fi Add-ons pentru Window PowerShell ISE.

Iată comanda care trebuie copiată în fișierul de profil.

Import-Module 09addons
Codul fișierului de profil Microsoft.PowerShellISE_profile.ps1

Ca rezultat, vom avea două Add-ons în Windows PowerShell ISE. Vă rugăm să citiți aceste două articole pentru a afla mai multe despre cum să le codificați.

  • Cum să scrii funcții avansate sau CmdLet-uri avansate cu PowerShell (rapid)
  • Cum să scrii ajutor pentru funcții PowerShell sau CmdLet-uri (rapid)
Complemente pentru Windows PowerShell ISE.ons

Potem testa rapid dacă modulele importate sunt într-adevăr încărcate atunci când deschidem consola PowerShell folosind următoarea comandă:

Get-Module -ListAvailable
Modulul importat în fișierul Profile este încărcat în mediul PowerShell ISE

NOTA: Windows PowerShell ISE importă patru modele din două fișiere de profil ( profile.ps1 și Microsoft.PowerShellISE_profile.ps1 ).

Exemplu 4 – Profil pentru ambele console Windows PowerShell și ISE ca gazde (toți utilizatorii – toate gazdele)

Numele profilului: profile.ps1
Localizarea profilului: $PSHOME\
Utilizat pentru: În acest exemplu, am schimbat doar titlul Consolei PowerShell și al ISE pentru Window PowerShell atât pentru Utilizatorul curent, cât și pentru Administrator.

Iată codul din fișierul Profil:

$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" }}

Vezi că ambele titluri PowerShell Console și ISE au un text personalizat, numele gazdei și versiunea PowerShell în titlu.

Text personalizat pentru titlul consolei
Text personalizat pentru titlul consolei atunci când se execută ca administrator
Text personalizat pentru Windows PowerShell ISE Title

Comenzi PowerShell utile de știut cu privire la profiluri

Iată câteva comenzi PowerShell utile care vă vor ajuta să obțineți informații despre profiluri.

Ca urmare a executării oricăreia dintre comenzile de profil, veți obține locația fișierului de profil.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Comenzi de profil

IMPORTANT: Când doriți să găsiți locația fișierului de profil pentru Windows PowerShell ISE ca gazdă, trebuie să deschideți Windows PowerShell ISE și să executați comenzi de profil din consola Windows PowerShell ISE

Utilizați Test-Path CmdLet pentru a verifica dacă fișierul de profil există sau nu pe sistem. Dacă obțineți True ca rezultat profilul există, iar false înseamnă că fișierul de profil nu există. Utilizați comenzile din Tabelul 1 – Tipuri de profiluri PowerShell, comenzi, gazde, nume de fișiere, locații de fișiere pentru a verifica dacă există sau nu alte tipuri de profiluri.

Test-Path $PROFILE

Acestă linie de cod va crea un fișier de profil. Utilizați comenzile din Tabelul 1 – PowerShell Profile types, commands, hosts, file names, file locations pentru a crea alte tipuri de profiluri.

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

Dacă doriți să citiți conținutul fișierului de profil fie în Notepad, fie în Window PowerShell ISE, atunci utilizați aceste două comenzi.

ise $PROFILEnotepad $PROFILE

Personal prefer Windows PowerShell ISE, deoarece acesta este un mediu mai convenabil pentru scrierea codului PowerShell.

Utilizați această linie de cod pentru a obține locațiile de profil pentru toate tipurile de profil.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Locațiile fișierelor de profil

Verificați aceste două variabile pentru a obține locația de instalare PowerShell și, respectiv, directorul principal.

$pshome$home 

Cum să alegeți ce fișier de profil să utilizați

Dacă utilizați mai multe aplicații gazdă, cum ar fi Windows PowerShell Console și ISE, puneți toată personalizarea în profilul $PROFILE.CurrentUserAllHosts pentru utilizatorul curent conectat. De exemplu, mi-am creat propriile CmdLets organizate în Modules, așa că am pus comenzile pentru a încărca aceste module în acest profil, deoarece vreau ca modulele să fie încărcate atât atunci când deschidem PowerShell Console, cât și ISE. Priviți Exemplul 2 pentru ilustrare.

Dacă doriți să faceți o personalizare specifică a aplicației gazdă, puneți tot codul de personalizare într-un profil specific acelei aplicații gazdă. De exemplu, schimb culoarea de fundal a fonturilor din PowerShell Console pentru ca acestea să fie mai vizibile sau am încărcat module care sunt Add-ons pentru ISE. Am arătat acest lucru în Exemplul 1 pentru Consola PowerShell și în Exemplul 3 pentru PowerShell ISE.

Dacă aveți nevoie să personalizați PowerShell pentru mai mulți utilizatori și sunteți administrator decât urmați aceste sfaturi:

  • Stocați cele mai comune personalizări în $PROFILE.Profil AllUsersAllHosts deoarece acesta este cel mai larg domeniu de aplicare
  • Dacă doriți să personalizați Windows PowerShell pentru toți utilizatorii, dar specific unei aplicații gazdă. De exemplu, o personalizare diferită pentru Windows PowerShell Console și o altă personalizare pentru Windows PowerShell ISE, atunci puneți codul în profilurile $PROFILE.AllUsersCurrentHost
  • Scrieți codul pentru anumiți utilizatori în profilurile specifice utilizatorilor. Practic, asta înseamnă să folosești fie profilul $PROFILE.CurrentUserAllHosts, fie profilul $PROFILE.CurrentUserCurrentHost.

Cum se execută consola sau ISE fără profiluri încărcate

Deschideți dialogul de execuție Win + R și deschideți PowerShell cu opțiunea -NoProfile.

PowerShell.exe -NoProfile

Avertisment: PowerShell Load Time

Cu un profil mai mare și mai complex, acesta poate începe să aibă un efect asupra rapidității cu care se deschide PowerShell. Pentru a depana dacă profilul dvs. este sau nu responsabil pentru timpii slabi de încărcare PowerShell, deschideți fereastra de dialog Run Win + R și deschideți PowerShell cu opțiunea -NoProfile.

PowerShell.exe -NoProfile

Profiles And Remote Sessions

Profilele PowerShell nu sunt rulate automat în sesiunile la distanță, astfel încât comenzile pe care le adaugă profilurile nu sunt prezente în sesiunea la distanță. În plus, variabila automată $PROFILE nu este populată în sesiunile la distanță.

Pentru a rula un profil într-o sesiune, utilizați comanda Invoke-Command CmdLet.

De exemplu, următoarea comandă rulează profilul „Current user, Current Host” de pe calculatorul local în sesiunea din $s.

Invoke-Command -Session $s -FilePath $PROFILE

How To Organize Your Own PowerShell CmdLets in PowerShell Modules and Profiles

Pentru ca să înțelegeți legătura dintre profilul PowerShell, modul și CmdLet am creat Efficiency Booster PowerShell Project cu o mulțime de CmdLet-uri proprii organizate într-o grămadă de module care sunt încărcate în fiecare sesiune PowerShell cu profilul PowerShell ori de câte ori deschid consola Windows PowerShell sau ISE.

Vă rugăm să nu ezitați să descărcați fișierul zip care conține codul pentru proiect, astfel încât să puteți urmări cu ușurință. În fișierul ReadMe.txt se află o explicație a pașilor de instalare și personalizare, așa că vă rugăm să citiți instrucțiunile din acel fișier. Chiar mai bine, puteți citi instrucțiunile de instalare și personalizare citind următorul articol How To Install And Configure PowerShell: CmdLets, Modules, Profiles.

Voi folosi analogia dintre librărie, rafturi și cărți pentru a explica legătura dintre Powershell Profile, Module și CmdLet.

De exemplu, imaginați-vă că doriți să învățați mai multe despre PowerShell Scripting și doriți să cumpărați câteva cărți pe această temă din librărie.

Intrați în librărie și vedeți multe rafturi cu etichete diferite pentru departamentele de cărți precum Artă, Afaceri, Calculatoare, Literatură, Călătorii etc. Bineînțeles, vă îndreptați spre rafturile etichetate Computers și acolo găsiți cartea care explică PowerShell Scripting pe care doriți să o cumpărați.

Să ne întoarcem acum în lumea PowerShell și să legăm povestea analogiei cu PowerShell:

  • CommdLet-ul pe care îl folosim livrat cu PowerShell sau unele CmdLet-uri scrise de noi înșine sunt cartea.
  • Codul acelui CmdLet este conținutul cărții.
  • PowerShell Module este raftul librăriei unui anumit departament al librăriei, cum ar fi, de exemplu, raftul departamentului Librăriei de calculatoare unde este pusă cartea noastră.
  • În cele din urmă, PowerShell Profile este librăria în sine.

Așa că de fiecare dată când deschidem Windows PowerShell Console sau ISE deschidem sesiunea noastră și odată cu acea sesiune se încarcă fișiere de profil și s-au făcut personalizări pentru a configura mediul nostru PowerShell așa cum vrem noi să fie.

În cazul Modulelor și CmdLets. Fișierul de profil va importa modulele și Module va încărca fiecare script CmdLet care aparține acelui Module.

Din moment ce îmi place să folosesc propriile mele CmdLets atât în consola Windows PowerShell cât și în aplicațiile gazdă ISE prefer să creez un profil $profile.CurrentUserAllHosts de tip profil care nu este altceva decât fișierul Profile.ps1 creat în:

  • folderul $Home\ Documents\WindowsPowerShell\ pentru PowerShell versiunea 5.1 și mai vechi
  • folderul $Home\ Documents\PowerShell\ pentru PowerShell versiunea 6.0.

How We Link Together PowerShell Profile, Module, Și CmdLet

Iată o scurtă descriere a acestei structuri realizată în PowerShell

  • Creăm un profil PowerShell
  • Creăm un folder și o structură de fișiere Module
  • Creăm un folder și o structură de fișiere Module
  • Personalizăm profilul pentru a importa modulele necesare
  • .

  • Creați scriptul CmdLet PowerShell
  • Scrieți propriul cod al funcției CmdLet
  • Personalizați fișierul Module pentru a importa scriptul CmdLet

Voi ilustra acest proces cu exemple de proiecte PowerShell Efficiency Booster PowerShell de profil, Module și CmdLet, astfel încât să fie mai ușor pentru oricine să înțeleagă întregul proces. Așadar, încurajez din nou cu tărie pe toată lumea să instaleze fișierul zip furnizat.

Să urmați acești pași pentru a crea un Profil PowerShell, un Modul, un CmdLet și pentru a le lega între ele:

Pasul 1: Deschideți Consola Windows PowerShell

Pasul 2: Mai întâi, vom testa dacă Profilul există sau nu în instalarea noastră PowerShell. Tastați următoarea comandă în Windows PowerShell și apăsați ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Etapa 3: Dacă rezultatul comenzii anterioare este fals, profilul nu există, deci treceți la etapa 4. Dacă rezultatul este adevărat, fișierul de profil există, deci treceți la pasul 5

Pasul 4: Deoarece Profilul nu există, vom crea unul cu următoarea comandă pe care o veți tasta și apăsați ENTER.

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

Pasul 5: Profilul a fost creat și putem deschide fișierul Profil în PowerShell ISE cu următoarea comandă și apăsați ENTER.

ise $PROFILE.CurrentUserAllHosts

Pasul 6: Fișierul Profile a fost deschis în PowerShell ISE.

Pasul 7: Acum trebuie să creăm o structură de foldere Module și fișierele necesare.

Pasul 8: În folderul în care am creat fișierul nostru Profile creăm un folder Module cu numele exact Modules. Aici vom păstra structura de foldere a tuturor Modulelor noastre.

Directorul Modules

Pasul 9: În folderul Modules creați folderele pentru fiecare Modul pe care doriți să îl aveți. De exemplu, am creat următoarele module în Efficiency Booster PowerShell Project.

Modules of Efficiency Booster PowerShell Project

Pasul 10: În fiecare dosar Module creăm fișierul cu extensia .psm1 și cu exact același nume ca și dosarul Module. De exemplu, în folderul 03common, creăm fișierul 03common.psm1

Filier modul PowerShell psm1

Etapa 11: Opțional, putem crea un fișier manifest (.cu extensia psd1) pentru fiecare modul care va descrie mai detaliat folderul respectiv.

Etapa 12: În același folder de module, creăm fișierul cu extensia .ps1 (fișier script PowerShell obișnuit) în care vom scrie codul pentru propriul nostru CmdLet. De exemplu, putem crea fișierul GetCPUInfo.ps1 în care vom scrie codul pentru propriul nostru CmdLet Get-CPUInfo.

File de script Get-CPUInfo CmdLet

Etapa 13: Acum suntem pregătiți să scriem propriul cod CmdLet și să îl scriptăm. Nu ezitați să vă uitați în exemplul Get-CPUInfo și în alte CmdLet-uri din proiectul Efficiency Booster PowerShell Project. În postările viitoare, voi scrie mai multe detalii despre fiecare CmdLet din proiect. Deocamdată, descărcați codul sursă al proiectului de aici.

Get-CPUInfo CmdLet Source code

Step 14: Link a CmdLet script to the correct PowerShell Module. Deschideți fișierul .psm1 al modulului și scrieți această linie de cod:
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
De exemplu, pentru Get-CPUInfo CmdLet scriem această linie de cod în 03common.psm1 file:

. $psScriptRoot\GetCPUInfo.ps1 
Legătura dintre fișierul script CmdLet și modul

Pasul 15: În fișierul script de profil, importăm modulul care conține fișierul nostru script CmdLet, astfel încât să scriem această comandă în fișierul de profil.
Import-Module ModuleName
De exemplu, CmdLet-ul nostru Get-CPUInfo face parte din modulul 03common așa că scriem acest cod în profil:

Import-Module 03common
Legătura dintre profil și modul

Pasul 16: Repetăm pașii 9 -15 pentru fiecare modul și CmdLet pe care dorim să îl avem în profilul nostru și să fie încărcat cu fiecare sesiune PowerShell pe care o începem.

Etapa 17: Testăm că toate modulele importate sunt încărcate atunci când deschidem o anumită gazdă. Putem lista modulele folosind următoarea comandă:

Get-Module -ListAvailable
Modulele încărcate în mediul de consolă PowerShell

Pasul 18: În acest caz, vom verifica dacă modulele sunt încărcate: Putem testa dacă toate CmdLets din cadrul fiecărui modul sunt încărcate în mediu. Iată exemplul util de comandă:

Get-Command -Module 02utils
CommdLets încărcate în mediile de consolă PowerShell pentru modulul 02utils

Articole utile despre profilul PowerShell

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.