$PSScriptRoot beinhaltet Pfad des PowerShell Scripts

Um auch in einem großen PowerShell Script dynamisch zu bleiben, sollte man feste Pfade vermeiden. $PSScriptRoot ist eine Variable, welche den Pfad zum PS Script beinhaltet.

$PSScriptRoot in PowerShell verwenden

Die Variable $PSScriptRoot beinhaltet den Pfad des PowerShell Scripts, welches ausgeführt wird.

Der Vorteil liegt klar auf der Hand: Wird das Script von einem anderen Pfad ausgeführt, oder auf einem ganz anderen Computer, so müssten lokale Pfade jedes mal angepasst werden. Abhilfe schafft hier die Variable $PSScriptRoot, denn diese wird dynamisch mit dem Verzeichnis des Scripts gefüllt. Somit ist es egal, von wem oder von wo der Code ausgeführt wird.

Beispiel

Mit dem Commandlet Get-ChildItem lassen sich alle Dateien eines Ordners auslesen. Nutzt man nun noch den Parameter -Path, so kann man das Verzeichnis des Scripts mit Hilfe von $PSScriptRoot angeben. Somit werden nur die Dateien ausgelesen, welche sich im gleichen Verzeichnis des PowerShell Scripts befinden.

Get-ChildItem -Path $PSScriptRoot
$PSScriptRoot in PowerShell Script

Somit werden alle Ordner und Dateien aufgelistet, welche sich im gleichen Verzeichnis wie das PowerShell Script befinden. Ist es also Anforderung oder Bestandteil des Scripts, so sollte statt einem festen Pfad die Variable $PSScriptRoot verwendet werden. Somit müssen keine Anpassungen gemacht werden, falls das Script von einem anderen Pfad im Netzwerk oder auf einem anderen Computer ausgeführt wird.

Hier gibt es eine Übersicht aller automatischen PowerShell Variablen: https://www.itnator.net/automatische-variablen-in-powershell/

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments