PowerShell Profiles

In deze tutorial zullen we zien over PowerShell Profiles en het gebruik ervan. PowerShell profielen helpen u om uw omgeving aan te passen en elementen toe te voegen voor elke PowerShell sessie die u start. PowerShell profiel is een script dat wordt uitgevoerd elke keer dat we PowerShell starten. U kunt een PowerShell-profiel gebruiken als een aanmeldingsscript om de omgeving aan te passen. Door gebruik te maken van een PowerShell profiel, kunt u commando’s, aliassen, functies, variabelen, snap-ins, modules, PSDrives en alle andere sessie-specifieke elementen toevoegen in uw evnironmet. U hoeft deze niet te importeren of opnieuw aan te maken telkens wanneer u PowerShell uitvoert. Ze worden automatisch geladen. PowerShell ondersteunt verschillende profielen voor gebruikers en hostprogramma’s. PowerShell maakt geen profielen voor u.

Als u sessie-specifieke opdrachten, variabelen, voorkeursvariabelen, aliassen, functies, opdrachten (met uitzondering van Set-ExecutionPolicy), en PowerShell-modules die u vaak gebruikt, kunt u profielen gebruiken om in alle toekomstige sessie te laden.

Profielbestanden

PowerShell-console ondersteunt de volgende profielen:

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Huidige gebruiker, Huidige Host
  • $Home\Documents\PowerShell\Profile.ps1 – Huidige gebruiker, Alle Hosts
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Alle gebruikers, Huidige Host
  • $PsHome\Profile.ps1 – Alle gebruikers, Alle Hosts

De bovenstaande profielen worden in volgorde van prioriteit weergegeven. Het eerste profiel in de lijst heeft de hoogste rangorde. Zoals u kunt zien in de profielen hierboven, hebben we twee variabelen. De variabelen $PSHome en $Home hebben de volgende waarden.

  • $PSHome – Slaat de installatiedirectory voor PowerShell op
  • $Home – Slaat de homedirectory van de huidige gebruiker op

Andere programma’s die PowerShell hosten, kunnen hun eigen profielen ondersteunen. PowerShell Integrated Scripting Environment (ISE) ondersteunt de volgende hostspecifieke profielen.

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Huidige gebruiker, huidige host
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – Alle gebruikers, huidige host

Volgens Microsoft is in de PowerShell Help het profiel “CurrentUser, Current Host” het profiel dat meestal wordt aangeduid als “uw PowerShell-profiel”.

Profiel Variabele

In PowerShell hebben we een automatische variabele genaamd $Profile. Alle PowerShell profiel paden die beschikbaar zijn in de huidige sessie worden opgeslagen in $Profile variabele. Door de variabele $Profile te bekijken, ziet u het pad van het profiel.

In de variabele $Profile wordt het pad naar het profiel “Huidige gebruiker, huidige host” opgeslagen. De andere profielen worden opgeslagen in notitie-eigenschappen van de variabele $Profile.

U kunt een profiel opgeven met behulp van de eigenschappen van de variabele. In Windows PowerShell Console hebben we de volgende waarden in de variabele $Profile.

  • $Profile – Huidige gebruiker, huidige host
  • $Profile.CurrentUserCurrentHost – Huidige gebruiker, huidige host
  • $Profile.CurrentUserAllHosts – Huidige gebruiker, alle hosts
  • $Profile.AllUsersCurrentHost – Alle gebruikers, huidige host
  • $Profile.AllUsersAllHosts – Alle gebruikers, alle hosts

U kunt de $Profile variabele in uw commando’s gebruiken.

Code:

Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts

Output:

De bovenstaande commando’s testen of het opgegeven profiel is aangemaakt. Zoals u kunt zien is het antwoord op al deze opdrachten “false”. Zoals we al eerder hebben vermeld, worden profielen niet standaard aangemaakt. U zult ze moeten aanmaken.

Profiel aanmaken

Om een profiel aan te maken, moet u het volgende commando gebruiken.

Code:

New-Item -ItemType File -Path $profile -Force

Het bovenstaande commando zal een profiel aanmaken voor “Huidige gebruiker, huidige host”.

Merk op dat het bovenstaande een bestaand profiel zal vervangen. Als u er zeker van wilt zijn dat u geen profiel vervangt dat al bestaat en de wijzigingen verliest die u al hebt toegepast, kunt u het onderstaande proberen.

Code:

if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}

Het bovenstaande commando controleert of er een profiel is voor “Alle gebruikers, alle hosts” en als dat niet bestaat, wordt het profiel gemaakt.

Om een profiel te maken, moet u de PowerShell-console als beheerder uitvoeren. Dit geldt vanaf Windows Vista en latere versies.

Een profiel bewerken

Als een profiel bestaat en u moet enkele wijzigingen of toevoegingen toepassen, moet u een teksteditor gebruiken om het profiel te bewerken. Het gebruik van kladblok is een eenvoudige manier om het profiel te bewerken.

Code:

notepad $profile

Zoals u hieronder kunt zien, is mijn huidige profiel geconfigureerd om een welkomstbericht te geven wanneer ik mijn console open.

Nu zal ik het bovenstaande commando gebruiken om enkele wijzigingen in mijn profiel toe te passen.

Hieronder staan de wijzigingen die ik heb toegepast.

Toen ik PowerShell-console opnieuw heb opgestart, zijn de wijzigingen toegepast, zoals u kunt zien.

Richtlijnen voor profielen

Hieronder zal ik enkele richtlijnen geven voor het instellen van uw profielen, zoals die door Microsoft zijn verstrekt.

Als u meerdere host-toepassingen gebruikt, plaatst u de items die u in alle host-toepassingen gebruikt in uw $Profile.CurrentUserAllHostsprofiel. Plaats items die specifiek zijn voor een hosttoepassing, zoals een opdracht waarmee de achtergrondkleur voor een hosttoepassing wordt ingesteld, in een profiel dat specifiek is voor die hosttoepassing.

Als u een beheerder bent die PowerShell voor veel gebruikers aanpast, volg dan deze richtlijnen:

  • Bewaar de gemeenschappelijke items in het $profile.AllUsersAllHosts profiel
  • Bewaar items die specifiek zijn voor een hostapplicatie in $profile.AllUsersCurrentHost profielen die specifiek zijn voor de hostapplicatie
  • Bewaar items voor bepaalde gebruikers in de gebruikersspecifieke profielen

Zorg ervoor dat u de documentatie van de hostapplicatie raadpleegt voor een eventuele speciale implementatie van PowerShell-profielen.

Geen profiel

Zelfs als u profielen hebt gemaakt om elke keer dat u uw console opent te laden, kunt u PowerShell uitvoeren zonder dat er een profiel wordt geladen. U kunt dit doen door PowerShell uit te voeren met -NoProfile parameter. Dit kan worden gedaan vanuit cmd.exe, het dialoogvenster Uitvoeren of PowerShell zelf.

Code:

PowerShell -NoProfile

Uitvoeringsbeleid

Het PowerShell-uitvoeringsbeleid bepaalt of u scripts kunt uitvoeren en configuratiebestanden kunt laden, inclusief de profielen. Het uitvoeringsbeleid “Beperkt” is het standaardbeleid. Meer informatie over het uitvoeringsbeleid van PowerShell vindt u hier. Als u het beleid “Beperkt” gebruikt, wordt voorkomen dat alle scripts worden uitgevoerd, inclusief de profielen. Inhoud van het profiel wordt niet toegepast. Met een opdracht Set-ExecutionPolicy wordt uw uitvoeringsbeleid in alle PowerShell-sessies ingesteld en gewijzigd, omdat de waarde in het register wordt opgeslagen. U hoeft deze niet in te stellen wanneer u de console opent, of een Set-ExecutionPolicy-opdracht in uw profiel op te slaan.

Profiel op externe sessie

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.

Als we het profiel willen uitvoeren vanaf onze lokale computer, naar een externe sessie, moeten we Invoke-Command cmdlet gebruiken.

Het onderstaande voorbeeld leidt het lokale profiel naar een sessie op afstand.

Code:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile

Output:

Aangezien het profiel niet wordt ingevuld in de sessie op afstand, kunnen we ook het profiel op afstand in de sessie laden. Bekijk het onderstaande voorbeeld.

Code:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Output:

Ik hoop dat de tutorial over PowerShell Profiles nuttig is.

Laat me weten wat uw opmerkingen en gedachten zijn.

Je feedback wordt op prijs gesteld.

Gerelateerde links

  • PowerShell Tutorials
  • PowerShell Scripts
  • about_Profiles | Microsoft Docs
  • PowerShell Automatic Variables
  • PowerShell Logical Operators
  • PowerShell Execution Policy
  • Test-Pad – Microsoft Docs
  • Nieuw-Item – Microsoft Docs
  • Write-Output – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Samenvatting
Artikelnaam
PowerShell Profiles
Beschrijving
PowerShell Profiles. In deze tutorial vindt u informatie over PowerShell Profiles en het gebruik ervan. Stephanos Constantinou Blog
Auteur
Stephanos
Uitgeversnaam
Stephanos Constantinou Blog
Uitgeverslogo

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.