about_Profiles
Krótki opis
Opisuje sposób tworzenia i używania profilu programu PowerShell.
Długi opis
Możesz utworzyć profil programu PowerShell, aby dostosować środowisko i dodać elementy specyficzne dla sesji do każdej uruchamianej sesji programu PowerShell.
Profil programu PowerShell to skrypt uruchamiany po uruchomieniu programu PowerShell. Profil można użyć jako skryptu uruchamiania, aby dostosować środowisko. Możesz dodawać polecenia, aliasy, funkcje, zmienne, moduły, dyski programu PowerShell i nie tylko. Możesz również dodać inne elementy specyficzne dla sesji do profilu, aby były dostępne w każdej sesji bez konieczności importowania lub ponownego tworzenia.
Program PowerShell obsługuje kilka profilów dla użytkowników i programów hosta. Nie tworzy jednak profilów.
Typy profilów i lokalizacje
Program PowerShell obsługuje kilka plików profilów, które są ograniczone do użytkowników i hostów programu PowerShell. Na komputerze można mieć dowolne lub wszystkie te profile.
Konsola programu PowerShell obsługuje następujące podstawowe pliki profilów. Te ścieżki plików są lokalizacjami domyślnymi.
- Wszyscy użytkownicy, wszystkie hosty
- Windows —
$PSHOME\Profile.ps1
- Linux-
/opt/microsoft/powershell/7/profile.ps1
- Macos-
/usr/local/microsoft/powershell/7/profile.ps1
- Windows —
- Wszyscy użytkownicy, bieżący host
- Windows —
$PSHOME\Microsoft.PowerShell_profile.ps1
- Linux-
/opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
- Macos-
/usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
- Windows —
- Bieżący użytkownik, wszystkie hosty
- Windows —
$HOME\Documents\PowerShell\Profile.ps1
- Linux-
~/.config/powershell/profile.ps1
- Macos-
~/.config/powershell/profile.ps1
- Windows —
- Bieżący użytkownik, bieżący host
- Windows —
$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
- Linux-
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- Macos-
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- Windows —
Uwaga
W systemie Windows lokalizację Documents
folderu można zmienić za pomocą przekierowania folderów lub usługi OneDrive. Nie zalecamy przekierowywania folderu do udziału sieciowego ani dołączania Documents
go do usługi OneDrive. Przekierowanie folderu może spowodować niepowodzenie ładowania modułów i tworzenie błędów w skryptach profilu.
Aby uzyskać informacje o usuwaniu Documents
folderu z zarządzania usługą OneDrive, zapoznaj się z dokumentacją usługi OneDrive.
Skrypty profilu są wykonywane w podanej kolejności. Oznacza to, że zmiany wprowadzone w profilu AllUsersAllHosts mogą zostać zastąpione przez dowolny z innych skryptów profilu. Profil CurrentUserCurrentHost zawsze jest uruchamiany jako ostatni. W Pomocy programu PowerShell profil CurrentUserCurrentHost jest najczęściej określany jako profil programu PowerShell.
Inne programy obsługujące program PowerShell mogą obsługiwać własne profile. Na przykład Visual Studio Code (VS Code) obsługuje następujące profile specyficzne dla hosta.
- Wszyscy użytkownicy, bieżący host —
$PSHOME\Microsoft.VSCode_profile.ps1
- Bieżący użytkownik, bieżący host —
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
Ścieżki profilu obejmują następujące zmienne:
- Zmienna
$PSHOME
przechowuje katalog instalacyjny programu PowerShell - Zmienna
$HOME
przechowuje katalog główny bieżącego użytkownika
Uwaga
W systemie Windows lokalizację Documents
folderu można zmienić za pomocą przekierowania folderów lub usługi OneDrive. Nie zalecamy przekierowywania folderu do udziału sieciowego ani dołączania Documents
go do usługi OneDrive. Przekierowanie folderu może spowodować niepowodzenie ładowania modułów i tworzenie błędów w skryptach profilu.
Aby uzyskać informacje o usuwaniu Documents
folderu z zarządzania usługą OneDrive, zapoznaj się z dokumentacją usługi OneDrive.
Zmienna $PROFILE
Zmienna automatyczna $PROFILE
przechowuje ścieżki do profilów programu PowerShell, które są dostępne w bieżącej sesji.
Aby wyświetlić ścieżkę profilu, wyświetl wartość zmiennej $PROFILE
. Możesz 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". Pozostałe profile są zapisywane we właściwościach zmiennej $PROFILE
.
Na przykład zmienna $PROFILE
ma następujące wartości w konsoli Windows PowerShell.
- Bieżący użytkownik, bieżący host —
$PROFILE
- Bieżący użytkownik, bieżący host —
$PROFILE.CurrentUserCurrentHost
- Bieżący użytkownik, wszystkie hosty —
$PROFILE.CurrentUserAllHosts
- Wszyscy użytkownicy, bieżący host —
$PROFILE.AllUsersCurrentHost
- Wszyscy użytkownicy, wszystkie hosty —
$PROFILE.AllUsersAllHosts
Ponieważ wartości zmiennej $PROFILE
zmieniają się dla każdego użytkownika i w każdej aplikacji hosta, upewnij się, że wartości zmiennych profilu są wyświetlane w każdej używanej aplikacji hosta programu PowerShell.
Aby wyświetlić bieżące wartości zmiennej $PROFILE
, wpisz:
$PROFILE | Select-Object *
Można użyć zmiennej $PROFILE
w wielu poleceniach. Na przykład następujące 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 programu PowerShell, użyj następującego formatu polecenia:
if (!(Test-Path -Path <profile-name>)) {
New-Item -ItemType File -Path <profile-name> -Force
}
Aby na przykład utworzyć profil bieżącego użytkownika w bieżącej aplikacji hosta programu PowerShell, użyj następującego polecenia:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
W tym poleceniu if
instrukcja uniemożliwia zastąpienie istniejącego profilu. Zastąp wartość zmiennej $PROFILE
ścieżką do pliku profilu, który chcesz utworzyć.
Uwaga
Aby utworzyć profile "Wszyscy użytkownicy" w systemie Windows Vista i nowszych wersjach systemu Windows, uruchom program PowerShell z opcją Uruchom jako administrator .
Jak edytować profil
Możesz otworzyć dowolny profil programu PowerShell w edytorze tekstów, takim jak Notatnik.
Aby otworzyć profil bieżącego użytkownika w bieżącej aplikacji hosta programu PowerShell w Notatniku, wpisz:
notepad $PROFILE
Aby otworzyć inne profile, określ nazwę profilu. Aby na przykład otworzyć profil dla wszystkich użytkowników wszystkich aplikacji hosta, wpisz:
notepad $PROFILE.AllUsersAllHosts
Aby zastosować zmiany, zapisz plik profilu, a następnie uruchom ponownie program PowerShell.
Jak wybrać profil
Jeśli używasz wielu aplikacji hosta, umieść elementy używane we wszystkich aplikacjach hosta w profilu $PROFILE.CurrentUserAllHosts
. Umieść elementy specyficzne dla aplikacji hosta, takie jak polecenie, które ustawia kolor tła dla aplikacji hosta, w profilu specyficznym dla tej aplikacji hosta.
Jeśli jesteś administratorem, który dostosowuje program PowerShell dla wielu użytkowników, postępuj zgodnie z następującymi wytycznymi:
- Przechowywanie wspólnych elementów w
$PROFILE.AllUsersAllHosts
profilu - Przechowywanie elementów specyficznych dla aplikacji hosta w
$PROFILE.AllUsersCurrentHost
profilach specyficznych dla aplikacji hosta - Przechowywanie elementów dla określonych użytkowników w profilach specyficznych dla użytkownika
Pamiętaj, aby zapoznać się z dokumentacją aplikacji hosta pod kątem specjalnej implementacji profilów programu PowerShell.
Jak używać profilu
Wiele elementów tworzonych w programie PowerShell i większość uruchamianych poleceń ma wpływ tylko na bieżącą sesję. Po zakończeniu sesji elementy zostaną usunięte.
Polecenia i elementy specyficzne dla sesji obejmują zmienne programu PowerShell, zmienne środowiskowe, aliasy, funkcje, polecenia i moduły programu PowerShell dodawane do sesji.
Aby zapisać te elementy i udostępnić je we wszystkich przyszłych sesjach, dodaj je do profilu programu PowerShell.
Innym typowym zastosowaniem profilów jest zapisywanie często używanych funkcji, aliasów i zmiennych. Podczas zapisywania elementów w profilu można ich używać w dowolnej odpowiedniej sesji bez ich ponownego tworzenia.
Jak uruchomić profil
Po otwarciu pliku profilu jest on pusty. Można jednak wypełnić je zmiennymi, aliasami i poleceniami, których często używasz.
Oto kilka sugestii, które ułatwiają rozpoczęcie pracy.
Dodawanie funkcji, która wyświetla aliasy dla dowolnego polecenia cmdlet
function Get-CmdletAlias ($cmdletname) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
Format-Table -Property Definition, Name -AutoSize
}
Dostosowywanie konsoli
function CustomizeConsole {
$hosttime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
$hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
$Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
Clear-Host
}
CustomizeConsole
Dodawanie dostosowanego wiersza polecenia programu PowerShell
function Prompt {
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
Aby uzyskać więcej informacji na temat wiersza polecenia programu PowerShell, zobacz about_Prompts.
Aby zapoznać się z innymi przykładami profilów, zobacz Dostosowywanie środowiska powłoki.
Parametr NoProfile
Aby uruchomić program PowerShell bez profilów, użyj parametru NoProfile programu pwsh.exe
, który uruchamia program PowerShell.
Aby rozpocząć, otwórz program, który może uruchomić program PowerShell, taki jak Cmd.exe lub sam program PowerShell. Można również użyć okna dialogowego Uruchamianie w systemie Windows.
Wpisz:
pwsh -NoProfile
Aby uzyskać pełną listę parametrów pwsh.exe
typu , wpisz:
pwsh -?
Profile i zasady wykonywania
Zasady wykonywania programu PowerShell określają częściowo, czy można uruchamiać skrypty i ładować pliki konfiguracji, w tym profile. Zasady wykonywania z ograniczeniami są domyślne. Zapobiega on uruchamianiu wszystkich skryptów, w tym profilów. Jeśli używasz zasad "Ograniczone", profil nie zostanie uruchomiony, a jego zawartość nie zostanie zastosowana.
Polecenie Set-ExecutionPolicy
ustawia i zmienia zasady wykonywania. jest to jedno z niewielu poleceń, które są stosowane we wszystkich sesjach programu PowerShell, ponieważ wartość jest zapisywana w rejestrze. Nie musisz go ustawiać po otwarciu konsoli i nie musisz przechowywać Set-ExecutionPolicy
polecenia w profilu.
Profile i sesje zdalne
Profile programu PowerShell nie są uruchamiane automatycznie w sesjach zdalnych, więc polecenia dodane przez profile nie są obecne w sesji zdalnej. Ponadto zmienna automatyczna $PROFILE
nie jest wypełniana w sesjach zdalnych.
Aby uruchomić profil w sesji, użyj polecenia cmdlet Invoke-Command .
Na przykład następujące polecenie uruchamia profil "Bieżący użytkownik, bieżący host" z komputera lokalnego w sesji w $s
programie .
Invoke-Command -Session $s -FilePath $PROFILE
Następujące polecenie uruchamia profil "Bieżący użytkownik, bieżący host" z komputera zdalnego w sesji w $s
programie . Ponieważ zmienna $PROFILE
nie jest wypełniana, polecenie używa jawnej ścieżki do profilu. Używamy operatora określania kropki, aby profil był wykonywany w bieżącym zakresie na komputerze zdalnym, a nie we własnym zakresie.
Invoke-Command -Session $s -ScriptBlock {
. "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}
Po uruchomieniu tego polecenia polecenia, które profil dodaje do sesji, są dostępne w pliku $s
.