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:


Så här fixar du Du har inte behörighet att spara på den här platsen i Windows

Så här fixar du Du har inte behörighet att spara på den här platsen i Windows

När Windows visar felet "Du har inte behörighet att spara på den här platsen", kommer detta att hindra dig från att spara filer i önskade mappar.

Topp bästa gratis och betalda Syslog Server-programvara för Windows

Topp bästa gratis och betalda Syslog Server-programvara för Windows

Syslog Server är en viktig del av en IT-administratörs arsenal, särskilt när det gäller att hantera händelseloggar på en centraliserad plats.

Vad är Error 524 A Timeout inträffade och hur man åtgärdar felet

Vad är Error 524 A Timeout inträffade och hur man åtgärdar felet

Fel 524: En timeout inträffade är en Cloudflare-specifik HTTP-statuskod som indikerar att anslutningen till servern stängdes på grund av en timeout.

Vad är fel 0x80070570? Hur fixar jag detta fel?

Vad är fel 0x80070570? Hur fixar jag detta fel?

Felkod 0x80070570 är ett vanligt felmeddelande på datorer, bärbara datorer och surfplattor som kör operativsystemet Windows 10. Det visas dock även på datorer som kör Windows 8.1, Windows 8, Windows 7 eller tidigare.

Instruktioner för att åtgärda blåskärmsfelet SIDFEL I ICKE PAGED OMRÅDE eller STOPP 0x00000050

Instruktioner för att åtgärda blåskärmsfelet SIDFEL I ICKE PAGED OMRÅDE eller STOPP 0x00000050

Blue screen of death-fel BSOD PAGE_FAULT_IN_NONPAGED_AREA eller STOP 0x00000050 är ett fel som ofta uppstår efter installation av en hårdvarudrivrutin, eller efter installation eller uppdatering av en ny programvara och i vissa fall är orsaken att felet beror på en korrupt NTFS-partition.

Vad ska du göra när du får ett internt fel i Video Scheduler?

Vad ska du göra när du får ett internt fel i Video Scheduler?

Video Scheduler Internal Error är också ett dödligt blåskärmsfel, det här felet uppstår ofta på Windows 10 och Windows 8.1. Den här artikeln visar dig några sätt att åtgärda det här felet.

Hur man förhindrar Epic Launcher från att starta med Windows

Hur man förhindrar Epic Launcher från att starta med Windows

För att få Windows 10 att starta snabbare och minska starttiden, nedan är stegen du måste följa för att ta bort Epic från Windows Startup och förhindra Epic Launcher från att starta med Windows 10.

3 bättre sätt att spara filer på skrivbordet

3 bättre sätt att spara filer på skrivbordet

Du bör inte spara filer på skrivbordet. Det finns bättre sätt att lagra datorfiler och hålla ordning på skrivbordet. Följande artikel kommer att visa dig mer effektiva platser att spara filer på Windows 10.

Åtgärda felet med skjutreglaget för ljusstyrka som försvinner från aktivitetsfältet

Åtgärda felet med skjutreglaget för ljusstyrka som försvinner från aktivitetsfältet

Oavsett orsaken, ibland måste du justera skärmens ljusstyrka för att passa olika ljusförhållanden och syften. Om du behöver observera detaljerna i en bild eller titta på en film måste du öka ljusstyrkan. Omvänt kanske du också vill sänka ljusstyrkan för att skydda din bärbara dators batteri.

9 sätt att fixa att Windows-datorn slumpmässigt vaknar för att söka efter uppdateringar

9 sätt att fixa att Windows-datorn slumpmässigt vaknar för att söka efter uppdateringar

Vaknar din dator slumpmässigt och poppar upp ett fönster som säger "Söker efter uppdateringar"? Vanligtvis beror detta på programmet MoUSOCoreWorker.exe - en Microsoft-uppgift som hjälper till att koordinera installationen av Windows-uppdateringar.