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)
Zur Übersicht aller Artikel dieser Windows PowerShell Blogserie.