Chcę utworzyć alias
tematyce cmdlet
, które nie wygasają po zamknę bieżącej sesji PowerShell, powiedzmy, że mam ten alias:
C:\Users\Aymen> New-Alias Goto Set-Location
To doskonale tworzy Goto
alias, ale chcę go używać nawet po zamknięciu bieżącej sesji, jak mogę to osiągnąć.
Uwaga:
System pomocy programu PowerShell sugeruje, że mogę wyeksportować utworzone przeze mnie aliasy i zaimportować je następnym razem, gdy otworzę nową sesję, właściwie to nie jest to, czego szukam, czy istnieje bezpośredni, jasny sposób na utrzymanie aliasu po stworzyć go poprzez różne sesje
powershell
AymenDaoudi
źródło
źródło
Odpowiedzi:
AKTUALIZACJA - styczeń 2017 r
W
profile.ps1
pliku można przechowywać dowolny kod programu PowerShell, który ma być wykonywany przy każdym uruchomieniu programu PowerShell. Istnieje co najmniej 6 różnych ścieżek do przechowywania kodu, w zależności od tego, który użytkownik musi go wykonać. Możemy wziąć pod uwagę tylko 2 z nich: ścieżki „wszyscy użytkownicy” i „tylko Twój użytkownik”.Aby odpowiedzieć na twoje pytanie, musisz tylko utworzyć
profile.ps1
plik zawierający kod, który chcesz, aby został wykonanyi zapisz go we właściwej ścieżce:
"$Home\Documents"
(C: \ Users \ yourname \ Documents): tylko twój użytkownik wykona kod.$PsHome
(C: \ Windows \ System32 \ WindowsPowerShell \ v1.0): każdy użytkownik wykona kod.Aby zastosować zmiany, zamknij wszystkie otwarte wystąpienia programu PowerShell i uruchom je ponownie.
WSKAZÓWKI
Jeśli obie ścieżki zawierają
profile.ps1
plik, najpierw wykonywana jest ścieżka dla wszystkich użytkowników, a następnie określana dla użytkowników.Zawsze umieszczaj kod w profilu użytkownika, jeśli nie ma potrzeby rozszerzania jego wykonywania na każdego użytkownika. Nie potrzebujesz uprawnień administratora, aby dodać plik do przestrzeni użytkownika (w przeciwnym razie to zrobisz) i nie zanieczyszczasz przestrzeni innych użytkowników.
ZAPAMIĘTAJ!
$PsHome
Ścieżka różni się między 32- i 64-bitowych instancji PowerShell, więc trzeba wziąć pod uwagę zarówno środowisko, jeśli chcesz zawsze wykonać kod profilu. Zwykle ścieżki sąC:\Windows\System32\WindowsPowerShell\v1.0
przeznaczone dla środowiska 64-C:\Windows\SysWow64\WindowsPowerShell\v1.0
bitowego i 32-bitowego.źródło
\Users\{ME}\Documents\WindowsPowerShell
a następnie dodać, żeMicrosoft.PowerShell_profile.ps1
żadna z pozostałych ścieżek nie działa dla mnie."$HOME\Documents\WindowsPowerShell"
i nazewnictwoMicrosoft.PowerShell_profile.ps1
ogranicza zakres do nie-ISE i do bieżącego hosta, ale nie powinno to być kwestią uprawnień (to samo"$Home\Documents\profile.ps1" should apply
). Może tak nie jest, spróbuję, dziękuję za informacjęNew-Item -path $profile -type file -force
który utworzył folder i plikDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Nie jest dobrym pomysłem dodawanie tego rodzaju rzeczy bezpośrednio do
$env:WINDIR
folderów PowerShell.Zalecanym sposobem jest dodanie go do swojego profilu osobistego:
Teraz dodaj swój alias do pliku Microsoft.PowerShell_profile.ps1, który jest teraz otwarty:
Następnie zapisz go i odśwież bieżącą sesję za pomocą:
Uwaga: na wszelki wypadek, jeśli masz problem z pozwoleniem, taki jak
Wypróbuj poniższe polecenie i ponownie odśwież sesję.
źródło
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
. Ta-Scope
opcja sprawia, że jest nieco bezpieczniejszy.MyAlias
. Aby przekazać argumenty, użyj@Args
np.function gs { git status @Args }
Set-Alias
ponieważ lubię nazywać moje metody przy użyciu odpowiednich konwencji PS z odpowiednimi czasownikami. Ale tak, jeśli nie jesteś wybredny, możesz po prostu nazwać swoją metodę, cokolwiek zamierzasz wywołać.2018, Windows 10
Możesz utworzyć link do dowolnego pliku lub katalogu za pomocą prostego skryptu PowerShell.
Pisanie skryptu skrótu do pliku
Otwórz Windows PowerShell ISE. W okienku skryptu napisz:
Następnie przejdź do okienka wiersza poleceń. Znajdź swój adres profilu użytkownika programu PowerShell za pomocą
echo $profile
. Zapisz skrypt pod tym adresem.Skrypt w adresie profilu programu PowerShell będzie uruchamiany za każdym razem, gdy otworzysz program PowerShell. Skrót powinien działać z każdym nowym oknem programu PowerShell.
Pisanie skryptu skrótu do katalogu
Wymaga innej linii w naszym skrypcie.
Reszta jest dokładnie taka sama.
Włącz skrypty PowerShell
Domyślnie skrypty PowerShell są blokowane. Aby je włączyć, otwórz ustawienia -> Aktualizacja i zabezpieczenia -> Dla programistów. Wybierz tryb programisty (może wymagać ponownego uruchomienia). .
Przewiń w dół do sekcji PowerShell, zaznacz opcję „Zmień zasady wykonywania ...” i zastosuj.
źródło
echo $profile
to świetna wskazówka, która pomaga znaleźć właściwą lokalizację do dodania pliku. Dziękuję za wyczerpującą odpowiedźProsty. Na przykład...
Otwórz okno programu Windows PowerShell i wpisz:
Następnie utwórz funkcję, taką jak:
Następnie wpisz to pod nazwą funkcji:
Teraz możesz wpisać słowo „google” w programie Windows PowerShell i zlecić wykonanie kodu w ramach Twojej funkcji!
źródło
Wystarczy dodać do tej listy możliwych lokalizacji ...
To nie zadziałało dla mnie:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Jednak tak się stało:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Jeśli nie masz profilu lub chcesz go założyć, uruchom następujące polecenie, stworzy ono niezbędny folder / pliki, a nawet powie Ci, gdzie on mieszka!
New-Item -path $profile -type file -force
źródło
aby utworzyć plik profile1.psl, wpisz następujące polecenie:
nowa pozycja $ PROFILE.CurrentUserAllHosts -ItemType plik -Force
aby uzyskać dostęp do pliku, wpisz następną komendę:
ise $ PROFILE.CurrentUserAllHosts
Uwaga jeśli nie zrobiłeś tego wcześniej, zobaczysz, że nie będziesz mógł uruchomić skryptu z powodu swojej polityki wykonywania, którą musisz zmienić na Unrestricted from Restricted (domyślna).
aby to zrobić zamknij skrypt, a następnie wpisz polecenie:
Set-ExecutionPolicy -Scope CurrentUser
następnie:
RemoteSigned
to ponownie to polecenie:
ise $ PROFILE.CurrentUserAllHosts
następnie w końcu wpisz swoje aliasy w skrypcie, zapisz go i powinny być uruchamiane za każdym razem, gdy uruchomisz PowerShell, nawet po ponownym uruchomieniu komputera.
źródło
Set-ExecutionPolicy RemoteSigned
. Nie polecajUnrestricted
. Źródło: itprotoday.com/management-mobility/…To jest trochę fantazyjne ... ale działa:
Krok 1: Utwórz profil Powershell:
Krok 2: następnie w tools ~ / Documents / tools / profile.ps1:
Krok 3:
$ Set-ExecutionPolicy -Scope CurrentUser Unrestricted $. ./install_profile.ps1
źródło