Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 rozpoczynającej się sesji programu PowerShell.
Profil programu PowerShell to skrypt uruchamiany po uruchomieniu programu PowerShell. Profilu można używać jako skryptu logowania w celu dostosowania środowiska. Możesz dodawać polecenia, aliasy, funkcje, zmienne, przystawki, moduły i dyski programu PowerShell. Możesz także dodać do swojego profilu inne elementy specyficzne dla sesji, aby były dostępne w każdej sesji bez konieczności ich importowania lub ponownego tworzenia.
Program PowerShell obsługuje kilka profilów dla użytkowników i programów hostów. Nie tworzy jednak profili za Ciebie. 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) w celu uruchomienia programu PowerShell bez żadnych profilów. Wyjaśniono w nim również wpływ zasad wykonywania programu PowerShell na profile.
Pliki profilu
Program PowerShell obsługuje kilka plików profilów. 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 podstawowe pliki profilów. Profile są wymienione w kolejności pierwszeństwa. Pierwszy profil ma najwyższy priorytet.
| Opis | Ścieżka |
|---|---|
| Wszyscy użytkownicy, wszystkie hosty | $PSHOME\Profile.ps1 |
| Wszyscy użytkownicy, bieżący host | $PSHOME\Microsoft.PowerShell_profile.ps1 |
| Bieżący użytkownik, wszystkie hosty | $Home\[My ]Documents\WindowsPowerShell\Profile.ps1 |
| Bieżący użytkownik, Bieżący host | $Home\[Moje ]Dokumenty\WindowsPowerShell\ Microsoft.PowerShell_profile.ps1 |
Ścieżki profilu obejmują następujące zmienne:
- Zmienna
$PSHOME, która przechowuje katalog instalacyjny dla programu PowerShell - Zmienna
$Home, która przechowuje katalog domowy bieżącego użytkownika
Ponadto inne programy hostujące program PowerShell mogą obsługiwać własne profile. Na przykład zintegrowane środowisko skryptów programu PowerShell (ISE) obsługuje następujące profile specyficzne dla hosta.
| Opis | Ścieżka |
|---|---|
| Wszyscy użytkownicy, bieżący host | $PSHOME\Microsoft.PowerShellISE_profile.ps1 |
| Bieżący użytkownik, Bieżący host | $Home\[Moje ]Dokumenty\WindowsPowerShell\ Microsoft.PowerShellISE_profile.ps1 |
W Pomocy programu PowerShell profil "Bieżący użytkownik, bieżący host" jest profilem najczęściej nazywanym "profilem programu PowerShell".
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". Inne profile są zapisywane we właściwościach $PROFILE zmiennej.
Na przykład zmienna $PROFILE ma następujące wartości w konsoli programu Windows PowerShell.
| 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 $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 | Get-Member -Type NoteProperty
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 na komputerze lokalnym został utworzony profil "Wszyscy użytkownicy, wszystkie hosty":
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 instrukcja If uniemożliwia zastąpienie istniejącego profilu. Zastąp wartość <symbolu zastępczego ścieżki> profilu ścieżką do pliku profilu, który chcesz utworzyć.
Uwaga / Notatka
Aby utworzyć profile "Wszyscy użytkownicy" w systemie Windows Vista i nowszych wersjach systemu Windows, uruchom program PowerShell przy użyciu opcji 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. Elementy, które są specyficzne dla aplikacji hosta, takie jak polecenie ustawiające kolor tła dla aplikacji hosta, należy umieścić 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 typowych elementów w profilu
$PROFILE.AllUsersAllHosts - Przechowuj elementy specyficzne dla aplikacji hosta w profilach
$PROFILE.AllUsersCurrentHostspecyficznych dla aplikacji hosta - Przechowywanie elementów dla konkretnych użytkowników w profilach specyficznych dla użytkownika
Pamiętaj, aby zapoznać się z dokumentacją aplikacji hosta pod kątem dowolnej specjalnej implementacji profilów programu PowerShell.
Jak używać profilu
Wiele elementów utworzonych 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 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 profili 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.
Poniżej przedstawiono kilka sugestii, które ułatwiają rozpoczęcie pracy.
Dodaj polecenia, 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 listę aliasów 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 monitu 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 NoProfilePowerShell.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żna również użyć okna dialogowego Uruchamianie w systemie Windows.
Typ:
PowerShell -NoProfile
Aby uzyskać pełną listę parametrów PowerShell.exe, wpisz:
PowerShell -?
Profile i zasady wykonywania
Zasady wykonywania programu PowerShell określają częściowo, czy można uruchamiać skrypty i ładować pliki konfiguracji, w tym profile. Domyślne są zasady wykonywania z ograniczeniami. Uniemożliwia uruchamianie wszystkich skryptów, w tym profilów. Jeśli korzystasz z zasady "Ograniczone", profil nie zostanie uruchomiony, a jego zawartość nie zostanie zastosowana.
Zestawy poleceń Set-ExecutionPolicy i zmieniają zasady wykonywania. Jest to jedno z niewielu poleceń, które ma zastosowanie 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 swoim profilu.
Profile i sesje zdalne
Profile programu 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 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.
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. 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 w jego 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ż
Set-ExecutionPolicy (Ustaw-Politykę-Wykonania)