• 11/30/2017
  • 7 minut na przeczytanie
    • S
    • . s
    • x
    • q

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

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.