| | 0

PowerShell: Laufwerke (PSDrives) – Part 11

Der Begriff Laufwerk nimmt in der PowerShell eine völlig neue Dimension an. Im üblichen Sinne wird damit im Allgemeinen ein Datenträger bezeichnet. Die PowerShell fügt noch weitere Typen hinzu. Alle PSDrives ähneln im Verhalten dem Dateisystem. Bestimmte Stellen in der Datenstruktur eines Laufwerks können durch Pfade erreicht werden. Die Bewegung durch die Pfade und auch die meisten anderen Datenoperationen sind bei allen Laufwerken gleich, sofern sie Sinn ergeben. Die PSDrives werden mit Hilfe von sogenannten Providern realisiert. Die Provider sind .NET basierende Programme, meistens kompiliert in Form einer DLL. Sie können bestehende Cmdlets durch dynamische Parameter erweitern und neue Cmdlets, spezifisch für die jeweilige Datenstruktur, implementieren. Die sogenannten Built-in Provider, welche mit der PowerShell geliefert werden, sind die folgenden:

Provider PSDrive Datenbereich
Alias Alias: Windows PowerShell Aliase
Certificate Cert: X509 Zertifikate
Environment Env: Windows Umgebungsvariablen
FileSystem * Filesystemlaufwerke, Verzeichnisse, Dateien
Function Function: Windows PowerShell Funktionen
Registry HKLM:, HKCU: Windows Registry
Variable Variable: Windows PowerShell Variablen
WS-Management WSMan WS-Management Konfiguration

Tabelle 3-9: Built-in PSDrives

Die PSDrives beim Filesystem hängen vom jeweiligen Computersystem und Zeitpunkt ab. Jedes physikalische-, Netzwerk-, Wechsellaufwerk bildet ein PSDrive.

Die Provider können auch selbst programmiert werden. Ein Beispiel für einen selbstprogrammierten Provider stellt der INI-Provider von Michael Nolden dar. Er ermöglicht eine „Laufwerkssicht“ auf eine geladene INI-Datei. Die Inhalte können editiert werden, beim Entladen werden die Änderungen in die ursprüngliche INI-Datei gespeichert.

Alle verfügbaren PSDrives können mit Hilfe des Cmdlets Get-PSDrive aufgelistet werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3.  Get-PSDrive
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                  42,08         35,95 FileSystem    C:\
cert                                   Certificate   \
D                   8,44         30,63 FileSystem    D:\
E                 161,69         19,20 FileSystem    E:\
Env                                    Environment
Function                               Function
G                 126,33          9,33 FileSystem    G:\
H                 126,33          9,33 FileSystem    H:\
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Q                  26,90          2,40 FileSystem    Q:\
S                  11,59         33,41 FileSystem    S:\
T                                      FileSystem    T:\
U                                      FileSystem    U:\
V                                      FileSystem    V:\
Variable                               Variable
W                                      FileSystem    W:\
WSMan                                  WSMan
X                 301,66        164,10 FileSystem    X:\
Z                                      FileSystem    Z:\

Das Wechseln zu einem Drive funktioniert wie im Filesystem: den Namen des Drives, gefolgt von einem Doppelpunkt, eingeben. Befehle wie Get-ChildItem und Set-Location erlauben die „Bewegung“ innerhalb des Drives.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
1.  Change-Location hklm:
2.  Get-ChildItem
    Hive: HKEY_LOCAL_MACHINE
SKC  VC Name                           Property
---  -- ----                           --------
  2   0 BCD00000000                    {}
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
 47   1 SOFTWARE                       {(default)}
  8   0 SYSTEM                         {}
8.  Set-Location Software
9.  Get-ChildItem
    Hive: HKEY_LOCAL_MACHINE\Software
SKC  VC Name                           Property
---  -- ----                           --------
  1   1 111                            {abc}
  1   0 Adobe                          {}
  1   0 AMD                            {}
  1   0 Apple Computer, Inc.           {}
  1   0 ATI                            {}
  2   2 ATI Technologies               {eRecordEnable, (default)}
  1   0 Audible                        {}
  1   0 AuthenTec                      {}
  0  23 AuthenTec Biometric Suite      {CSSInstalled, Version, SSOEnabled, Pro-gramIconPath...}h
  7   0 Autodesk                       {}
  0   1 BrowserChoice                  {Shortcut}
  1   0 Citrix                         {}
447   1 Classes                        {(default)}
  6   0 Clients                        {}
  3   0 Conexant                       {}
  1   0 Conexant Systems               {}
  0   1 Conexant Systems Inc           {DeleteDIFxFile}
  0   1 CXT                            {IsDriverLoaded}
  2   0 DeterministicNetworks          {}
  1   0 GEAR Software                  {}
  5   0 Hewlett-Packard                {}
  2   0 IBM                            {}
  1   0 Idera                          {}
 13   2 Intel                          {(default), LogElapsedTime}
  5   0 JavaSoft                       {}
  0   0 JreMetrics                     {}
  1   0 Kolor                          {}
  9   0 Lenovo                         {}
  6   1 Logitech                       {Destination}
  1   0 Macrovision                    {}
  5   0 McAfee                         {}
153   0 Microsoft                      {}
  2   0 MozillaPlugins                 {}
  2   0 Network Associates             {}
  2   0 ODBC                           {}
  1   0 PC-Doctor                      {}
  2   0 Policies                       {}
  0   0 PrinterCalibrationRef          {}
  0  14 RegisteredApplications         {Windows Address Book, Paint, Windows Search, Windows Disc Image Burner...}
  1   1 sepago                         {New Value #1}
  2   0 Siber Systems                  {}
  0   1 SIV                            {V3.31}
  1   0 Software                       {}
  1   0 Sonic                          {}
  1   4 TrueSuite                      {CustomId, TBA_HOME, LanguageID, SysDir}
  1   0 UIU                            {}
106   3 Wow6432Node                    {(default), FirstRun, Path}

Zurück zu Part 10 – Operatoren und Ausdrücke (Logische Operatoren, Spezielle Operatoren)

Weiter zu Part 12 – Die Shell

Zur Übersicht aller Artikel dieser Windows PowerShell Blogserie.