Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Много хора обичат да използват PowerShell , защото им позволява да правят неща, които не могат да се правят с GUI на Windows. Въпреки това не може да се отрече, че някои кратки команди на PowerShell могат да бъдат малко досадни или сложни. Но какво ще стане, ако има начин да можете да редактирате тези командлети и да ги накарате да се „държат“ по начина, по който искате? Вярвате или не, има лесен начин да направите това. Можете да промените поведението на cmdlet, като промените стойностите на параметрите по подразбиране на PowerShell. Тази статия ще ви покаже как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата cmdlet.

Внимание

Преди да започнете, има няколко неща, които трябва да имате предвид. Въпреки че промяната на параметрите по подразбиране на PowerShell и поведението на cmdelt е удобна, това може да доведе до проблеми. Ако изпълните скрипт и този скрипт предполага, че модифицираният cmdlet ще се държи по определен начин, може да получите непредвидими резултати. Следователно трябва внимателно да промените параметрите по подразбиране на PowerShell.

Бърз преглед

Има две концепции на PowerShell, с които трябва да сте запознати, за да работите с параметри по подразбиране. Първото понятие е променливо. В PowerShell имената на променливите винаги започват със знака за долар и можете да напишете съдържанието на променлива, като напишете името на променливата.

Втората концепция, с която може би сте запознати, е хеш таблицата. Хеш-таблицата е по същество списък, съставен от двойки ключ/стойност. Да предположим например, че искате да създадете хеш таблица, съдържаща имената на американските щати и техните съкращения. По-долу е кодът:

$StateList = @{}
$StateList.add('Флорида','FL')
$StateList.add('Южна Каролина','SC')
$StateList.add('Джорджия','GA')
$StateList

Първият ред код създава празна хеш таблица, наречена $StateList . Следващите три реда добавят записи към таблицата. Всеки запис се състои от ключ (име на състоянието) и стойност (съкращение на състоянието). Последният ред показва съдържанието на таблицата. Можете да видите кода в действие на изображението по-долу.

Това е само много прост пример и има много други начини за използване на хеш таблици.

Работете с параметрите по подразбиране на PowerShell

PowerShell има вградена променлива, използвана за съхраняване на параметри по подразбиране, използвани с неговите командлети. Тази променлива се нарича $PSDefaultParameterValues ​​​​. Както може би сте забелязали от първоначалното въведение и името на променливата, това не е обикновена променлива, а хеш таблица. Въпреки това, ако въведете името на променливата в PowerShell, бързо ще видите, че таблицата е празна, както е показано по-долу.

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

И така, какво можем да направим с тази променлива $PSDefaultParameterValues ​​​​. Както бе споменато по-горе, можете да контролирате поведението на кратки команди на PowerShell. Единственият момент е, че не можете да преодолеете присъщите възможности на командата cmdlet. Така че нека да разгледаме един пример.

Този пример може да не е нещо, което искате да използвате в реалния живот, но ще ви покаже колко лесно е радикално да промените поведението на cmdlet. Ако въведете cmdlet Get-TimeZone в PowerShell, ще видите името на часовата зона, която компютърът ви в момента е конфигуриран да използва. Можете да видите този пример на изображението по-долу.

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Сега променяме тази кратка команда, така че да не показва часовата зона, която системата е конфигурирана да използва, а вместо това наличните часови зони. За да направим това, имаме нужда от синтаксис на cmdlet, използвайки cmdlet Get-Help, последван от cmdlet Get-TimeZone . Можете да видите синтаксиса на кратката команда по-долу.

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Този синтаксис включва параметър, наречен ListAvailable . Въведете командата по-долу:

$PSDefaultParameterValues.Add(“Get-TimeZone:ListAvailable”,$True)

Първата част на тази команда просто казва на PowerShell, че искате да добавите стойност към хеш-таблицата, точно както направихме с примера за абревиатурата на американския щат в предишния раздел. Тази хеш таблица съдържа двойка ключ/стойност. В този случай ключът е името на cmdlet (Get-TimeZone), последвано от запетая и името на параметъра, който искате да зададете. В този случай името на параметъра е ListAvailable. Втората част от тази кратка команда е стойността, която искате да присвоите на параметъра. Тук е $True . Параметърът ListAvailable обикновено не се нуждае от стойност, така че указването на $True е начинът, по който казвате на PowerShell да използва този параметър, без да му присвоява стойност.

Ако погледнете изображението по-долу, ще видите какво се случва, когато стартирате cmdlet Get-TimeZone.

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Неща, които трябва да имате предвид

Най-важното нещо, което трябва да разберете, е, че добавянето на нова стойност за параметър по подразбиране на PowerShell означава промяна на поведението по подразбиране на кратката команда, а не премахване на възможностите на кратката команда. Дори когато промените кратката команда Get-TimeZone, за да показва наличните часови зони, вместо да показва текущата часова зона. Все още можете да покажете информацията за текущата часова зона, ако видите повече.

Друго нещо, което трябва да знаете е, че персонализираните параметри по подразбиране могат да бъдат премахнати. За да премахнете един елемент, използвайте командата $PSDefaultParameterValues.Remove , последвана от името на елемента, който искате да премахнете. Например:

$PSDefaultParameterValues.Remove(“Get-TimeZone:ListAvailable”)

Вместо това можете да изтриете цялото съдържание на хеш-таблицата, като използвате тази команда:

$PSDefaultParameterValues.Clear();

Можете да видите примери за двете техники по-долу:

Как да използвате параметрите по подразбиране на PowerShell, за да промените поведението на командата

Можете да изтриете цялата хеш таблица или да изтриете отделен запис.

Промяната на поведението по подразбиране на команда cmdlet е нещо, което не правите често, но когато имате нужда от него, вече знаете как да го промените.

С пожелание за успех!

Виж повече:


Какво е Scareware? Как да премахнете Scareware?

Какво е Scareware? Как да премахнете Scareware?

Scareware е злонамерена компютърна програма, предназначена да подмами потребителите да мислят, че е легитимно приложение и ви моли да харчите пари за нещо, което не прави нищо.

Как да увеличите скоростта на интернет връзката с cFosSpeed

Как да увеличите скоростта на интернет връзката с cFosSpeed

cFosSpeed ​​​​е софтуер, който увеличава скоростта на интернет връзката, намалява латентността на предаване и увеличава силата на връзката до около 3 пъти. Специално за тези, които играят онлайн игри, cFosSpeed ​​​​ще поддържа, за да можете да изпитате играта без проблеми с мрежата.

Научете за защитните стени, защитната стена на Windows на Windows Server 2012

Научете за защитните стени, защитната стена на Windows на Windows Server 2012

Защитната стена на Windows с разширена защита е защитна стена, която работи на Windows Server 2012 и е активирана по подразбиране. Настройките на защитната стена в Windows Server 2012 се управляват в конзолата за управление на защитната стена на Windows.

Как да промените паролата за влизане в модема и рутера Vigor Draytek

Как да промените паролата за влизане в модема и рутера Vigor Draytek

Когато променят паролата на администраторската страница за вход на Vigor Draytek Modem и Router, потребителите ще ограничат неоторизиран достъп за промяна на паролата на модема, осигурявайки важна мрежова информация.

Как лесно да овърклокнете RAM с AMD Ryzen Master

Как лесно да овърклокнете RAM с AMD Ryzen Master

За щастие, потребителите на компютри с Windows, работещи с процесори AMD Ryzen, могат да използват Ryzen Master за лесно овърклокване на RAM, без да докосват BIOS.

7 начина за коригиране на грешки на лаптоп с Windows, които не се зареждат през USB-C

7 начина за коригиране на грешки на лаптоп с Windows, които не се зареждат през USB-C

USB-C портът се превърна в стандарт за пренос на данни, видео изход и зареждане на модерни лаптопи с Windows. Въпреки че това е удобно, може да бъде разочароващо, когато включите лаптопа си в USB-C зарядно устройство и то не се зарежда.

Как да коригирате грешката Cannot Create Service на Ultraviewer

Как да коригирате грешката Cannot Create Service на Ultraviewer

Грешката Cannot Create Service на Ultraviewer възниква, когато инсталираме софтуера с код на грешка 1072.

Как да поправите грешката да не се показва ID на Ultraviewer

Как да поправите грешката да не се показва ID на Ultraviewer

Грешката да не се показва ID на Ultraviewer ще засегне връзката с отдалечен компютър.

Как да използвате Ultraviewer за изпращане и получаване на файлове

Как да използвате Ultraviewer за изпращане и получаване на файлове

Ultraviewer управлява компютъра дистанционно и има режим за изпращане и получаване на файлове.

6 начина за постоянно изтриване на файлове в Windows

6 начина за постоянно изтриване на файлове в Windows

Обикновено, когато изтривате файл в Windows, файлът няма да бъде изтрит веднага, а ще бъде записан в кошчето. След това ще трябва да направите още една стъпка: изпразнете кошчето. Но ако не искате да правите тази втора стъпка, ще ви покажем как да изтриете файл за постоянно в статията по-долу.