Wiele osób lubi używać PowerShell , ponieważ pozwala im robić rzeczy, których nie można zrobić za pomocą GUI systemu Windows. Mimo to nie można zaprzeczyć, że niektóre polecenia cmdlet programu PowerShell mogą być nieco nudne lub skomplikowane. Ale co by było, gdyby istniał sposób na edytowanie tych poleceń cmdlet i sprawienie, aby „zachowywały się” tak, jak chcesz? Wierzcie lub nie, ale jest na to prosty sposób. Możesz zmienić zachowanie polecenia cmdlet, modyfikując wartości domyślnych parametrów PowerShell. W tym artykule dowiesz się, jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń cmdlet.
Ostrzeżenie
Zanim zaczniesz, musisz pamiętać o kilku rzeczach. Chociaż zmiana domyślnych parametrów programu PowerShell i zachowania polecenia cmdelt jest wygodna, może prowadzić do problemów. Jeśli uruchomisz skrypt, który zakłada, że zmodyfikowane polecenie cmdlet będzie zachowywać się w określony sposób, możesz uzyskać nieprzewidywalne wyniki. Dlatego należy ostrożnie zmieniać domyślne parametry programu PowerShell.
Szybki przegląd
Aby pracować z parametrami domyślnymi, należy zapoznać się z dwiema koncepcjami programu PowerShell. Pierwsza koncepcja jest zmienna. W programie PowerShell nazwy zmiennych zawsze zaczynają się od znaku dolara i można zapisać zawartość zmiennej, wpisując jej nazwę.
Drugą koncepcją, którą być może znasz, jest tablica mieszająca. Tabela mieszająca to w zasadzie lista złożona z par klucz/wartość. Załóżmy na przykład, że chcesz utworzyć tabelę skrótów zawierającą nazwy stanów USA i ich skróty. Poniżej znajduje się kod:
$StateList = @{}
$StateList.add('Floryda','FL')
$StateList.add('Karolina Południowa','SC')
$StateList.add('Georgia','GA')
$StateList
Pierwsza linia kodu tworzy pustą tabelę mieszającą o nazwie $StateList . Kolejne trzy wiersze dodają wpisy do tabeli. Każdy wpis składa się z klucza (nazwy stanu) i wartości (skrótu stanu). Ostatnia linia zawiera listę zawartości tabeli. Możesz zobaczyć kod w akcji na obrazku poniżej.
To tylko bardzo prosty przykład, a istnieje wiele innych sposobów wykorzystania tablic skrótów.
Pracuj z domyślnymi parametrami programu PowerShell
PowerShell ma wbudowaną zmienną służącą do przechowywania domyślnych parametrów używanych z poleceniami cmdlet. Ta zmienna nazywa się $PSDefaultParameterValues . Jak być może zauważyłeś na podstawie wstępnego wprowadzenia i nazwy zmiennej, nie jest to zwykła zmienna, ale tablica mieszająca. Jeśli jednak wprowadzisz nazwę zmiennej do PowerShell, szybko zobaczysz, że tabela jest pusta, jak pokazano poniżej.

Co więc możemy zrobić z tą zmienną $PSDefaultParameterValues . Jak wspomniano powyżej, możesz kontrolować zachowanie poleceń cmdlet programu PowerShell. Jedynym punktem jest to, że nie można pokonać nieodłącznych możliwości polecenia cmdlet. Spójrzmy więc na przykład.
Ten przykład może nie być czymś, czego chciałbyś używać w prawdziwym życiu, ale pokaże Ci, jak łatwo można radykalnie zmienić zachowanie poleceń cmdlet. Jeśli wprowadzisz polecenie cmdlet Get-TimeZone w programie PowerShell, zobaczysz nazwę strefy czasowej, z której aktualnie korzysta Twój komputer. Możesz zobaczyć ten przykład na obrazku poniżej.
![Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń]()
Teraz zmieniamy to polecenie cmdlet tak, aby nie wyświetlało strefy czasowej, do której system jest skonfigurowany, ale zamiast tego dostępne strefy czasowe. Aby to zrobić, potrzebujemy składni poleceń cmdlet przy użyciu polecenia cmdlet Get-Help, po którym następuje polecenie cmdlet Get-TimeZone . Poniżej możesz zobaczyć składnię polecenia cmdlet.
![Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń]()
Ta składnia zawiera parametr o nazwie ListAvailable . Wpisz poniższe polecenie:
$PSDefaultParameterValues.Add(“Pobierz strefę czasową:ListAvailable”,$True)
Pierwsza część tego polecenia po prostu informuje PowerShell, że chcesz dodać wartość do tabeli skrótów, tak jak zrobiliśmy to w przykładzie skrótu stanu USA w poprzedniej sekcji. Ta tabela mieszająca zawiera parę klucz/wartość. W tym przypadku kluczem jest nazwa polecenia cmdlet (Get-TimeZone), po której następuje przecinek i nazwa parametru, który chcesz ustawić. W tym przypadku nazwa parametru to ListAvailable. Druga część tego polecenia cmdlet to wartość, którą chcesz przypisać do parametru. Tutaj jest $True . Parametr ListAvailable zwykle nie wymaga wartości, dlatego określenie $True informuje program PowerShell, aby używał tego parametru bez przypisywania mu wartości.
Jeśli spojrzysz na poniższy obrazek, zobaczysz, co się stanie po uruchomieniu polecenia cmdlet Get-TimeZone.
![Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń]()
Rzeczy, o których warto pamiętać
Najważniejszą rzeczą do zrozumienia jest to, że dodanie nowej wartości domyślnego parametru programu PowerShell powoduje zmianę domyślnego zachowania polecenia cmdlet, a nie usunięcie jego możliwości. Nawet jeśli zmienisz polecenie cmdlet Get-TimeZone, aby wyświetlać dostępne strefy czasowe zamiast pokazywać bieżącą strefę czasową. Jeśli wyświetlisz więcej, możesz nadal wyświetlać informacje o bieżącej strefie czasowej.
Kolejną rzeczą, którą musisz wiedzieć, jest to, że niestandardowe parametry domyślne można usunąć. Aby usunąć pojedynczy element, użyj polecenia $PSDefaultParameterValues.Remove , po którym podaj nazwę elementu, który chcesz usunąć. Na przykład:
$PSDefaultParameterValues.Remove(“Pobierz strefę czasową:ListAvailable”)
Zamiast tego możesz usunąć całą zawartość tabeli mieszającej za pomocą tego polecenia:
$PSDefaultParameterValues.Clear();
Poniżej możesz zobaczyć przykłady obu technik:
![Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń Jak używać domyślnych parametrów programu PowerShell do zmiany zachowania poleceń]()
Możesz usunąć całą tabelę skrótów lub pojedynczy wpis.
Zmiana domyślnego zachowania polecenia cmdlet nie jest czymś, co robisz często, ale kiedy tego potrzebujesz, już wiesz, jak to zmienić.
Życzę powodzenia!
Zobacz więcej: