Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Många människor gillar att använda PowerShell eftersom det tillåter dem att göra saker som inte kan göras med Windows GUI. Trots det går det inte att förneka att vissa PowerShell-cmdlets kan vara lite tråkiga eller komplicerade. Men tänk om det fanns ett sätt att kunna redigera dessa cmdlets och få dem att "beta sig" som du vill? Tro det eller ej, det finns ett enkelt sätt att göra det. Du kan ändra beteendet för cmdleten genom att ändra värdena för PowerShells standardparametrar. Den här artikeln kommer att visa dig hur du använder PowerShells standardparametrar för att ändra beteendet för cmdlet-kommandot.

Varning

Innan du sätter igång finns det några saker du måste tänka på. Även om det är bekvämt att ändra PowerShells standardparametrar och cmdelt-beteende, kan det leda till problem. Om du kör ett skript och det skriptet antar att den modifierade cmdleten kommer att bete sig på ett visst sätt, kan du få oförutsägbara resultat. Därför bör du se till att ändra PowerShells standardparametrar noggrant.

Snabb genomgång

Det finns två PowerShell-koncept som du måste vara bekant med för att kunna arbeta med standardparametrar. Det första konceptet är variabelt. I PowerShell börjar variabelnamn alltid med ett dollartecken, och du kan skriva innehållet i en variabel genom att skriva variabelnamnet.

Det andra konceptet du kanske känner till är hashtabellen. En hashtabell är i huvudsak en lista som består av nyckel/värdepar. Anta till exempel att du vill skapa en hashtabell som innehåller namnen på amerikanska delstater och deras förkortningar. Nedan är koden:

$StateList = @{}
$StateList.add('Florida','FL')
$StateList.add('South Carolina','SC')
$StateList.add('Georgia','GA')
$StateList

Den första raden med kod skapar en tom hashtabell som heter $StateList . De följande tre raderna lägger till poster i tabellen. Varje post består av en nyckel (tillståndsnamn) och ett värde (tillståndsförkortning). Den sista raden listar tabellens innehåll. Du kan se koden i aktion i bilden nedan.

Detta är bara ett väldigt enkelt exempel och det finns många andra sätt att använda hashtabeller.

Arbeta med PowerShells standardparametrar

PowerShell har en inbyggd variabel som används för att lagra standardparametrar som används med dess cmdlets. Denna variabel kallas $PSDefaultParameterValues . Som du kanske har märkt från den första introduktionen och namnet på variabeln är detta inte en vanlig variabel utan en hashtabell. Men om du anger variabelnamnet i PowerShell kommer du snabbt att se att tabellen är tom, som visas nedan.

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Så vad kan vi göra med denna $PSDefaultParameterValues -variabel . Som nämnts ovan kan du styra beteendet för PowerShell-cmdlets. Den enda poängen är att du inte kan övervinna de inneboende funktionerna i cmdlet-kommandot. Så låt oss titta på ett exempel.

Det här exemplet kanske inte är något du vill använda i verkligheten, men det kommer att visa dig hur lätt det är att radikalt ändra cmdlet-beteendet. Om du anger Get-TimeZone- cmdleten i PowerShell, kommer du att se namnet på den tidszon som din dator för närvarande är konfigurerad att använda. Du kan se detta exempel i bilden nedan.

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Nu ändrar vi denna cmdlet så att den inte visar den tidszon som systemet är konfigurerat att använda, utan istället de tillgängliga tidszonerna. För att göra detta behöver vi cmdlet-syntax med hjälp av Get-Help- cmdleten följt av Get-TimeZone- cmdleten . Du kan se syntaxen för cmdleten nedan.

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Denna syntax innehåller en parameter som heter ListAvailable . Ange kommandot nedan:

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

Den första delen av det här kommandot säger helt enkelt till PowerShell att du vill lägga till ett värde till hash-tabellen, precis som vi gjorde med förkortningsexemplet i USA i föregående avsnitt. Den här hashtabellen innehåller ett nyckel/värdepar. I det här fallet är nyckeln cmdlet-namnet (Get-TimeZone) följt av ett kommatecken och namnet på parametern du vill ställa in. I det här fallet är parameternamnet ListAvailable. Den andra delen av denna cmdlet är värdet du vill tilldela parametern. Här är det $True . ListAvailable-parametern behöver normalt inte ett värde, så att specificera $True är hur du säger till PowerShell att använda denna parameter utan att tilldela ett värde till den.

Om du tittar på bilden nedan ser du vad som händer när du kör Get-TimeZone cmdlet.

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Saker att tänka på

Det viktigaste att förstå är att lägga till ett nytt värde för en PowerShell-standardparameter är att ändra standardbeteendet för cmdleten, inte ta bort funktionerna för cmdleten. Även när du ändrar Get-TimeZone cmdlet för att visa tillgängliga tidszoner istället för att visa den aktuella tidszonen. Du kan fortfarande visa den aktuella tidszonsinformationen om du visar mer.

En annan sak du behöver veta är att anpassade standardparametrar kan tas bort. För att ta bort ett enskilt objekt, använd kommandot $PSDefaultParameterValues.Remove följt av namnet på objektet du vill ta bort. Till exempel:

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

Istället kan du ta bort hela innehållet i hashtabellen med det här kommandot:

$PSDefaultParameterValues.Clear();

Du kan se exempel på båda teknikerna nedan:

Hur man använder PowerShells standardparametrar för att ändra kommandobeteende

Du kan ta bort hela hashtabellen eller ta bort en enda post.

Att ändra standardbeteendet för ett cmdlet-kommando är något du inte gör ofta, men när du behöver det vet du redan hur du ändrar det.

Önskar dig framgång!

Se mer:


Lär dig mer om brandväggar, Windows-brandväggen på Windows Server 2012

Lär dig mer om brandväggar, Windows-brandväggen på Windows Server 2012

Windows-brandvägg med avancerad säkerhet är en brandvägg som körs på Windows Server 2012 och som är aktiverad som standard. Brandväggsinställningar i Windows Server 2012 hanteras i Windows-brandväggens Microsoft Management Console.

Så här ändrar du Vigor Draytek-modem och inloggningslösenord för router

Så här ändrar du Vigor Draytek-modem och inloggningslösenord för router

När användarna ändrar lösenordet för Vigor Draytek Modem och Routers inloggningsadminsida, begränsar användarna obehörig åtkomst för att ändra modemets lösenord, vilket säkrar viktig nätverksinformation.

Hur man enkelt överklocka RAM med AMD Ryzen Master

Hur man enkelt överklocka RAM med AMD Ryzen Master

Lyckligtvis kan användare av Windows-datorer som kör AMD Ryzen-processorer använda Ryzen Master för att enkelt överklocka RAM utan att röra BIOS.

7 sätt att fixa Windows-datorfel som inte laddas via USB-C

7 sätt att fixa Windows-datorfel som inte laddas via USB-C

USB-C-porten har blivit standarden för dataöverföring, videoutgång och laddning på moderna bärbara Windows-datorer. Även om detta är bekvämt, kan det vara frustrerande när du ansluter din bärbara dator till en USB-C-laddare och den inte laddas.

Hur man fixar felet Kan inte skapa tjänst på Ultraviewer

Hur man fixar felet Kan inte skapa tjänst på Ultraviewer

Felet Kan inte skapa tjänst på Ultraviewer uppstår när vi installerar programvaran med felkod 1072.

Hur man åtgärdar felet att inte visa ID på Ultraviewer

Hur man åtgärdar felet att inte visa ID på Ultraviewer

Felet att inte visa ID på Ultraviewer kommer att påverka fjärrdatoranslutningen.

Hur man använder Ultraviewer för att skicka och ta emot filer

Hur man använder Ultraviewer för att skicka och ta emot filer

Ultraviewer fjärrstyr datorn och har ett läge för att skicka och ta emot filer.

6 sätt att permanent radera filer på Windows

6 sätt att permanent radera filer på Windows

Normalt, när du tar bort en fil på Windows, kommer filen inte att raderas omedelbart utan sparas i papperskorgen. Efter det måste du göra ytterligare ett steg: töm papperskorgen. Men om du inte vill behöva göra det här andra steget kommer vi att visa dig hur du tar bort en fil permanent i artikeln nedan.

Hur påverkar den mörka webben säkerheten?

Hur påverkar den mörka webben säkerheten?

Det mörka nätet är en mystisk plats med ett berömt rykte. Att hitta det mörka nätet är inte svårt. Men att lära sig att navigera på ett säkert sätt är en annan sak, särskilt om du inte vet vad du gör eller vad du kan förvänta dig.

Vad är Adrozek-viruset? Hur du skyddar dig mot Adrozek-virus

Vad är Adrozek-viruset? Hur du skyddar dig mot Adrozek-virus

Tekniskt sett är Adrozek inte ett virus. Det är en webbläsarkapare, även känd som webbläsarmodifierare. Det betyder att skadlig programvara installerades på din dator utan din vetskap.