- 11/30/2017
- 7 minut na przeczytanie
-
- S
- . s
- x
- q
- Krótki opis
- Długi opis
- Pliki profili
- Zmienna $PROFILE
- Jak utworzyć profil
- Jak edytować profil
- Jak wybrać profil
- Jak używać profilu
- Jak uruchomić profil
- Dodaj polecenia, które ułatwiają otwieranie profilu
- Dodaj funkcję, która wymienia aliasy dla dowolnego cmdleta
- Dostosuj swoją konsolę
- Dodaj niestandardowy znak zachęty PowerShell
- Parametr NoProfile
- Profile i polityka wykonania
- Profile i sesje zdalne
- See Also
Krótki opis
Opisuje, jak tworzyć i używać profilu PowerShell.
Długi opis
Można utworzyć profil PowerShell, aby dostosować środowisko i dodać elementy specyficzne dla danej sesji do każdej uruchamianej sesji PowerShell.
Profil PowerShell to skrypt, który jest uruchamiany podczas startu PowerShell. Profilu można użyć jako skryptu logowania w celu dostosowania środowiska. Można dodawać polecenia, aliasy, funkcje, zmienne, snap-iny, moduły i napędy PowerShella. Można także dodać do profilu inne elementy specyficzne dla sesji, aby były dostępne w każdej sesji bez konieczności ich importowania lub ponownego tworzenia.
PowerShell obsługuje kilka profili dla użytkowników i programów-hostów. Jednak nie tworzy tych profili za użytkownika. Ten temat opisuje profile oraz opisuje, jak tworzyć i utrzymywać profile na komputerze.
Wyjaśnia, jak używać parametru NoProfile konsoli PowerShell(PowerShell.exe), aby uruchomić PowerShell bez żadnych profili. Wyjaśnia również wpływ polityki wykonywania PowerShell na profile.
Pliki profili
PowerShell obsługuje kilka plików profili. Ponadto programy hostów PowerShell mogą obsługiwać własne profile specyficzne dla danego hosta.
Na przykład konsola PowerShell obsługuje następujące pliki profili podstawowych. Profile są wymienione w kolejności pierwszeństwa. Pierwszy profil ma najwyższy priorytet.
Opis | Ścieżka | |
---|---|---|
Wszyscy użytkownicy, wszystkie hosty | $PSHOME | Profil.ps1 |
All Users, Current Host | $PSHOME Microsoft.PowerShell_profile.ps1 | |
Current User, All Hosts | $HomeDocuments, PowerShell_profile.ps1 | |
Current user, Current Host | $HomeDocumentsPowerShell Microsoft.PowerShell_profile.ps1 |
Ścieżki profili zawierają następujące zmienne:
- zmienna
$PSHOME
, która przechowuje katalog instalacyjny dlaPowerShell - zmienna
$Home
, która przechowuje katalog domowy bieżącego użytkownika
Dodatkowo, inne programy, które hostują PowerShell, mogą obsługiwać własneprofile. Na przykład, Visual Studio Code obsługuje następujące profile specyficzne dla danego hosta.
Opis | Ścieżka |
---|---|
Wszyscy użytkownicy, bieżący host | $PSHOME.VSCode_profile.ps1 |
Current user, Current Host | $HomeDocuments>PowerShell Microsoft.VSCode_profile.ps1 |
W pomocy PowerShell profil „CurrentUser, Current Host” jest profilem najczęściej określanym jako „Twój profil PowerShell”.
Zmienna $PROFILE
Zmienna automatyczna $PROFILE
przechowuje ścieżki do profili PowerShell, które są dostępne w bieżącej sesji.
Aby wyświetlić ścieżkę profilu, wyświetl wartość zmiennej $PROFILE
. Można również użyć zmiennej $PROFILE
w poleceniu, aby reprezentować ścieżkę.
Zmienna $PROFILE
przechowuje ścieżkę do profilu „Bieżący użytkownik, bieżący host”. Inne profile są zapisane we właściwościach notatki zmiennej $PROFILE
.
Na przykład zmienna $PROFILE
ma następujące wartości w konsoli WindowsPowerShell.
Opis | Nazwa |
---|---|
Current User, Current Host | $PROFILE |
Current User, Current Host | $PROFILE.CurrentUserCurrentHost |
Current User, All Hosts | $PROFILE.CurrentUserAllHosts |
All Users, Current Host | $PROFILE.AllUsersCurrentHost |
All Users, All Hosts | $PROFILE.AllUsersAllHosts |
Ponieważ wartości zmiennej $PROFILE
zmieniają się dla każdego użytkownika i w każdej aplikacji hosta, upewnij się, że wyświetlasz wartości zmiennych profilu w każdej używanej aplikacji hosta PowerShell.
Aby wyświetlić bieżące wartości zmiennej $PROFILE
, wpisz:
$PROFILE | Get-Member -Type NoteProperty
Zmiennej $PROFILE
można używać w wielu poleceniach. Na przykład poniższe polecenie otwiera profil „Bieżący użytkownik, bieżący host” w Notatniku:
notepad $PROFILE
Następujące polecenie określa, czy profil „Wszyscy użytkownicy, wszystkie hosty” został utworzony na komputerze lokalnym:
Test-Path -Path $PROFILE.AllUsersAllHosts
Jak utworzyć profil
Aby utworzyć profil PowerShell, należy użyć następującego formatu polecenia:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
Na przykład, aby utworzyć profil dla bieżącego użytkownika w bieżącej aplikacji hostaPowerShell, należy użyć następującego polecenia:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
W tym poleceniu deklaracja If
zapobiega nadpisaniu istniejącego profilu. Zastąp wartość znacznika <profile-path> ścieżką do pliku profilu, który chcesz utworzyć.
Uwaga
Aby utworzyć profile „Wszyscy użytkownicy” w systemie Windows Vista i późniejszych wersjachWindows, uruchom program PowerShell z opcją Uruchom jako administrator.
Jak edytować profil
Możesz otworzyć dowolny profil PowerShell w edytorze tekstu, takim jak Notatnik.
Aby otworzyć profil bieżącego użytkownika w bieżącej hostaplikacji PowerShell w Notatniku, wpisz:
notepad $PROFILE
Aby otworzyć inne profile, podaj nazwę profilu. Na przykład, aby otworzyć profil dla wszystkich użytkowników wszystkich aplikacji-hostów, wpisz:
notepad $PROFILE.AllUsersAllHosts
Aby zastosować zmiany, zapisz plik profilu, a następnie uruchom ponownie PowerShell.
Jak wybrać profil
Jeśli używasz wielu aplikacji-hostów, umieść elementy używane we wszystkich aplikacjach-hostach w profilu $PROFILE.CurrentUserAllHosts
. Elementy, które są specyficzne dla aplikacji hosta, takie jak polecenie ustawiające kolor tła dla aplikacji hosta, umieść w profilu specyficznym dla tej aplikacji hosta.
Jeśli jesteś administratorem, który dostosowuje PowerShell dla wielu użytkowników, postępuj zgodnie z poniższymi wskazówkami:
- Przechowuj wspólne elementy w profilu
$PROFILE.AllUsersAllHosts
- Przechowuj elementy specyficzne dla aplikacji hosta w
$PROFILE.AllUsersCurrentHost
profilach specyficznych dla aplikacji hosta - Przechowuj elementy dla poszczególnych użytkowników w profilach specyficznych dla użytkownika
Pamiętaj, aby sprawdzić dokumentację aplikacji hosta pod kątem wszelkich specjalnych implementacji profili PowerShell.
Jak używać profilu
Wiele elementów tworzonych w PowerShell i większość poleceń, które się wykonuje, oddziałuje tylko na bieżącą sesję. Po zakończeniu sesji elementy te są usuwane.
Do poleceń i elementów specyficznych dla sesji należą zmienne, zmienne preferencji, aliasy, funkcje, polecenia (z wyjątkiem poleceniaSet-ExecutionPolicy) i moduły PowerShell dodane do sesji.
Aby zachować te elementy i udostępnić je we wszystkich przyszłych sesjach, należy dodać je do profilu PowerShell.
Innym częstym zastosowaniem profili jest zapisywanie często używanych funkcji, aliasów i zmiennych. Po zapisaniu elementów w profilu można ich używać w każdej możliwej do zastosowania sesji bez konieczności ponownego ich tworzenia.
Jak uruchomić profil
Gdy otworzysz plik profilu, jest on pusty. Możesz jednak wypełnić go zmiennymi, aliasami i poleceniami, których często używasz.
Oto kilka sugestii, abyś mógł zacząć.
Dodaj polecenia, które ułatwiają otwieranie profilu
Jest to szczególnie przydatne, jeśli używasz profilu innego niż „Bieżący użytkownik, bieżący host”. Na przykład, dodaj następujące polecenie:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Dodaj funkcję, która wymienia aliasy dla dowolnego cmdleta
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Dostosuj swoją konsolę
function Color-Console { $Host.ui.rawui.backgroundcolor = "white" $Host.ui.rawui.foregroundcolor = "black" $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)" $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)" Clear-Host}Color-Console
Dodaj niestandardowy znak zachęty PowerShell
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Więcej informacji na temat znaku zachęty PowerShell, zobaczabout_Prompts.
Parametr NoProfile
Aby uruchomić PowerShell bez profili, należy użyć parametru NoProfile w programiePowerShell.exe, który uruchamia PowerShell.
Aby rozpocząć, należy otworzyć program, który może uruchomić PowerShell, taki jak Cmd.exe lub samPowerShell. Można również użyć okna dialogowego Uruchom w systemie Windows.
Typ:
PowerShell -NoProfile
Aby uzyskać pełną listę parametrów programu PowerShell.exe, wpisz:
PowerShell -?
Profile i polityka wykonania
Polityka wykonania programu PowerShell określa częściowo, czy można uruchamiać skrypty i ładować pliki konfiguracyjne, w tym profile. Domyślnie ustawiona jest polityka Restrictedexecution. Uniemożliwia ona uruchamianie wszystkich skryptów, w tym profili. Jeśli użyjesz polityki „Restricted”, profil nie zostanie uruchomiony, a jego zawartość nie zostanie zastosowana.
Polecenie Set-ExecutionPolicy
ustawia i zmienia politykę wykonywania. Jest to jedno z niewielu poleceń, które ma zastosowanie we wszystkich sesjach PowerShell, ponieważ wartość jest zapisywana w rejestrze. Nie trzeba go ustawiać przy otwieraniu konsoli i nie trzeba przechowywać polecenia Set-ExecutionPolicy
w profilu.
Profile i sesje zdalne
Profile PowerShell nie są uruchamiane automatycznie w sesjach zdalnych, więc polecenia dodawane przez profile 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-Commandcmdlet.
Na przykład poniższe polecenie uruchamia profil „Bieżący użytkownik, bieżący host „z komputera lokalnego w sesji $s
.
Invoke-Command -Session $s -FilePath $PROFILE
Następujące polecenie uruchamia profil „Bieżący użytkownik, bieżący host” z komputera zdalnego w sesji $s
. Ponieważ zmienna $PROFILE
nie jest wypełniona, polecenie używa jawnej ścieżki do profilu. Używamy operatora dotsourcing, aby profil wykonywał się w bieżącym zakresie na zdalnym komputerze, a nie we własnym zakresie.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Po wykonaniu tego polecenia polecenia, polecenia, które profil dodaje do sesji, są dostępne w $s
.
See Also
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
about_Scopes
Set-ExecutionPolicy
.