Share this post:

Profil PowerShell jest skryptem, który uruchamia się, gdy PowerShell startuje i ma określoną nazwę.

PowerShell obsługuje kilka profili dla użytkowników i programów hosta. Kiedy mówimy programy hosta, myślimy przede wszystkim o Windows PowerShell Console i Windows PowerShell ISE. Jednak nie tworzy profili dla Ciebie, więc kontynuuj czytanie tego artykułu, a pokażę Ci, jak tworzyć i dostosowywać profile z niesamowitymi przykładami.

Możemy utworzyć 3 pliki profili dla każdego użytkownika w systemie, jeden dla każdego hosta (Windows PowerShell Console i ISE) i jeden dla wszystkich hostów.

Dodatkowo można utworzyć 3 pliki profili dla wszystkich użytkowników, jeśli chcemy zastosować jakieś dostosowanie mające zastosowanie do wszystkich użytkowników.

WAŻNE: Jeśli posiadamy osobną instalację PowerShell w wersji 6 to możemy utworzyć 4 dodatkowe profile. Dwa pliki profili na użytkownika i dwa pliki profili dla wszystkich użytkowników.

Table of Contents

Polecenia profili PowerShell, Hosty, Nazwy profili, Lokalizacje profili

Tutaj jest tabela, która pokazuje Typy profili, Polecenia, które mogą być użyte do sprawdzenia, czy profil istnieje i utworzyć je, jeśli chcemy, Którego hosta dotyczy ten profil, Nazwa pliku profilu i Lokalizacja pliku profilu.

# Typ profilu Komenda Host Nazwa pliku profilu Lokalizacja pliku profilu
1* Aktualny użytkownik, Current Host $profile Console Microsoft.PowerShell_profile.ps1 $HOME DocumentsWindowsPowerShell
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 DokumentyWindowsPowerShell
4 All Users, All Hosts $profile.AllUsersAllHosts Console, ISE Profile.ps1 $PSHOME
5** Current user, Current Host $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME DocumentsWindowsPowerShell
6** Wszyscy użytkownicy, Current Host $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME

Tabela 1 – Typy profili PowerShell, polecenia, hosty, nazwy plików, lokalizacje plików

* Zamiast $profile możemy użyć $profile.CurrentUserCurrentHost polecenie.

** Uruchom polecenie z konsoli Windows PowerShell ISE.

Aby znaleźć prawidłowe wartości dla zmiennych $HOME i $PSHOME na swojej instalacji PowerShell należy wykonać następujące polecenia:

$HOME

Zwykle wartość dla $HOME to C:\Users\user_name

$HOME value
$PSHOME

Zazwyczaj wartość dla $PSHOME to C:\WindowsSystem32\WindowsPowerShell\v1.0

$PSHOME value

PAMIĘTAJ: Jeśli posiadamy osobną instalację PowerShell w wersji 6 to możemy utworzyć dodatkowe profile. Dwa na aktualnego użytkownika i dwa dla wszystkich użytkowników.

# Typ profilu Command Host Nazwa pliku profilu Lokalizacja pliku Profile. File Location
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME DocumentsPowerShell
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME Dokumenty
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME

Tabela 2 – PowerShell v6 Typy profili, polecenia, hosty, nazwy plików, lokalizacje plików

Zwykle wartością dla $HOME jest C:

$HOME wartość dla PowerShell v6

Zwykle, wartość dla $PSHOME to C:\Program Files\PowerShell\6

$PSHOME wartość dla PowerShell v6

UWAGA: Różnica między nazwami folderów w folderze Documents PowerShell v6 to PowerShell, a nazwa folderu wcześniejszych wersji PowerShell to WindowsPowerShell.

Jak utworzyć profil PowerShell krok po kroku

Tutaj pokażę ci dokładnie, jak utworzyć profil PowerShell.

Tworzenie profilu PowerShell dla bieżącego użytkownika i bieżącego hosta

To jest domyślny profil Windows PowerShell.

Przeprowadź następujące kroki, aby utworzyć profil PowerShell dla konsoli jako hosta i bieżącego użytkownika:

Krok 1: Otwórz konsolę Windows PowerShell (bieżący host).

Konsola Windows PowerShell

Krok 2: Najpierw sprawdzimy, czy profil istnieje, czy nie w naszej instalacji PowerShell. W konsoli Window PowerShell Console wpisujemy następujące polecenie i naciskamy ENTER.

Test-Path $PROFILE

PAMIĘTAJ: Wartość parametru dla Test-Path CmdPodajemy z tabeli 2 – kolumna Command. ($profile, $profile.CurrentUserAllHosts, etc)

Krok 3: Jeśli wynik poprzedniego polecenia jest fałszywy, profil nie istnieje, więc przejdź do kroku 4. Jeśli wynik jest prawdziwy, plik profilu istnieje, więc przejdź do kroku 5

Plik profilu nie istnieje (false)

Krok 4: Ponieważ profil nie istnieje, utworzymy go za pomocą następującej komendy, którą wpiszemy i naciśniemy ENTER.

New-Item -Type File -Force $PROFILE
Plik profilu został utworzony
Microsoft.PowerShell_profile.ps1 – Profil dla bieżącego użytkownika i Konsoli jako hosta

Krok 5: Profil został utworzony i możemy otworzyć plik profilu w PowerShell ISE następującą komendą i naciskamy ENTER.

ise $PROFILE
Otwórz Windows PowerShell ISE z plikiem Profile

Krok 6: Pusty plik Profile został otwarty w Windows PowerShell ISE

Windows PowerShell ISE otworzył pusty plik profilu Microsoft.PowerShell_profile.ps1

Krok 7: Kontynuuj do Przykładu 1, aby zobaczyć, jak dostosować ten profil.

Tworzenie profilu PowerShell dla bieżącego użytkownika i wszystkich hostów

Postępuj zgodnie z poniższymi krokami, aby utworzyć profil PowerShell:

Krok 1: Otwórz konsolę Windows PowerShell (jest to tylko wybrany host do uruchamiania poleceń i możemy wykonać te kroki również z Windows PowerShell ISE).

Krok 2: Najpierw sprawdzimy, czy profil istnieje, czy nie w naszej instalacji PowerShell. Wpisz poniższe polecenie w konsoli Windows PowerShell i naciśnij ENTER.

Test-Path $PROFILE.CurrentUserAllHosts

PAMIĘTAJ: Wartość parametru dla Test-Path CmdPozwól nam uzyskać z tabeli 2 – kolumna Command. ($profile, $profile.CurrentUserAllHosts, etc)

Krok 3: Jeśli wynik poprzedniego polecenia jest fałszywy, profil nie istnieje, więc przejdź do kroku 4. Jeśli wynik jest prawdziwy, plik profilu istnieje, więc przejdź do kroku 5

Plik profilu nie istnieje (false)

Krok 4: Ponieważ profil nie istnieje, utworzymy go za pomocą następującej komendy, którą wpiszemy i naciśniemy ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Plik profilu został utworzony
Plik profilu.ps1 – Profil dla bieżącego użytkownika i wszystkich hostów

Krok 5: Profil został utworzony i możemy otworzyć plik profilu w PowerShell ISE za pomocą następującego polecenia i nacisnąć ENTER.

ise $PROFILE.CurrentUserAllHosts

Krok 6: Pusty plik profilu został otwarty w Windows PowerShell ISE

Windows PowerShell ISE otworzył pusty plik profilu profile.ps1

Krok 7: Kontynuuj do Przykładu 2, aby zobaczyć, jak dostosować profil.

Powtarzamy proces dla innych typów profili jedyną rzeczą jest użycie odpowiedniej wartości zmiennej w kolumnie Command z tabeli 1 – Typy profili PowerShell, komendy, hosty, nazwy plików, lokalizacje plików.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

PAMIĘTAJ: Jeśli chcesz utworzyć profil dla Windows PowerShell ISE jako hosta, musisz otworzyć Windows PowerShell ISE i wykonać kroki uruchamiając polecenia z konsoli Windows PowerShell ISE (spójrz na zrzut ekranu poniżej)

Windows PowerShell ISE Console i odpowiedni plik profilu dla ISE jako hosta

Jak edytować profil Windows PowerShell z przykładami

Przykład 1 – Profil dla konsoli jako hosta i bieżącego użytkownika (bieżący użytkownik – bieżący host)

Nazwa profilu: Microsoft.PowerShell_profile.ps1
Profile Location: $HomeDocumentsWindowsPowerShell
Used for: W tym przykładzie zmieniłem kolory tła czcionek, aby były bardziej czytelne.

Tutaj znajduje się kod w pliku profilu Microsoft.PowerShell_profile.ps1. Wystarczy skopiować kod do pliku profilu i zapisać zmiany, aby mieć ten sam schemat kolorów lub dostosować go do własnych potrzeb.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Kod pliku profilu Microsoft.PowerShell_profile.ps1

Na niektórych starszych systemach ustawienie Set-PSReadLineOption CmdLet było trochę inne, jak w poniższym przykładzie.

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

Kolory czcionek zostały zmienione z tego…

Kolory czcionek konsoli PowerShell bez dostosowywania profilu.

… na to.

Kolory czcionek konsoli PowerShell po dostosowaniu profilu.

Użyj Get-PSReadLineOption CmdLet aby zobaczyć ważne argumenty kolorów i bieżące wartości argumentów (kolory).

Get-PSReadLineOption CmdLet i schemat bieżących kolorów

Przykład 2 – Profil zarówno dla konsoli Windows PowerShell, jak i ISE jako hostów (Bieżący użytkownik – wszystkie hosty)

Nazwa profilu: profile.ps1
Lokalizacja profilu: $HomeDocumentsWindowsPowerShell
Użyteczne dla: Gdy chcesz dostosować zarówno konsolę Windows PowerShell, jak i ISE jednocześnie lub uruchomić własne funkcje zaawansowane lub zestawy CmdLets zarówno w konsoli PowerShell, jak i ISE.

W tym przykładzie ładuję własne moduły PowerShell dla niektórych zestawów CmdLets, które napisałem, a które są częścią projektu Efficiency Booster PowerShell. Ten projekt jest biblioteką moich własnych CmdLets zorganizowanych w kilku modułach i bardzo polecam pobranie pliku zip z plikami projektu i przetestowanie we własnym środowisku i możliwość śledzenia mnie w artykułach na tym blogu.

Tutaj są polecenia do importowania modułów i zawartości pliku profilu.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profile.ps1 profile file code

Możemy szybko sprawdzić, czy zaimportowane moduły są rzeczywiście załadowane, gdy otworzymy konsolę PowerShell za pomocą następującego polecenia:

Get-Module -ListAvailable
Importowane moduły w pliku Profile są ładowane w środowisku PowerShell Console

Aby lepiej zrozumieć powiązania profili PowerShell, modułów i CmdLetów przeczytaj następujące podtytuły tego postu How To Organize Your Own PowerShell CmdLets in PowerShell Modules And Which Profile To Use To Organize That Structure oraz How We Link Together PowerShell Profile, Module, And CmdLet.

Przykład 3 – Profil dla ISE jako Host (Current User – Current Host)

Profile Name: Microsoft.PowerShellISE_profile.ps1
Lokalizacja profilu: $HomeDocumentsWindowsPowerShell
Użyte do: W tym przykładzie zaimportowałem moduł przechowujący CmdLety, które będą Dodatkami dla Window PowerShell ISE.

Tutaj znajduje się polecenie, które należy skopiować w pliku profilu.

Import-Module 09addons
Kod pliku profilu Microsoft.PowerShellISE_profile.ps1

W efekcie będziemy mieli dwa Dodatki w Windows PowerShell ISE. Proszę przeczytać te dwa artykuły, aby dowiedzieć się więcej o tym, jak je zakodować.

  • 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 Add-.ons

Możemy szybko sprawdzić, czy zaimportowane moduły są rzeczywiście załadowane, gdy otworzymy konsolę PowerShell za pomocą następującego polecenia:

Get-Module -ListAvailable
Importowany moduł w pliku Profile jest ładowany w środowisku PowerShell ISE

UWAGA: Windows PowerShell ISE importuje cztery modele z dwóch plików profili ( profile.ps1 i Microsoft.PowerShellISE_profile.ps1 ).

Przykład 4 – Profile For Both Windows PowerShell Console And ISE As Hosts (All Users – All Hosts)

Nazwa profilu: profile.ps1
Lokalizacja profilu: $PSHOME
Użyte do: W tym przykładzie zmieniłem tylko tytuł Window PowerShell Console i ISE zarówno dla Current User, jak i Administrator.

Tutaj jest kod w pliku Profile:

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

Widzisz, że zarówno tytuły PowerShell Console, jak i ISE mają niestandardowy tekst, nazwę hosta i wersję PowerShell w tytule.

Tekst niestandardowy dla tytułu konsoli
Tekst niestandardowy dla tytułu konsoli, gdy działa się jako administrator
Tekst niestandardowy dla Windows PowerShell ISE Title

Przydatne polecenia PowerShell, które należy znać w odniesieniu do profili

Oto kilka przydatnych poleceń PowerShell, które pomogą uzyskać informacje o profilach.

W wyniku uruchomienia któregokolwiek z poleceń profilu, otrzymasz lokalizację pliku profilu.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Profile commands

IMPORTANT: Jeśli chcesz znaleźć lokalizację pliku profilu dla Windows PowerShell ISE jako hosta, musisz otworzyć Windows PowerShell ISE i uruchomić polecenia profilu z konsoli Windows PowerShell ISE

Użyj Test-Path CmdLet, aby sprawdzić, czy plik profilu istnieje w systemie, czy nie. Jeśli otrzymasz True jako wynik profil istnieje i false oznacza, że plik profilu nie istnieje. Użyj poleceń z Tabeli 1 – Typy profili PowerShell, polecenia, hosty, nazwy plików, lokalizacje plików, aby sprawdzić, czy istnieją inne typy profili.

Test-Path $PROFILE

Ta linia kodu utworzy plik profilu. Użyj poleceń z Tabeli 1 – Typy profili PowerShell, polecenia, hosty, nazwy plików, lokalizacje plików, aby utworzyć inne typy profili.

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

Jeśli chcesz odczytać zawartość pliku profilu w Notatniku lub Window PowerShell ISE, użyj tych dwóch poleceń.

ise $PROFILEnotepad $PROFILE

Personalnie wolę Windows PowerShell ISE, ponieważ jest to wygodniejsze środowisko do pisania kodu PowerShell.

Użyj tej linii kodu, aby uzyskać lokalizacje profili dla wszystkich typów profili.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Lokalizacje plików profili

Sprawdź te dwie zmienne, aby uzyskać lokalizację odpowiednio instalacji PowerShell i katalogu domowego.

$pshome$home 

Jak wybrać, którego pliku profilu użyć

Jeśli używasz aplikacji wielu hostów, takich jak Windows PowerShell Console i ISE, umieść wszystkie dostosowania w profilu $PROFILE.CurrentUserAllHosts dla aktualnie zalogowanego użytkownika. Na przykład, stworzyłem moje własne CmdLets zorganizowane w Moduły, więc umieściłem komendy do załadowania tych modułów w tym profilu, ponieważ chcę, aby moduły były ładowane zarówno kiedy otwieramy PowerShell Console i ISE. Spójrz Przykład 2 dla ilustracji.

Jeśli chcesz zrobić specyficzne dostosowywanie do aplikacji hosta umieścić cały kod dostosowywania w profilu specyficznym dla tej aplikacji hosta. Na przykład, zmieniam kolor tła czcionek konsoli PowerShell, aby były bardziej widoczne lub załadowałem moduły, które są dodatkami dla ISE. Pokazałem to w przykładzie 1 dla PowerShell Console i przykładzie 3 dla PowerShell ISE.

Jeśli potrzebujesz dostosować PowerShell dla wielu użytkowników i jesteś administratorem, postępuj zgodnie z tymi wskazówkami:

  • Zapisz najbardziej powszechne dostosowanie w $PROFILE.AllUsersAllHosts profil ponieważ jest to najszerszy zakres
  • Jeśli chcesz dostosować Windows PowerShell dla wszystkich użytkowników, ale specyficzne dla aplikacji hosta. Na przykład, inne dostosowanie dla Windows PowerShell Console i inne dostosowanie dla Windows PowerShell ISE wtedy umieścić kod w profilu $PROFILE.AllUsersCurrentHost
  • Pisz kod dla poszczególnych użytkowników w profilach specyficznych dla użytkownika. Zasadniczo oznacza to użycie profilu $PROFILE.CurrentUserAllHosts lub $PROFILE.CurrentUserCurrentHost.

How To Run Console Or ISE Without Profiles Loaded

Otwórz okno dialogowe run Win + R i otwórz PowerShell z opcją -NoProfile.

PowerShell.exe -NoProfile

Warning: PowerShell Load Time

Wraz z większym i bardziej złożonym profilem, może zacząć mieć wpływ na to, jak szybko otwiera się PowerShell. Aby rozwiązać problem, czy profil jest odpowiedzialny za słabe czasy ładowania PowerShell, otwórz okno dialogowe run Win + R i otwórz PowerShell z opcją -NoProfile.

PowerShell.exe -NoProfile

Profile i sesje zdalne

Profile PowerShell nie są uruchamiane automatycznie w sesjach zdalnych, więc polecenia, które profile dodają, nie są obecne w sesji zdalnej. Ponadto zmienna automatyczna $PROFILE nie jest uzupełniana w sesjach zdalnych.

Aby uruchomić profil w sesji, należy użyć polecenia Invoke-Command CmdLet.

Na przykład poniższe polecenie uruchamia profil „Bieżący użytkownik, Bieżący host” z komputera lokalnego w sesji w $s.

Invoke-Command -Session $s -FilePath $PROFILE

Jak zorganizować własne CmdLety PowerShell w Modułach i Profilach PowerShell

Abyś zrozumiał związek między Profilem PowerShell, Modułem i CmdLetem stworzyłem Projekt Efficiency Booster PowerShell z wieloma moimi własnymi CmdLetami zorganizowanymi w kilka Modułów, które są ładowane w każdej Sesji PowerShell z profilem PowerShell za każdym razem, gdy otwieram Konsolę Windows PowerShell lub ISE.

Zapraszam do pobrania pliku zip, który zawiera kod projektu, abyś mógł łatwo podążać za nim. W pliku ReadMe.txt znajduje się wyjaśnienie kroków instalacji i dostosowywania, więc proszę przeczytać instrukcje w tym pliku. Jeszcze lepiej można zapoznać się z instrukcjami instalacji i dostosowywania, czytając następujący artykuł How To Install And Configure PowerShell: CmdLets, Modules, Profiles.

Użyję analogii księgarni, półki z książkami, aby wyjaśnić związek pomiędzy Powershell Profile, Module i CmdLet.

Na przykład, wyobraź sobie, że chcesz dowiedzieć się więcej o PowerShell Scripting i chcesz kupić kilka książek na ten temat w księgarni.

Wchodzisz do księgarni i widzisz wiele półek z różnymi etykietami dla działów książek, takich jak sztuka, biznes, komputery, literatura, podróże itp. Oczywiście, idziesz do półki oznaczonej Komputery i tam znajdujesz książkę, która wyjaśnia PowerShell Scripting, którą chcesz kupić.

Powróćmy teraz do świata PowerShell i połączmy historię analogii z PowerShell:

  • CmdLet, którego używamy dostarczony z PowerShell lub jakiś nasz własny napisany CmdLet jest książką.
  • Kod tego CmdLet jest treścią książki.
  • Moduł PowerShell to półka księgarni w jakimś dziale księgarni, jak na przykład półka działu Komputery, na której znajduje się nasza książka.
  • Wreszcie, profil PowerShell to sama księgarnia.

Więc za każdym razem gdy otwieramy Windows PowerShell Console lub ISE otwieramy naszą sesję i z tą sesją pliki profili do załadowania i dostosowania zostały zrobione aby skonfigurować nasze środowisko PowerShell tak jak chcemy.

W przypadku Modułów i CmdLets. Plik profilu zaimportuje moduły, a moduł załaduje każdy skrypt CmdLet, który należy do tego modułu.

Ponieważ lubię używać własnych CmdLetów zarówno w konsoli Windows PowerShell, jak i w aplikacjach hosta ISE, wolę utworzyć $profile.CurrentUserAllHosts, który jest niczym innym jak plikiem Profile.ps1 utworzonym w:

  • folderze $Home Documents WindowsPowerShell dla PowerShell w wersji 5.1 i starszych
  • folderze $Home Documents WindowsPowerShell dla PowerShell w wersji 6.0.

How We Link Together PowerShell Profile, Module, And CmdLet

Tutaj znajduje się krótki opis tej struktury wykonany w PowerShell

  • Utwórz profil PowerShell
  • Utwórz folder Module i strukturę plików
  • Dostosuj profil, aby zaimportować potrzebne moduły
  • Twórz skrypt CmdLet PowerShell
  • Napisz własny kod funkcji CmdLet
  • Dostosuj plik modułu, aby zaimportować skrypt CmdLet

Zilustruję ten proces przykładami Efficiency Booster PowerShell Project z Profile, Moduły i CmdLety, aby każdy mógł łatwiej zrozumieć cały proces. Więc jeszcze raz gorąco zachęcam wszystkich do zainstalowania dostarczonego pliku zip.

Postępuj zgodnie z poniższymi krokami, aby utworzyć Profil PowerShell, Moduł, CmdLet i połączyć je razem:

Krok 1: Otwórz konsolę Windows PowerShell

Krok 2: Po pierwsze, sprawdzimy czy Profil istnieje czy nie w naszej instalacji PowerShell. Wpisz następujące polecenie w Windows PowerShell, i naciśnij ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Krok 3: Jeśli wynik poprzedniego polecenia jest fałszywy, profil nie istnieje, więc przejdź do kroku 4. Jeśli wynik jest prawdziwy, plik profilu istnieje, więc przejdź do kroku 5

Krok 4: Ponieważ profil nie istnieje utworzymy go za pomocą następującego polecenia, które wpiszemy i naciśniemy ENTER.

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

Krok 5: Profil został utworzony i możemy otworzyć plik profilu w PowerShell ISE za pomocą następującego polecenia i naciśniemy ENTER.

ise $PROFILE.CurrentUserAllHosts

Krok 6: Plik profilu został otwarty w PowerShell ISE.

Krok 7: Teraz musimy utworzyć strukturę folderów Modułów i niezbędne pliki.

Krok 8: W folderze, w którym utworzyliśmy nasz plik profilu, utwórz folder Modułów z dokładną nazwą Moduły. Tutaj będziemy trzymać strukturę folderów wszystkich naszych Modułów.

Folder Modułów

Krok 9: W folderze Modułów utwórz foldery dla każdego Modułu, który chcesz mieć. Na przykład, utworzyłem następujące moduły w Efficiency Booster PowerShell Project.

Moduły Efficiency Booster PowerShell Project

Krok 10: W każdym folderze Module tworzymy plik z rozszerzeniem .psm1 i o dokładnie takiej samej nazwie jak folder Module. Na przykład, w folderze 03common tworzymy plik 03common.psm1

Plik modułu PowerShell psm1

Krok 11: Opcjonalnie możemy utworzyć plik manifestu (rozszerzenie.psd1) dla każdego modułu, który będzie dalej opisywał dany folder.

Krok 12: W tym samym folderze modułu, tworzymy plik z rozszerzeniem .ps1 (Regular PowerShell script file), w którym będziemy pisać kod dla naszego własnego CmdLet. Na przykład, możemy utworzyć plik GetCPUInfo.ps1, w którym napiszemy kod dla naszego własnego CmdLet Get-CPUInfo.

Plik skryptowy Get-CPUInfo CmdLet

Krok 13: Teraz jesteśmy gotowi do napisania naszego własnego kodu CmdLet i oskryptowania go. Zapraszam do zapoznania się z przykładem Get-CPUInfo i innymi CmdLetami projektu Efficiency Booster PowerShell. W kolejnych postach napiszę więcej szczegółów na temat każdego CmdLeta w projekcie. Na razie pobierz kod źródłowy projektu tutaj.

Get-CPUInfo CmdLet kod źródłowy

Krok 14: Połącz skrypt CmdLet z właściwym modułem PowerShell. Otwórz plik .psm1 modułu i napisz następującą linię kodu:
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
Na przykład, dla Get-CPUInfo CmdLet piszemy tę linię kodu w pliku 03common.psm1 file:

. $psScriptRoot\GetCPUInfo.ps1 
Połączenie pliku skryptu CmdLet z modułem

Krok 15: W pliku skryptu Profile importujemy Moduł, który zawiera nasz plik skryptu CmdLet, więc w pliku profilu wpisujemy to polecenie.
Import-Module ModuleName
Na przykład, nasz Get-CPUInfo CmdLet jest częścią modułu 03common, więc piszemy ten kod w profilu:

Import-Module 03common
Łącznik między Profilem i Modułem

Krok 16: Powtarzamy kroki 9 -15 dla każdego Modułu i CmdLet, które chcemy mieć w naszym profilu i być ładowane z każdą sesją PowerShell, którą uruchamiamy.

Krok 17: Testujemy, czy wszystkie zaimportowane moduły są ładowane, gdy otwieramy określonego hosta. Możemy wylistować moduły używając następującego polecenia:

Get-Module -ListAvailable
Loaded modules in PowerShell Console Environment

Krok 18: Możemy przetestować, czy wszystkie CmdLety w ramach każdego modułu zostały załadowane do środowiska. Oto użyteczne przykładowe polecenie:

Get-Command -Module 02utils
Loaded CmdLets in PowerShell Console Environments for 02utils Module

Przydatne artykuły o profilach PowerShell

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.