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 sesji programu PowerShell, która zostanie uruchamiana.
Profil programu PowerShell to skrypt uruchamiany podczas uruchamiania programu PowerShell. Możesz użyć profilu jako skryptu logowania, aby dostosować środowisko. Można dodawać polecenia, aliasy, funkcje, zmienne, przystawki, moduły i dyski programu PowerShell. Możesz również dodać do profilu inne elementy specyficzne dla sesji, 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 hostów. Nie tworzy jednak profilów. W tym temacie opisano profile oraz sposób tworzenia i obsługi profilów na komputerze.
Wyjaśniono w nim, jak używać parametru NoProfile konsoli programu PowerShell (PowerShell.exe) do uruchamiania programu PowerShell bez żadnych profilów. Wyjaśniono w nim wpływ zasad wykonywania programu PowerShell na profile.
Pliki profilu
Program PowerShell obsługuje kilka plików profilu. Ponadto programy hosta programu PowerShell mogą obsługiwać własne profile specyficzne dla hosta.
Na przykład konsola programu PowerShell obsługuje następujące pliki profilu podstawowego. Profile są wymienione w kolejności pierwszeństwa. Pierwszy profil ma najwyższy priorytet.
Opis | Ścieżka |
---|---|
Wszyscy użytkownicy, wszystkie hosty | Windows — $PSHOME\Profile.ps1 Linux — /usr/local/microsoft/powershell/7/profile.ps1 macOS — /usr/local/microsoft/powershell/7/profile.ps1 |
Wszyscy użytkownicy, bieżący host | Windows — $PSHOME\Microsoft.PowerShell_profile.ps1 Linux — /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1 macOS — /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1 |
Bieżący użytkownik, wszystkie hosty | Windows — $Home\[Moje ]DokumentyPowerShell\\Profile.ps1 Linux — ~/.config/powershell/profile.ps1 macOS — ~/.config/powershell/profile.ps1 |
Bieżący użytkownik, bieżący host | Windows — $Home\[Moje ]DokumentyPowerShell\\Microsoft.PowerShell_profile.ps1 Linux — ~/.config/powershell/Microsoft.Powershell_profile.ps1 macOS — ~/.config/powershell/Microsoft.Powershell_profile.ps1 |
Ścieżki profilu obejmują następujące zmienne:
- Zmienna
$PSHOME
, która przechowuje katalog instalacyjny programu PowerShell - Zmienna
$Home
, która przechowuje katalog macierzysty bieżącego użytkownika
Ponadto inne programy, które hostują program PowerShell, mogą obsługiwać własne profile. Na przykład Visual Studio Code obsługuje następujące profile specyficzne dla hosta.
Opis | Ścieżka |
---|---|
Wszyscy użytkownicy, bieżący host | \ $PSHOMEMicrosoft.VSCode_profile.ps1 |
Bieżący użytkownik, bieżący host | \$Home[Moje ]DokumentyPowerShell\\ Microsoft.VSCode_profile.ps1 |
W Pomocy programu PowerShell profil "CurrentUser, bieżący host" jest najczęściej określany jako "Twój profil programu PowerShell".
Uwaga
W Windows lokalizacji folderu Dokumenty można zmienić przez przekierowanie folderu lub OneDrive. Nie zalecamy przekierowywania folderu Documents do udziału sieciowego ani do niego OneDrive. Przekierowywanie folderu może spowodować niepowodzenie skryptów profilu i załadowanie modułów.
Zmienna $PROFILE zmienna
Zmienna $PROFILE
automatyczna 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ż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ą zapisywane we właściwościach notatki $PROFILE
zmiennej.
Na przykład zmienna $PROFILE
ma następujące wartości w Windows PowerShell konsoli.
Opis | Nazwa |
---|---|
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 zmieniają $PROFILE
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 aplikacji hosta programu PowerShell, która jest użyciu.
Aby wyświetlić bieżące wartości zmiennej $PROFILE
, wpisz:
$PROFILE | Get-Member -Type NoteProperty
Zmiennej można używać $PROFILE
w wielu poleceniach. Na przykład następujące polecenie otwiera profil "Bieżący użytkownik, bieżący host" w Notatnik:
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 dla 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 nadpisanie istniejącego profilu. Zastąp wartość symbolu zastępczego <profile-path> ścieżką do pliku profilu, który chcesz utworzyć.
Uwaga
Aby utworzyć profile "Wszyscy użytkownicy" w Windows Vista i nowszych wersjach programu Windows, uruchom program PowerShell z opcją Uruchom jako administrator.
Jak edytować profil
W edytorze tekstów można otworzyć dowolny profil programu PowerShell, na przykład Notatnik.
Aby otworzyć profil bieżącego użytkownika w bieżącej aplikacji hosta programu PowerShell w Notatnik, 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, których używasz we wszystkich aplikacjach hosta, w swoim $PROFILE.CurrentUserAllHosts
profilu. 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 dostosowywanie programu PowerShell dla wielu użytkowników, postępuj zgodnie z tymi wytycznymi:
- Przechowywanie wspólnych elementów w
$PROFILE.AllUsersAllHosts
profilu - Przechowywanie elementów specyficznych dla aplikacji hosta w profilach
$PROFILE.AllUsersCurrentHost
specyficznych dla aplikacji hosta - Przechowywanie elementów dla konkretnych użytkowników w profilach specyficznych dla użytkownika
Zapoznaj się z dokumentacją aplikacji hosta, aby uzyskać informacje o dowolnej specjalnej implementacji profilów programu PowerShell.
Jak używać profilu
Wiele elementów, które tworzysz 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, zmienne preferencji, aliasy, funkcje, polecenia (z wyjątkiem Set-ExecutionPolicy) i moduły programu PowerShell, które dodaje się do sesji.
Aby zapisać te elementy i udostępnić je we wszystkich przyszłych sesjach, dodaj je do profilu programu PowerShell.
Innym często używanym zastosowaniem profilów jest zapisywanie często używanych funkcji, aliasów i zmiennych. Po zapisaniu elementów w profilu można ich używać w dowolnej stosownej sesji bez ich ponownego tworzenia.
Jak uruchomić profil
Po otwarciu pliku profilu jest on pusty. Można go jednak wypełnić zmiennymi, aliasami i często używanymi poleceniami.
Oto kilka sugestii, które mogą rozpocząć pracę.
Dodawanie poleceń, które ułatwiają otwieranie profilu
Jest to szczególnie przydatne, jeśli używasz profilu innego niż profil "Bieżący użytkownik, bieżący host". Na przykład dodaj następujące polecenie:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
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 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
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.
Parametr NoProfile
Aby uruchomić program PowerShell bez profilów, użyj parametru NoProfile programu PowerShell.exe programu , 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żesz również użyć okna dialogowego Uruchom w Windows.
Wpisz:
PowerShell -NoProfile
Aby uzyskać pełną listę parametrów PowerShell.exe, wpisz:
PowerShell -?
Profile i zasady wykonywania
Zasady wykonywania programu PowerShell częściowo określają, czy można uruchamiać skrypty i ładować pliki konfiguracji, w tym profile. Zasady wykonywania z ograniczeniami są domyślne. Zapobiega to uruchamianiu wszystkich skryptów, w tym profilów. Jeśli używasz zasad "Ograniczone", profil nie zostanie uruchomiony i jego zawartość nie zostanie zastosowana.
Polecenie Set-ExecutionPolicy
ustawia i zmienia zasady wykonywania. Jest to jedno z kilku poleceń, które mają zastosowanie we wszystkich sesjach programu PowerShell, ponieważ wartość jest zapisywana w rejestrze. Nie trzeba go ustawiać po otwarciu konsoli i Set-ExecutionPolicy
nie trzeba przechowywać polecenia w profilu.
Profile i sesje zdalne
Profile programu PowerShell nie są uruchamiane automatycznie w sesjach zdalnych, dlatego polecenia, które dodają profile, nie są obecne w sesji zdalnej. Ponadto automatyczna zmienna $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 programie $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 w programie $s
. Ponieważ zmienna $PROFILE
nie jest wypełniona, polecenie używa jawnej ścieżki do profilu. Używamy operatora pozyskiwania 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 .$s
Zobacz też
Opinia
Prześlij i wyświetl opinię dla