Beispiele für Drives

Neues Drive erstellen:

New-PSDrive -Name Skripte -PSProvider FileSystem -Root "E:\ps-skripte"

gerne auch für Registry:

New-PSDrive -Name SoftwareUninstall -PSProvider Registry -Root HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

oder für fehlende Registry-Keys (hier HKCR):

New-PSDrive -Name HKCR -PSProvider Registry -Root "REGISTRY::HKEY_CLASSES_ROOT\"

so erhält man:

PS E:\_temp> Get-PSProvider -PSProvider Registry

Name                 Capabilities                                           Drives
----                 ------------                                           ------
Registry             ShouldProcess, Transactions                            {HKLM, HKCU, HKCR}


PS E:\_temp> Get-PSDrive -PSProvider Registry

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
HKCR                                   Registry      HKEY_CLASSES_ROOT\
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE

Entfernen mit

Remove-PSDrive -Name Skripte

Tipp

zur Übung für den Skriptordner ein Laufwerk erstellen!

in Laufwerk Function: arbeiten

mkdir Testing     # function!
Get-Content Function:\mkdir

Resolving Paths - Datei sollte existieren, sonst Fehler

Resolve-Path .\file.txt

Fehler unterdrücken

Resolve-Path .\file.txt -ErrorAction SilentlyContinue
Resolve-Path .\file.txt –ea 0            # Kurzform – Tipp:vermeiden

Pfad erzeugen, ob existent oder auch nicht!

$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(‘.\file.txt’)

Nur Dateien oder Ordner anzeigen lassen:

Get-ChildItem $env:windir | Where-Object { $_.PSIsContainer -eq $true }     # Directory
Get-ChildItem $env:windir | Where-Object { $_.PSIsContainer -eq $false }    # File

ab PowerShell 3.0

Get-ChildItem $env:windir -Directory
Get-ChildItem $env:windir -File

Desktop Ordner „finden“

[Environment]::GetFolderPath('Desktop')

Folder anzeigen für GetFolderPath:

[System.Enum]::GetNames([System.Environment+SpecialFolder])

das führt zu:

[Environment]::GetFolderPath('Cookies')