Deel deze post:

Een PowerShell profiel is een script dat wordt uitgevoerd wanneer PowerShell start en heeft een specifieke naam.

PowerShell ondersteunt verschillende profielen voor gebruikers en host programma’s. Als we zeggen host programma’s denken we vooral aan Windows PowerShell Console en Windows PowerShell ISE. Echter, het maakt niet de profielen voor u, dus lees dit artikel verder en ik zal u laten zien hoe u profielen kunt maken en aanpassen met geweldige voorbeelden.

We kunnen 3 profielbestanden maken voor elke gebruiker op het systeem, een voor elke host (Windows PowerShell Console en ISE) en een voor alle hosts.

Daarnaast is het mogelijk om 3 profiel bestanden te maken voor alle gebruikers als we een aantal aanpassingen willen toepassen die voor alle gebruikers gelden.

BELANGRIJK: Als u een aparte installatie heeft van PowerShell versie 6 dan kunnen we 4 extra profielen maken. Twee profielbestanden per gebruiker en twee profielbestanden voor alle gebruikers.

Inhoudsopgave

PowerShell Profile Commands, Hosts, Profile Names, Profile Locations

Hier staat een tabel met Profile Types, Commando dat gebruikt kan worden om te testen of een profiel bestaat en deze aan te maken als we dat willen, Op welke Host dit Profile van toepassing is, Naam van het Profile file, en Locatie van het Profile File.

# Profile Type Command Host Profile file name Profile file location
1* Current User, Huidige host $profile Console Microsoft.PowerShell_profile.ps1 $HOME\DocumentenWindowsPowerShell
2 Alle gebruikers, huidige host $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME
3 Current User, All Hosts $profile.CurrentUserAllHosts Console, ISE Profile.ps1 $HOME DocumentenWindowsPowerShell
4 Alle gebruikers, alle hosts $profile.AllUsersAllHosts Console, ISE Profile.ps1 $PSHOME\
5** Current user, Current Host $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\DocumentenWindowsPowerShell
6** Alle gebruikers, huidige host $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME

Tabel 1 – PowerShell Profile types, commando’s, hosts, bestandsnamen, bestandslocaties

* In plaats van $profile kunnen we ook het commando $profile.CurrentUserCurrentHost commando.

** Voer het commando uit vanaf de Windows PowerShell ISE console.

Om de juiste waarden voor de variabelen $HOME en $PSHOME op uw PowerShell-installatie te vinden, kunt u de volgende commando’s uitvoeren:

$HOME

Normaal gesproken is de waarde voor $HOME C:

$HOME waarde
$PSHOME

Normaal gesproken is de waarde voor $PSHOME C:Windows\System32WindowsPowerShell\v1.0

$PSHOME waarde

WAARSCHUWING: Als u een aparte installatie van PowerShell versie 6 hebt, kunnen we extra profielen maken. Twee per huidige gebruiker en twee voor alle gebruikers.

# Profile Type Command Host Profile File Name Profile Bestandslocatie
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ DocumentsPowerShell
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME\ DocumentsPowerShell
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME

Tabel 2 – PowerShell v6 Profieltypes, commando’s, hosts, bestandsnamen, bestandslocaties

Normaal gesproken is de waarde voor $HOME C:\Users_user_name

$HOME waarde voor PowerShell v6

Normaal gesproken is de waarde voor $PSHOME C:\Programmabestanden PowerShell v6

$PSHOME waarde voor PowerShell v6

Opmerking: Verschil tussen mapnamen in Documenten PowerShell v6 map is PowerShell en voorgaande PowerShell versies mapnaam is WindowsPowerShell.

Hoe maak je een PowerShell profiel stap voor stap

Hierbij laat ik je precies zien hoe je een PowerShell profiel maakt.

Een PowerShell profiel maken voor huidige gebruiker en huidige host

Dit is het standaard Windows PowerShell profiel.

Volg deze stappen om een PowerShell-profiel te maken voor de Console als Host en de huidige gebruiker:

Step 1: Open de Windows PowerShell Console (Huidige Host).

Window PowerShell Console

Step 2: Eerst gaan we testen of het profiel wel of niet bestaat in onze PowerShell-installatie. Typ het volgende commando in de Window PowerShell Console, en druk op ENTER.

Test-Path $PROFILE

Vertrouw: Parameterwaarde voor Test-Path CmdLaten we uit Tabel 2 – Command kolom halen. ($profile, $profile.CurrentUserAllHosts, etc)

Stap 3: Als het resultaat van het vorige commando false is, bestaat het profiel niet, dus ga naar stap 4. Als het resultaat waar is, bestaat het profielbestand dus ga naar stap 5

Profielbestand bestaat niet (false)

Stap 4: Aangezien het profiel niet bestaat, maken we er een aan met het volgende commando dat u typt en op ENTER drukt.

New-Item -Type File -Force $PROFILE
Profielbestand is aangemaakt
Microsoft.PowerShell_profile.ps1 – Profiel voor de huidige gebruiker en Console als host

Step 5: Het profiel is aangemaakt en we kunnen het profielbestand openen in PowerShell ISE met het volgende commando, en op ENTER drukken.

ise $PROFILE
Open Windows PowerShell ISE met Profielbestand

Stap 6: Er is een leeg Profielbestand geopend in Windows PowerShell ISE

Windows PowerShell ISE heeft een leeg profielbestand geopend Microsoft.PowerShell_profile.ps1

Stap 7: Ga verder met Voorbeeld 1 om te zien hoe u dit profiel aanpast.

Een PowerShell-profiel maken voor de huidige gebruiker en alle hosts

Volg deze stappen om een PowerShell-profiel te maken:

Step 1: Open de Windows PowerShell Console (Dit is gewoon een host naar keuze om de opdrachten uit te voeren en we kunnen deze stappen ook vanuit Windows PowerShell ISE doen).

Step 2: Eerst gaan we testen of Profile wel of niet bestaat in onze PowerShell-installatie. Typ het volgende commando in de Window PowerShell Console, en druk op ENTER.

Test-Path $PROFILE.CurrentUserAllHosts

Vertrouw: Parameter waarde voor Test-Path CmdLaten we uit Tabel 2 – Command kolom halen. ($profile, $profile.CurrentUserAllHosts, etc)

Stap 3: Indien het resultaat van het vorige commando false is, bestaat het profiel niet dus ga naar stap 4. Als het resultaat waar is, bestaat het profielbestand dus ga naar stap 5

Profielbestand bestaat niet (false)

Stap 4: Aangezien het profiel niet bestaat, maken we er een aan met het volgende commando dat u typt en op ENTER drukt.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Het profielbestand is aangemaakt
Bestand profiel.ps1 – Profiel voor de huidige gebruiker en alle hosts

Stap 5: Het profiel is aangemaakt en we kunnen het profielbestand openen in PowerShell ISE met het volgende commando, en op ENTER drukken.

ise $PROFILE.CurrentUserAllHosts

Step 6: Het lege profielbestand is geopend in Windows PowerShell ISE

Windows PowerShell ISE heeft een leeg profielbestand profile.ps1

Step 7: Ga verder met Voorbeeld 2 om te zien hoe u het profiel aanpast.

We herhalen het proces voor andere profieltypen het enige ding is om de juiste variabele waarde te gebruiken in de Command kolom uit Tabel 1 – PowerShell Profieltypen, commando’s, hosts, bestandsnamen, bestandslocaties.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMEMBER: Wanneer u een profiel wilt maken voor Windows PowerShell ISE als host, moet u Windows PowerShell ISE openen en de stappen volgen die worden uitgevoerd met de opdrachten van Windows PowerShell ISE Console (zie de schermafbeelding hieronder)

Windows PowerShell ISE Console en het bijbehorende profielbestand voor de ISE als host

Hoe Windows PowerShell-profiel bewerken met voorbeelden

Voorbeeld 1 – Profiel voor Console als host en huidige gebruiker (Huidige gebruiker – huidige host)

Profielnaam: Microsoft.PowerShell_profile.ps1
Profiel Locatie: $Home\DocumentenWindowsPowerShell
Gebruikt voor: In dit voorbeeld heb ik de achtergrondkleuren van het lettertype veranderd om beter leesbaar te zijn.

Hier staat de code in het profielbestand Microsoft.PowerShell_profile.ps1. Kopieer de code in het profielbestand en sla de wijzigingen op om hetzelfde kleurenschema te krijgen of pas het aan uw wensen aan.

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

Op sommige oudere systemen was de instelling van Set-PSReadLineOption CmdLet een beetje anders, zoals in het onderstaande voorbeeld.

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.

… naar this.

PowerShell Console lettertype kleuren na profielaanpassing.

Gebruik Get-PSReadLineOption CmdLet om de geldige Kleur Argumenten en huidige Argument waarden (kleuren) te zien.

Get-PSReadLineOption CmdLet en het huidige kleurenschema

Voorbeeld 2 – Profiel voor zowel Windows PowerShell Console als ISE als hosts (Huidige gebruiker – Alle hosts)

Profielnaam: profile.ps1
Profiellocatie: $Home\DocumentsWindowsPowerShell
Gebruikt voor: Wanneer u zowel Windows PowerShell Console als ISE tegelijkertijd wilt aanpassen of eigen Geavanceerde Functies of CmdLets wilt uitvoeren in zowel PowerShell Console als ISE.

In dit voorbeeld laad ik mijn eigen PowerShell Modules voor enkele CmdLets die ik heb geschreven en die onderdeel zijn van het Efficiency Booster PowerShell Project. Dit project is een bibliotheek van mijn eigen CmdLets georganiseerd in verschillende modules en ik raad u ten zeerste aan om het zip-bestand van de projectbestanden te downloaden en te testen in uw eigen omgeving en in staat te zijn om mij te volgen in de artikelen op deze blog.

Hier zijn commando’s om de modules en de inhoud van het profielbestand te importeren.

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

We kunnen snel testen of de geïmporteerde modules echt worden geladen als we de PowerShell Console openen met het volgende commando:

Get-Module -ListAvailable
geïmporteerde modules in profielbestand worden geladen in de PowerShell Console-omgeving

Om beter te begrijpen hoe PowerShell Profiles, Modules en CmdLets aan elkaar gekoppeld zijn, lees de volgende subkopjes van dit bericht Hoe organiseer je je eigen PowerShell CmdLets in PowerShell Modules en welk profiel moet je gebruiken om die structuur te organiseren en Hoe koppelen we PowerShell Profile, Module, en CmdLet aan elkaar.

Voorbeeld 3 – Profiel voor ISE als Host (Huidige gebruiker – Huidige Host)

Profiel Naam: Microsoft.PowerShellISE_profile.ps1
Profiel Locatie: $Home\DocumentenWindowsPowerShell
Gebruikt voor: In dit voorbeeld heb ik module geïmporteerd die CmdLets bevat die Add-ons zullen zijn voor Window PowerShell ISE.

Hier is het commando dat in het profielbestand moet worden gekopieerd.

Import-Module 09addons
Microsoft.PowerShellISE_profile.ps1 profielbestandcode

Hierdoor zullen we twee Add-ons hebben in Windows PowerShell ISE. Lees deze twee artikelen om meer te weten te komen over hoe u ze codeert.

  • Hoe schrijf je geavanceerde functies of CmdLets met PowerShell (snel)
  • Hoe schrijf je PowerShell-functies of CmdLets met Help (snel)
Windows PowerShell ISE Add-ons

We kunnen snel testen of geïmporteerde modules echt zijn geladen wanneer we de PowerShell Console openen met het volgende commando:

Get-Module -ListAvailable
Geïmporteerde module in profielbestand wordt geladen in de PowerShell ISE-omgeving

NOTA: Windows PowerShell ISE importeert vier modellen uit twee profielbestanden ( profile.ps1 en Microsoft.PowerShellISE_profile.ps1 ).

Voorbeeld 4 – Profiel voor zowel Windows PowerShell Console als ISE als hosts (Alle gebruikers – Alle hosts)

Profielnaam: profile.ps1
Profiellocatie: $PSHOME
Gebruikt voor: In dit voorbeeld heb ik alleen de titel van Window PowerShell Console en ISE gewijzigd voor zowel Current User als Administrator.

Hier is de code in Profile bestand:

$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" }}

Je ziet dat zowel PowerShell Console en ISE titels een aangepaste tekst, naam van de host en versie van PowerShell in de titel hebben.

Aangepaste tekst voor Console-titel
Aangepaste tekst voor Console-titel bij uitvoering als Administrator
Aangepaste tekst voor Windows PowerShell ISE Title

Nuttige PowerShell-opdrachten die u moet kennen met betrekking tot profielen

Hier vindt u enkele nuttige PowerShell-opdrachten die u helpen informatie over profielen te verkrijgen.

Als resultaat van het uitvoeren van een van de profielcommando’s, krijgt u de locatie van het profielbestand.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Profielopdrachten

BELANGRIJK: Wanneer u de locatie van het profielbestand voor Windows PowerShell ISE als host wilt achterhalen, moet u Windows PowerShell ISE openen en profielopdrachten uitvoeren vanuit de Windows PowerShell ISE Console

Gebruik Test-Path CmdLet om te controleren of het profielbestand op het systeem bestaat of niet. Als u True als resultaat krijgt, bestaat het profiel en false betekent dat het profielbestand niet bestaat. Gebruik opdrachten uit Tabel 1 – PowerShell Profile types, commando’s, hosts, bestandsnamen, bestandslocaties om te controleren of er andere profieltypen bestaan of niet.

Test-Path $PROFILE

Deze regel code zal een profielbestand maken. Gebruik de commando’s uit Tabel 1 – PowerShell Profile types, commando’s, hosts, bestandsnamen, bestandslocaties om andere profieltypes aan te maken.

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

Als u de inhoud van het profielbestand wilt lezen in Notepad of Window PowerShell ISE gebruik dan deze twee commando’s.

ise $PROFILEnotepad $PROFILE

Persoonlijk geef ik de voorkeur aan Windows PowerShell ISE omdat dit een handigere omgeving is voor het schrijven van PowerShell code.

Gebruik deze regel code om profiellocaties te krijgen voor alle profieltypen.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Profielbestandslocaties

Vink deze twee variabelen aan om de locatie van respectievelijk de PowerShell-installatie en de homedirectory te krijgen.

$pshome$home 

Hoe kiest u welk profielbestand u wilt gebruiken

Als u meerdere hostapplicaties gebruikt, zoals Windows PowerShell Console en ISE, plaatst u alle aanpassingen in het profiel $PROFILE.CurrentUserAllHosts voor de huidige aangemelde gebruiker. Bijvoorbeeld, ik heb mijn eigen CmdLets georganiseerd in Modules, dus ik zet commando’s om deze modules te laden in dit profiel, omdat ik wil dat de modules worden geladen wanneer we PowerShell Console en ISE openen. Zie voorbeeld 2 ter illustratie.

Als u specifieke aanpassingen aan de host applicatie wilt doen, zet alle aanpassingscode in een profiel dat specifiek is voor die host applicatie. Bijvoorbeeld, ik verander de achtergrondkleur van PowerShell Console fonts zodat ze beter zichtbaar zijn of ik heb modules geladen die Add-ons zijn voor ISE. Ik heb dat laten zien in Voorbeeld 1 voor de PowerShell Console en Voorbeeld 3 voor PowerShell ISE.

Als je PowerShell voor veel gebruikers moet aanpassen en je bent een beheerder volg dan deze tips:

  • Store de meest voorkomende aanpassingen in het $PROFILE.AllUsersAllHosts profiel, omdat dit het breedste bereik heeft
  • Als u Windows PowerShell voor alle gebruikers wilt aanpassen, maar specifiek voor een hosttoepassing. Bijvoorbeeld, verschillende aanpassingen voor Windows PowerShell Console en een andere aanpassing voor Windows PowerShell ISE zet dan de code in $PROFILE.AllUsersCurrentHost profielen
  • Schrijf de code voor bepaalde gebruikers in de gebruiker-specifieke profielen. In principe betekent dat het gebruik van ofwel $PROFILE.CurrentUserAllHosts of $PROFILE.CurrentUserCurrentHost profiel.

How To Run Console Or ISE Without Profiles Loaded

Open het run dialoogvenster Win + R en open PowerShell met de -NoProfile optie.

PowerShell.exe -NoProfile

Waarschuwing: Laadtijd PowerShell

Met een groter en complexer profiel, kan het een effect beginnen te hebben op hoe snel PowerShell opent. Om te achterhalen of uw profiel al dan niet verantwoordelijk is voor de slechte laadtijden van PowerShell, opent u het dialoogvenster Uitvoeren Win + R en opent u PowerShell met de optie -NoProfile.

PowerShell.exe -NoProfile

Profielen en externe sessies

PowerShell-profielen worden niet automatisch uitgevoerd in externe sessies, dus de opdrachten die de profielen toevoegen, zijn niet aanwezig in de externe sessie. Bovendien wordt de automatische variabele $PROFILE niet ingevuld in externe sessies.

Om een profiel in een sessie uit te voeren, gebruikt u het Invoke-Command CmdLet.

Het volgende commando voert bijvoorbeeld het profiel “Current user, Current Host” uit vanaf de lokale computer in de sessie in $s.

Invoke-Command -Session $s -FilePath $PROFILE

Hoe organiseer je je eigen PowerShell CmdLets in PowerShell Modules en Profiles

Om de link tussen PowerShell Profile, Module en CmdLet te begrijpen heb ik Efficiency Booster PowerShell Project met veel van mijn eigen CmdLets georganiseerd in een bos van Modules die worden geladen in elke PowerShell Sessie met de PowerShell profiel wanneer ik Windows PowerShell Console of ISE te openen.

Voel je vrij om het zip-bestand te downloaden dat de code voor het project bevat, zodat je het gemakkelijk kunt volgen. In het ReadMe.txt bestand staat een uitleg van de installatie- en aanpassingsstappen, dus lees de instructies in dat bestand. Nog beter kunt u de installatie- en aanpassingsinstructies lezen in het volgende artikel Hoe PowerShell te installeren en te configureren: CmdLets, Modules, Profiles.

Ik zal boekhandel, boekenplanken en boeken analogie gebruiken om het verband uit te leggen tussen Powershell Profile, Module, en CmdLet.

Voorbeeld, stel je voor dat je meer wilt leren over PowerShell Scripting en je wilt een aantal boeken over het onderwerp kopen bij de boekhandel.

U loopt de boekwinkel in en u ziet veel schappen met verschillende labels voor boekafdelingen zoals Kunst, Business, Computers, Literatuur, Reizen, enz. Natuurlijk, je loopt naar de planken met het label Computers en daar vind je het boek dat PowerShell Scripting uitlegt en dat je wilt kopen.

Laten we nu teruggaan naar de PowerShell-wereld en het analogieverhaal koppelen aan PowerShell:

  • De CmdLet die we gebruiken geleverd met PowerShell of een aantal van onze eigen geschreven CmdLet is het boek.
  • Code van die CmdLet is de inhoud van het boek.
  • PowerShell Module is de boekhandel plank van sommige boekhandel afdeling zoals bijvoorbeeld Computers boekhandel afdeling plank waar ons boek is put.
  • Finitief, PowerShell Profile is de boekhandel zelf.

Dus elke keer als we Windows PowerShell Console of ISE openen we onze sessie en met die sessie profiel bestanden te laden en aanpassingen zijn gedaan om het opzetten van onze PowerShell omgeving de manier waarop we willen be.

In het geval van Modules en CmdLets. Profile file zal modules importeren en Module zal elk CmdLet script laden dat bij die Module hoort.

Omdat ik graag mijn eigen CmdLets gebruik zowel in Windows PowerShell Console als in ISE host applicaties geef ik de voorkeur aan het maken van een $profile.CurrentUserAllHosts profiel aan dat niets anders is dan een Profile.ps1 bestand dat is gemaakt in:

  • $Home Documenten:WindowsPowerShell map voor PowerShell versie 5.1 en ouder
  • $Home Documenten:PowerShell map voor PowerShell versie 6.0.

Hoe koppelen we PowerShell Profile, Module, En CmdLet

Hier volgt een korte beschrijving van die structuur gedaan in PowerShell

  • Maak een PowerShell profiel
  • Maak een Module map en bestand structuur
  • Pas het profiel aan om noodzakelijke modules te importeren
  • Creëer CmdLet PowerShell script
  • Schrijf eigen CmdLet functiecode
  • Aanpassen Module bestand om het CmdLet script te importeren

Ik zal dit proces illustreren met Efficiency Booster PowerShell Project voorbeelden van Profile, Modules, en CmdLets, zodat het voor iedereen gemakkelijker is om het hele proces te begrijpen. Dus ik moedig iedereen nogmaals sterk aan om het meegeleverde zip-bestand te installeren.

Volg deze stappen om een PowerShell Profile, Module, CmdLet te maken en ze aan elkaar te koppelen:

Step 1: Open de Windows PowerShell Console

Step 2: Eerst gaan we testen of Profile wel of niet bestaat in onze PowerShell-installatie. Typ het volgende commando in het Window PowerShell, en druk op ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Step 3: Als het resultaat van het vorige commando vals is, bestaat het profiel niet, dus ga naar stap 4. Als het resultaat waar is, bestaat het profielbestand dus ga naar stap 5

Step 4: Omdat het profiel niet bestaat, maken we er een aan met het volgende commando dat u typt en op ENTER drukt.

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

Step 5: Het profiel is aangemaakt en we kunnen het profielbestand openen in PowerShell ISE met het volgende commando, en op ENTER drukken.

ise $PROFILE.CurrentUserAllHosts

Step 6: Profiel bestand is geopend in PowerShell ISE.

Step 7: Nu moeten we een Module mapstructuur en de nodige bestanden te creëren.

Step 8: In de map waar we ons profiel bestand te maken een Module map met de exacte naam Modules. Hier zullen we de mapstructuur van al onze Modules.

Modules map

Stap 9: In de Modules map maakt u de mappen voor elke Module die u wilt hebben. Ik heb bijvoorbeeld de volgende modules gemaakt in Efficiency Booster PowerShell Project.

Modules van Efficiency Booster PowerShell Project

Step 10: In elke Module map maken we het bestand met extensie .psm1 en met exact dezelfde naam als de Module map. In de map 03common maken we bijvoorbeeld het bestand 03common.psm1

PowerShell-modulebestand psm1

Step 11: Optioneel kunnen we voor elke module een manifest-bestand maken (.psd1 extensie) voor elke module aanmaken waarin die map verder wordt beschreven.

Step 12: In dezelfde module map maken we het bestand met .ps1 extensie (Regular PowerShell script bestand) waarin we de code voor onze eigen CmdLet gaan schrijven. We kunnen bijvoorbeeld het bestand GetCPUInfo.ps1 maken waarin we de code voor onze eigen Get-CPUInfo CmdLet schrijven.

Get-CPUInfo CmdLet scriptbestand

Step 13: Nu zijn we klaar om onze eigen CmdLet-code te schrijven en het script uit te voeren. Kijk gerust naar het voorbeeld Get-CPUInfo en andere CmdLets van het Efficiency Booster PowerShell Project. In toekomstige berichten zal ik meer in detail treden over elke CmdLet in het project. Voor nu kunt u de broncode van het project hier downloaden.

Get-CPUInfo CmdLet Broncode

Stap 14: koppel een CmdLet-script aan de juiste PowerShell-module. Open het .psm1-bestand van de module en schrijf deze regel code:
. $psScriptRootVoornaamvanCmdLetScriptFile.ps1
Voor bijvoorbeeld Get-CPUInfo CmdLet schrijven we deze regel code in 03common.psm1 bestand:

. $psScriptRoot\GetCPUInfo.ps1 
De koppeling tussen CmdLet-scriptbestand en module

Stap 15: In het profielscriptbestand importeren we de module die ons CmdLet-scriptbestand bevat, dus schrijven we deze opdracht in het profielbestand.
Import-Module ModuleName
Bijv. onze CmdLet Get-CPUInfo maakt deel uit van module 03common, dus schrijven we deze code in het profiel:

Import-Module 03common
De koppeling tussen Profiel en Module

Stap 16: We herhalen de stappen 9 -15 voor elke Module en CmdLet die we in ons profiel willen hebben en die moet worden geladen bij elke PowerShell-sessie die we starten.

Stap 17: We testen of alle geïmporteerde modules worden geladen als we een bepaalde host openen. We kunnen een lijst met modules maken met het volgende commando:

Get-Module -ListAvailable
Geladen modules in PowerShell Console Environment

Step 18: We kunnen testen of alle CmdLets binnen elke module in de omgeving zijn geladen. Hier volgt een handig voorbeeldcommando:

Get-Command -Module 02utils
Geladen CmdLets in PowerShell Console-omgevingen voor module 02utils

Nuttige PowerShell-profielartikelen

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.