Dela det här inlägget:

En PowerShell-profil är ett skript som körs när PowerShell startar och som har ett visst namn.

PowerShell har stöd för flera profiler för användare och värdprogram. När vi säger värdprogram tänker vi främst på Windows PowerShell Console och Windows PowerShell ISE. Det skapar dock inte profilerna åt dig så fortsätt att läsa den här artikeln så ska jag visa dig hur du skapar och anpassar profiler med häftiga exempel.

Vi kan skapa 3 profilfiler för varje användare i systemet, en för varje värddator (Windows PowerShell Console och ISE) och en för alla värddatorer.

Det är dessutom möjligt att skapa 3 profilfiler för alla användare om vi vill tillämpa någon anpassning som gäller för alla användare.

VIKTIGT: Om du har en separat installation av PowerShell version 6 så kan vi skapa ytterligare 4 profiler. Två profilfiler per användare och två profilfiler för alla användare.

Innehållsförteckning

PowerShell-profilkommandon, värdar, profilnamn, profilplatser

Här finns en tabell som visar profiltyper, kommando som kan användas för att testa om en profil existerar och skapa dem om vi vill, vilken värd den här profilen gäller för, profilfilens namn och profilfilens plats.

# Profiltyp Kommando Host Namn på profilfilen Profilfilfilens plats
1* Aktuell användare, Current Host $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\WindowsPowerShell\
2 Alla användare, aktuell värddator $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
3 Aktuell användare, alla värdar $profile.CurrentUserAllHosts Konsol, ISE Profil.ps1 $HOME\ Documents\WindowsPowerShell\
4 Alla användare, alla värdar $profile.AllUsersAllHosts Konsol, ISE Profile.ps1 $PSHOME\
5** Aktuell användare, aktuell värddator $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\ Documents\WindowsPowerShell\
6** Alla användare, Current Host $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME\

Tabell 1 – PowerShell-profiltyper, kommandon, värdar, filnamn, filställen

* Istället för $profile kan vi använda $profile.CurrentUserCurrentHost kommandot.

** Kör kommandot från Windows PowerShell ISE-konsolen.

För att hitta rätt värden för variablerna $HOME och $PSHOME i din PowerShell-installation kan du köra följande kommandon:

$HOME

Värdet för $HOME är vanligtvis C:\Users\user_name

$HOME value
$PSHOME

Villkoret för $PSHOME är normalt C:\Windows\System32\WindowsPowerShell\v1.0

$PSHOME value

HEMMAS: Om du har en separat installation av PowerShell version 6 kan vi skapa ytterligare profiler. Två per aktuell användare och två för alla användare.

# Profiltyp Kommando Host Profilens filnamn Profilen. File Location
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\PowerShell\
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME\ Documents\PowerShell\
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME\

Tabell 2 – PowerShell v6 Profiltyper, kommandon, värdar, filnamn, filplatser

Värdet för $HOME är vanligtvis C:\Users\user_name

$HOME-värde för PowerShell v6

Som regel är värdet för $PSHOME C:\Program Files\PowerShell\6

$PSHOME-värde för PowerShell v6

OBSERVERA: Skillnaden mellan mappnamnen i Documents PowerShell v6-mappen är PowerShell och mappnamnet för tidigare PowerShell-versioner är WindowsPowerShell.

Hur man skapar PowerShell-profil steg för steg

Här kommer jag att visa dig exakt hur du skapar en PowerShell-profil.

Skapa en PowerShell-profil för aktuell användare och aktuell värd

Det här är standardprofilen för Windows PowerShell.

Följ dessa steg för att skapa en PowerShell-profil för konsolen som värd och aktuell användare:

Steg 1: Öppna Windows PowerShell-konsolen (aktuell värd).

Window PowerShell Console

Steg 2: Först testar vi om profilen finns eller inte i vår PowerShell-installation. Skriv följande kommando i Window PowerShell Console och tryck på ENTER.

Test-Path $PROFILE

HEMMAR: Parametervärde för Test-Path CmdLåt oss hämta från Tabell 2 – Kommandokolumnen. ($profile, $profile.CurrentUserAllHosts, etc)

Steg 3: Om resultatet av föregående kommando är falskt finns profilen inte så gå till steg 4. Om resultatet är sant finns profilfilen så gå till steg 5

Profilfilfilen finns inte (false)

Steg 4: Eftersom profilen inte finns kommer vi att skapa en med följande kommando som du skriver och trycker på ENTER.

New-Item -Type File -Force $PROFILE
Profilfilfilen har skapats
Microsoft.PowerShell_profile.ps1 – Profil för den aktuella användaren och Console som värd

Steg 5: Profilen har skapats och vi kan öppna profilfilen i PowerShell ISE med följande kommando och trycka på ENTER.

ise $PROFILE
Öppna Windows PowerShell ISE med profilfil

Steg 6: Tom profilfil har öppnats i Windows PowerShell ISE

Windows PowerShell ISE öppnade en tom profilfil Microsoft.PowerShell_profile.ps1

Steg 7: Fortsätt till exempel 1 för att se hur du anpassar den här profilen.

Skapa en PowerShell-profil för aktuell användare och alla värdar

Följ de här stegen för att skapa en PowerShell-profil:

Steg 1: Öppna Windows PowerShell-konsolen (Detta är bara en valfri värddator för att köra kommandona och vi kan göra de här stegen från Windows PowerShell ISE också).

Steg 2: Först testar vi om profilen finns eller inte i vår PowerShell-installation. Skriv följande kommando i Windows PowerShell-konsolen och tryck på ENTER.

Test-Path $PROFILE.CurrentUserAllHosts

HEMMAR: Parametervärde för Test-Path CmdLåt oss hämta från Tabell 2 – Kommandokolumn. ($profile, $profile.CurrentUserAllHosts, etc)

Steg 3: Om resultatet av föregående kommando är falskt finns profilen inte så gå till steg 4. Om resultatet är sant finns profilfilen så gå till steg 5

Profilfilfilen finns inte (false)

Steg 4: Eftersom profilen inte finns kommer vi att skapa en med följande kommando som du skriver och trycker på ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Profilfilfilen har skapats
Filprofil.ps1 – Profile for the current user and all hosts

Steg 5: Profilen har skapats och vi kan öppna profilfilen i PowerShell ISE med följande kommando och trycka på ENTER.

ise $PROFILE.CurrentUserAllHosts

Steg 6: Tom profilfil har öppnats i Windows PowerShell ISE

Windows PowerShell ISE öppnade en tom profilfil profile.ps1

Steg 7: Fortsätt med exempel 2 för att se hur vi anpassar profilen.

Vi upprepar processen för andra profiltyper det enda är att använda rätt variabelvärde i kolumnen Command från Tabell 1 – PowerShell Profiltyper, kommandon, värdar, filnamn, filplatser.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMBER: När du vill skapa en profil för Windows PowerShell ISE som värd måste du öppna Windows PowerShell ISE och följa stegen och köra kommandona från Windows PowerShell ISE Console (se skärmdumpen nedan)

Windows PowerShell ISE Console och respektive profilfil för ISE som värd

Hur man redigerar Windows PowerShell-profilen med exempel

Exempel 1 – Profil för konsolen som värd och aktuell användare (aktuell användare – aktuell värd)

Profilnamn: Microsoft.PowerShell_profile.ps1
Profilplats: $Home\Documents\WindowsPowerShell\
Används för:

Här är koden i profilen Microsoft.PowerShell_profile.ps1. Det är bara att kopiera koden i profilfilen och spara ändringarna för att få samma färgschema eller anpassa den efter dina önskemål.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Microsoft.PowerShell_profile.ps1 profilfilens kod

På en del äldre system var inställningen av Set-PSReadLineOption CmdLet lite annorlunda som i exemplet nedan.

Set-PSReadlineOption -TokenKind String -ForegroundColor MagentaSet-PSReadlineOption -TokenKind Operator -ForegroundColor CyanSet-PSReadlineOption -TokenKind Parameter -ForegroundColor Cyan 

Font colors have been changed from this…

PowerShell Console font colors without profile customization.

… to this.

PowerShell Console teckensnittsfärger efter profilanpassning.

Använd Get-PSReadLineOption CmdLet för att se giltiga färgargument och aktuella argumentvärden (färger).

Get-PSReadLineOption CmdLet och aktuellt färgschema

Exempel 2 – Profil för både Windows PowerShell Console och ISE som värdar (aktuell användare – alla värdar)

Profilnamn: profile.ps1
Profilens placering: $Home\Documents\WindowsPowerShell
Används för: När du vill anpassa både Windows PowerShell Console och ISE samtidigt eller köra egna avancerade funktioner eller CmdLets i både PowerShell Console och ISE.

I det här exemplet laddar jag mina egna PowerShell-moduler för några CmdLets som jag har skrivit och som är en del av Efficiency Booster PowerShell Project. Detta projekt är ett bibliotek med mina egna CmdLets organiserade i flera moduler och jag rekommenderar starkt att du laddar ner zip-filen med projektfilerna och testar i din egen miljö och kan följa mig i artiklarna på den här bloggen.

Här finns kommandon för att importera modulerna och innehållet i profilfilen.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profile.ps1 profile file code

Vi kan snabbt testa att importerade moduler verkligen laddas när vi öppnar PowerShell-konsolen med följande kommando:

Get-Module -ListAvailable
Imported Modules in Profile file are loaded in the PowerShell Console environment

För att bättre förstå hur PowerShell-profiler, -moduler och CmdLets är sammankopplade, läs följande underrubrik i det här inlägget: Hur man organiserar sina egna PowerShell CmdLets i PowerShell-moduler och vilken profil man ska använda för att organisera den strukturen och hur vi kopplar samman PowerShell-profiler, -moduler och CmdLet.

Exempel 3 – Profil för ISE som värd (aktuell användare – aktuell värd)

Profilnamn: Microsoft.PowerShellISE_profile.ps1
Profilplats: $Home\Documents\WindowsPowerShell\
Används för:

Här är kommandot som måste kopieras i profilfilen.

Import-Module 09addons
Microsoft.PowerShellISE_profile.ps1 profile file code

Som ett resultat av detta kommer vi att ha två tillägg i Windows PowerShell ISE. Läs de här två artiklarna för att få veta mer om hur de ska kodas.

  • Hur man skriver avancerade funktioner eller CmdLets med PowerShell (snabbt)
  • Hur man skriver PowerShell-funktioner eller CmdLets hjälp (snabbt)

Windows PowerShell ISE Add-ons

Vi kan snabbt testa att importerade moduler verkligen laddas när vi öppnar PowerShell-konsolen med följande kommando:

Get-Module -ListAvailable
Importerad modul i profilfilen laddas i PowerShell ISE-miljön

Anmärkningar: Windows PowerShell ISE importerar fyra modeller från två profilfiler ( profile.ps1 och Microsoft.PowerShellISE_profile.ps1 ).

Exempel 4 – Profil för både Windows PowerShell Console och ISE som värdar (alla användare – alla värdar)

Profilnamn: profile.ps1
Profilplats: $PSHOME\
Används för: I det här exemplet har jag bara ändrat titeln på Window PowerShell Console och ISE för både Current User och Administrator.

Här är koden i profilfilen:

$NTIdentity = ::GetCurrent()$NTPrincipal = new-object Security.Principal.WindowsPrincipal $NTIdentity$IsAdmin = $NTPrincipal.IsInRole(::Administrator)$hostversion="v$($Host.Version.Major).$($Host.Version.Minor)"$hostname = $host.NameIF ($IsAdmin){ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion - Running as ADMINISTRATOR" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion - Running as ADMINISTRATOR" }}Else{ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion" }}

Du kan se att både PowerShell Console och ISE-titlarna har en anpassad text, namnet på värddatorn och versionen av PowerShell i titeln.

Anpassad text för konsoltitel
Anpassad text för konsoltitel vid körning som administratör
Anpassad text. för Windows PowerShell ISE Title

Användbara PowerShell-kommandon om profiler

Här är några användbara PowerShell-kommandon som hjälper dig att få information om profiler.

Som ett resultat av att köra något av profilkommandona får du platsen för profilfilen.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Profilkommandon

VIKTIGT: När du vill hitta platsen för profilfilen för Windows PowerShell ISE som värddator måste du öppna Windows PowerShell ISE och köra profilkommandon från Windows PowerShell ISE Console

Använd Test-Path CmdLet för att kontrollera om profilfilen finns på systemet eller inte. Om du får True som resultat finns profilen och false betyder att profilfilen inte finns. Använd kommandon från Tabell 1 – PowerShell-profiltyper, kommandon, värdar, filnamn och filplatser för att söka efter andra profiltyper, oavsett om de finns eller inte.

Test-Path $PROFILE

Denna kodrad skapar en profilfil. Använd kommandon från tabell 1 – PowerShell Profile types, commands, hosts, file names, file locations för att skapa andra profiltyper.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Om du vill läsa innehållet i profilfilen antingen i Anteckningsblock eller i Window PowerShell ISE så använd dessa två kommandon.

ise $PROFILEnotepad $PROFILE

Personligen föredrar jag Windows PowerShell ISE eftersom det är en bekvämare miljö för att skriva PowerShell-kod.

Använd den här kodraden för att få fram profilplatser för alla profiltyper.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Profile file locations

Kontrollera dessa två variabler för att få fram platsen för PowerShell-installationen respektive hemkatalogen.

$pshome$home 

Hur du väljer vilken profilfil du ska använda

Om du använder flera värdprogram som Windows PowerShell Console och ISE lägger du alla anpassningar i profilen $PROFILE.CurrentUserAllHosts för den nuvarande inloggade användaren. Jag har till exempel skapat mina egna CmdLets organiserade i moduler så jag lägger kommandon för att ladda dessa moduler i den här profilen eftersom jag vill att modulerna ska laddas både när vi öppnar PowerShell Console och ISE. Se exempel 2 för illustration.

Om du vill göra specifika anpassningar av värdprogrammet lägger du all anpassningskod i en profil som är specifik för det värdprogrammet. Jag ändrar till exempel bakgrundsfärgen på teckensnitten i PowerShell Console så att de blir mer synliga eller så har jag laddat moduler som är tilläggsmoduler för ISE. Jag har visat detta i exempel 1 för PowerShell Console och exempel 3 för PowerShell ISE.

Om du behöver anpassa PowerShell för många användare och du är administratör så följ de här tipsen:

  • Lagra den vanligaste anpassningen i $PROFILE.AllUsersAllHosts-profilen eftersom detta är det bredaste tillämpningsområdet
  • Om du vill anpassa Windows PowerShell för alla användare men specifikt för ett värdprogram. Till exempel, olika anpassning för Windows PowerShell Console och en annan anpassning för Windows PowerShell ISE så lägg koden i $PROFILE.AllUsersCurrentHost profiler
  • Skriv koden för särskilda användare i de användarspecifika profilerna. I princip innebär det att du använder antingen profilen $PROFILE.CurrentUserAllHosts eller $PROFILE.CurrentUserCurrentHost.

Så här kör du Console eller ISE utan inlästa profiler

Öppna dialogrutan Kör Win + R och öppna PowerShell med alternativet -NoProfile.

PowerShell.exe -NoProfile

Varning: PowerShell Load Time

Med en större och mer komplex profil kan det börja påverka hur snabbt PowerShell öppnas. Om du vill felsöka om din profil är ansvarig för dåliga laddningstider för PowerShell öppnar du dialogrutan Kör Win + R och öppnar PowerShell med alternativet -NoProfile.

PowerShell.exe -NoProfile

Profiler och fjärrsessioner

PowerShell-profiler körs inte automatiskt i fjärrsessioner, så de kommandon som profilerna lägger till finns inte med i fjärrsessionen. Dessutom fylls inte den automatiska variabeln $PROFILE i fjärrsessioner.

Om du vill köra en profil i en session använder du Invoke-Command CmdLet.

Till exempel körs följande kommando profilen ”Current user, Current Host” från den lokala datorn i sessionen i $s.

Invoke-Command -Session $s -FilePath $PROFILE

Hur du organiserar dina egna PowerShell CmdLets i PowerShell-moduler och profiler

För att du ska förstå kopplingen mellan PowerShell-profil, modul och CmdLet har jag skapat Efficiency Booster PowerShell-projektet med massor av mina egna CmdLets organiserade i ett gäng moduler som laddas i varje PowerShell-session med PowerShell-profilen när jag öppnar Windows PowerShell Console eller ISE.

Du får gärna ladda ner zip-filen som innehåller koden för projektet så att du enkelt kan följa med. I filen ReadMe.txt finns en förklaring av installations- och anpassningssteg så läs instruktionerna i den filen. Ännu bättre kan du läsa instruktionerna för installation och anpassning genom att läsa följande artikel How To Install And Configure PowerShell:

Jag kommer att använda bokhandel, bokhyllor och böcker analogi för att förklara kopplingen mellan Powershell Profile, Module och CmdLet.

Föreställ dig till exempel att du vill lära dig mer om PowerShell Scripting och du vill köpa några böcker i ämnet från bokhandeln.

Du går in i bokhandeln och ser många hyllor med olika etiketter för bokavdelningar som konst, affärer, datorer, litteratur, resor osv. Naturligtvis går du till hyllorna med etiketten Datorer och där hittar du boken som förklarar PowerShell Scripting som du vill köpa.

Vi återvänder nu till PowerShell-världen och kopplar ihop den analoga berättelsen med PowerShell:

  • Den CmdLet som vi använder som levereras med PowerShell eller någon egen skriven CmdLet är boken.
  • Koden i den CmdLet är innehållet i boken.
  • PowerShell Module är bokhandelshyllan i någon bokhandelsavdelning som till exempel Computers bookstore department shelf där vår bok är placerad.
  • Finally, PowerShell Profile is the bookstore itself.

Så varje gång vi öppnar Windows PowerShell Console eller ISE öppnar vi vår session och med den sessionen profilfiler för att ladda och anpassning har gjorts för att ställa in vår PowerShell-miljö som vi vill vara.

I fallet med Modules och CmdLets. Profilfilen kommer att importera moduler och Module kommer att ladda varje CmdLet-skript som tillhör den modulen.

Då jag gillar att använda mina egna CmdLets både i Windows PowerShell Console och ISE-värdprogram föredrar jag att skapa en $profile.CurrentUserAllHosts profiltyp som inte är något annat än Profile.ps1-filen som skapas i:

  • $Home\ Documents\WindowsPowerShell\-mappen för PowerShell version 5.1 och äldre
  • $Home\ Documents\PowerShell\-mappen för PowerShell version 6.0.

Hur vi länkar samman PowerShell-profilen, modul, Och CmdLet

Här är en kort beskrivning av den strukturen som görs i PowerShell

  • Skapa en PowerShell-profil
  • Skapa en modulmapp och filstruktur
  • Anpassa profilen för att importera nödvändiga moduler
  • Skapa CmdLet PowerShell-skript
  • Skriv egen CmdLet-funktionskod
  • Anpassa modulfilen för att importera CmdLet-skriptet

Jag kommer att illustrera den här processen med exempel på Efficiency Booster PowerShell-projektet med profil, Modules och CmdLets så att det är lättare för alla att förstå hela processen. Så jag uppmuntrar återigen starkt alla att installera den medföljande zip-filen.

Följ dessa steg för att skapa en PowerShell-profil, modul, CmdLet och länka ihop dem:

Steg 1: Öppna Windows PowerShell-konsolen

Steg 2: Först testar vi om Profile finns eller inte i vår PowerShell-installation. Skriv följande kommando i Windows PowerShell och tryck på ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Steg 3: Om resultatet av föregående kommando är falskt finns profilen inte, så gå till steg 4. Om resultatet är sant finns profilfilen så gå till steg 5

Steg 4: Eftersom profilen inte finns kommer vi att skapa en med följande kommando som du skriver in och trycker på ENTER.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Steg 5: Profilen har skapats och vi kan öppna profilfilen i PowerShell ISE med följande kommando och trycka på ENTER.

ise $PROFILE.CurrentUserAllHosts

Steg 6: Profilfilen har öppnats i PowerShell ISE.

Steg 7: Nu måste vi skapa en modulmappstruktur och nödvändiga filer.

Steg 8: I mappen där vi skapade vår profilfil skapar vi en modulmapp med det exakta namnet Modules. Här kommer vi att hålla mappstrukturen för alla våra moduler.

Modulmapp

Steg 9: I Modules-mappen skapar du mapparna för varje modul som du vill ha. Jag har till exempel skapat följande moduler i Efficiency Booster PowerShell Project.

Moduler i Efficiency Booster PowerShell Project

Steg 10: I varje modulmapp skapar vi filen med tillägget .psm1 och exakt samma namn som modulmappen. I mappen 03common skapar vi till exempel filen 03common.psm1

PowerShell-modulfil psm1

Steg 11: Eventuellt kan vi skapa en manifestfil (.psd1-tillägget) för varje modul som beskriver mappen ytterligare.

Steg 12: I samma modulmapp skapar vi filen med tillägget .ps1 (vanlig PowerShell-skriptfil) där vi kommer att skriva koden för vår egen CmdLet. Vi kan till exempel skapa filen GetCPUInfo.ps1 där vi skriver koden för vår egen Get-CPUInfo CmdLet.

Get-CPUInfo CmdLet-skriptfil

Steg 13: Nu är vi redo att skriva vår egen CmdLet-kod och skriva skript för den. Titta gärna på exempel Get-CPUInfo och andra CmdLets i Efficiency Booster PowerShell-projektet. I framtida inlägg kommer jag att skriva mer detaljerat om varje CmdLet i projektet. För tillfället kan du ladda ner projektets källkod här:

Get-CPUInfo CmdLet Source code

Steg 14: Länka ett CmdLet-skript till rätt PowerShell-modul. Öppna modulens .psm1-fil och skriv den här kodraden:
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
För Get-CPUInfo CmdLet skriver vi till exempel den här kodraden i 03common.psm1 file:

. $psScriptRoot\GetCPUInfo.ps1 
Länken mellan CmdLet-skriptfilen och modulen

Steg 15: I profilscriptfilen importerar vi modulen som innehåller vår CmdLet-skriptfil, så vi skriver det här kommandot i profilen.
Import-Module ModuleName
Till exempel är vår Get-CPUInfo CmdLet en del av 03common-modulen så vi skriver den här koden i profilen:

Import-Module 03common
Länken mellan profil och modul

Steg 16: Vi upprepar stegen 9-15 för alla moduler och CmdLet som vi vill ha i vår profil och som ska laddas med varje PowerShell-session som vi startar.

Steg 17: Vi testar att alla importerade moduler laddas när vi öppnar en viss värd. Vi kan lista moduler med följande kommando:

Get-Module -ListAvailable
Laddade moduler i PowerShell Console Environment

Steg 18: Vi kan testa att alla CmdLets inom varje modul laddas in i miljön. Här är ett användbart exempelkommando:

Get-Command -Module 02utils
Laddade CmdLets i PowerShell-konsolmiljöer för 02utils-modulen

Användbara PowerShell-profilartiklar

Lämna ett svar

Din e-postadress kommer inte publiceras.