Wer nicht immer das Standard PowerShell Fenster benutzen möchte, der kann dieses mittels eines Profiles einfach bei jedem Start von PowerShell anpassen.
Diese Datei liegt normalerweise unter „eigene Dokumente\WindowsPowerShell\Microsoft.PowerShell_profile.ps1“, allerdings kann dies je nach Benutzerumgebung variieren.
Den genauen Standort kann man sich in der PowerShell mit der Systemvariablen „$profile“ anzeigen lassen:Da es sich hier um ein ganz normales PowerShell-Script (*.ps1) handelt, kann man es auch ganz einfach so befüllen.
In meinem Profile lasse ich mir direkt beim Start alle SnapIns sowie Module laden (auch wenn dies die PowerShell etwas aufbläht). Dies hat den Vorteil, das man direkt alle CMDLETS des Systems zur Verfügung hat.
Des weiteren lege ich ein Transscript (LOG-Datei) an, damit ich auch später nachvollziehen kann, was ich getan habe.
write-host -fore red "### Alle verfügbaren Module laden... ###"
Get-Module -ListAvailable | % { import-module $_.Name; write-host $_.Name }
write-host ""
write-host -fore red "### Alle Snapins laden... ###"
@(Get-PSSnapin -Registered) | % { Add-PSSnapin -Name $_.Name; write-host $_.Name }
Set-QADPSSnapinSettings -DefaultSizeLimit 0
write-host ""
write-host -fore red "### Variablen und Transcript setzen ###"
$MyDate = Get-Date -Format yyyy-MM-dd_H-m-s_$env:computername
$MyLibDir = "z:\Programme\PowerShell"
$MyTransDir = "Z:\Programme\PowerShell\Transcript"
$Transcript = "$MyTransDir\Transcript_$MyDate.txt"
$MyPROD = "z:\programme\powershell\prod"
$MyTEST = "z:\programme\powershell\test"
Start-Transcript
write-host ""
write-host -fore red "### eigene Libraries laden ###"
get-childitem $MyLibDir\Modules\PS | foreach-object {. $_.fullname}
get-childitem $MyLibDir\Modules\OWN | foreach-object {. $_.fullname}
Einige Pfade kann man hier der besseren Übersicht halber auch noch in Variablen packen, dies ist aber für diese Beispiel nicht notwendig.