

Version 5 (V5) von AWS -Tools für PowerShell wurde veröffentlicht\!

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im [ Thema Migration. ](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

 [![Orange button with text "Click here for details".](https://docs.aws.amazon.com/de_de/powershell/v5/userguide/images/BannerButton_less-round.png)](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon S3 als PowerShell Laufwerk verwenden
<a name="pstools-s3-drive"></a>

*Gilt für: `AWS.Tools.S3` 5.0.288 und höher. Der S3-Laufwerksanbieter und seine Cmdlets sind im `AWS.Tools.S3` Modul enthalten, das unter Windows PowerShell 5.1 und PowerShell 7\+ (Windows, Linux, macOS) läuft. *

Mit dem PowerShell S3-Laufwerk können Sie Amazon S3-Speicher als Laufwerk mounten und damit genauso arbeiten, wie Sie mit einer lokalen Festplatte arbeiten. Nachdem Sie ein Laufwerk gemountet haben, präsentiert der Anbieter Buckets und Präfixe als Ordner und Objekte als Dateien. Allgemeine Navigationsbefehle funktionieren direkt in S3, einschließlich`Set-Location`, `Get-ChildItem` `Get-Content``Set-Content`, und. `Remove-Item`

Dieses Thema behandelt das Installieren, Mounten, Navigieren, Übertragen von Inhalten und Unmounten sowie die Anmeldeinformationen, die Region und das Sicherheitsverhalten für das S3-Laufwerk.

**Pfadtrennzeichen unterscheiden sich je nach Plattform**  
Die Beispiele in diesem Thema verwenden `/` als Pfadtrennzeichen, das vom Laufwerk auf jeder Plattform akzeptiert wird. Unter Windows akzeptiert das Laufwerk das auch`\`, also `S3:\amzn-s3-demo-bucket\reports` und `S3:/amzn-s3-demo-bucket/reports` sind dort gleichwertig. Unter Linux und macOS gibt `/` es nur ein Trennzeichen, also verwende dieses Formular in Skripten, die auf mehr als einer Plattform laufen. Die Pfade, die das Laufwerk zurückgibt`PSPath`, verwenden beispielsweise das systemeigene Trennzeichen des Betriebssystems: `\` unter Windows und `/` unter Linux und macOS.

## Voraussetzungen
<a name="pstools-s3-drive-prerequisites"></a>
+ Das `AWS.Tools.S3` Modul, 5.0.288 oder höher. Installiere es direkt aus der PowerShell Galerie (dadurch wird auch seine `AWS.Tools.Common` Abhängigkeit abgerufen):

  ```
  Install-Module -Name AWS.Tools.S3 -MinimumVersion 5.0.288
  ```

  Oder, wenn Sie die modularen Tools mit dem `AWS.Tools.Installer` Modul verwalten, installieren Sie es zuerst und verwenden `Install-AWSToolsModule` Sie dann:

  ```
  Install-Module -Name AWS.Tools.Installer  # provides Install-AWSToolsModule
  Install-AWSToolsModule AWS.Tools.S3
  ```

  Der Drive-Provider und seine Cmdlets sind im Lieferumfang enthalten. `AWS.Tools.S3` Es ist keine zusätzliche Installation erforderlich.
+ AWS Anmeldeinformationen, die auf die gleiche Weise wie für jedes S3-Cmdlet konfiguriert wurden (ein benanntes Profil, Umgebungsvariablen, eine IAM-Rolle oder SSO). Weitere Informationen finden Sie unter [Fangen Sie an mit dem AWS -Tools für PowerShell](pstools-getting-set-up.md).

Beim Importieren des Moduls wird ein PowerShell Anbieter mit dem Namen registriert. `AWS.S3` Sie können bestätigen, dass es verfügbar ist:

```
Get-PSProvider AWS.S3
```

## Mounten Sie ein Laufwerk
<a name="pstools-s3-drive-mount"></a>

Wird verwendet`Mount-S3PSDrive`, um ein Laufwerk zu erstellen. Der `-Name` Parameter wird in jedem Pfad zum Laufwerksnamen (`-Name S3`gibt Ihnen beispielsweise Pfade wie`S3:/amzn-s3-demo-bucket/reports/index.txt`).

```
# Mount an S3: drive using a named profile and Region
Mount-S3PSDrive -Name S3 -ProfileName my-profile -Region us-east-1
# List buckets
Get-ChildItem S3:/
```

Beispielausgabe:

```
   Type     LastModified              Size Name
   ----     ------------              ---- ----
   Bucket   2026-06-02 09:14:03            amzn-s3-demo-app-logs
   Bucket   2026-01-08 16:47:51            amzn-s3-demo-reports
```

Wenn Sie bereits Sitzungsstandards mit `Set-AWSCredential` und festgelegt haben`Set-DefaultAWSRegion`, können Sie ohne weitere Parameter mounten:

```
Set-AWSCredential -ProfileName my-profile
Set-DefaultAWSRegion us-west-2
Mount-S3PSDrive -Name S3
```

`Mount-S3PSDrive`ist ein dünner Wrapper über dem PowerShell eingebauten. `New-PSDrive` Wenn Sie möchten, können Sie das Laufwerk direkt erstellen und dabei dieselben Anmeldeinformationen und Region-Parameter übergeben:

```
New-PSDrive -Name S3 -PSProvider AWS.S3 -Root '' -Scope Global -ProfileName my-profile -Region us-east-1
```

**Direkt verwenden New-PSDrive**  
Pass auf`-Scope Global`, wenn du es `New-PSDrive` direkt verwendest. Ohne sie wird das Laufwerk im aktuellen Gültigkeitsbereich erstellt und verschwindet, wenn dieser Bereich beendet wird (z. B. wenn das Skript oder die Funktion, mit der es erstellt wurde, zurückkehrt). `Mount-S3PSDrive`setzt `-Scope Global` für Sie ein.

In der Standardeinstellung wird keine Ausgabe `Mount-S3PSDrive` erzeugt. Fügen Sie hinzu`-PassThru`, wenn Sie das `PSDriveInfo` Objekt zurückhaben möchten.

**Name des Parameters für Anmeldeinformationen**  
Der Anmeldeinformationsparameter ist benannt`-AWSCredential`, nicht. `-Credential` `New-PSDrive`ist bereits `-Credential` als a definiert`PSCredential`, was ein anderer Typ ist, sodass das S3-Laufwerk einen eindeutigen Namen verwendet, um eine Kollision zu vermeiden.

## Wie werden Anmeldeinformationen und Region aufgelöst
<a name="pstools-s3-drive-credentials"></a>

Ein S3-Laufwerk authentifiziert und wählt eine Region genau so aus, wie es die S3-Cmdlets tun: zuerst explizite Parameter, dann die von den SDK-Standardketten festgelegten Sitzungsstandards `Set-AWSCredential` und dann die Profil-`Set-DefaultAWSRegion`, Umgebungs- und Instanzmetadatenquellen der SDK-Standardketten. Die vollständige Auflösungsreihenfolge finden Sie unter und. [AWS Anmeldeinformationen verwenden](specifying-your-aws-credentials.md) [Geben Sie die AWS Region für AWS -Tools für PowerShell](pstools-installing-specifying-region.md)

Wenn nichts eine Region versorgt, fällt das Laufwerk zurück`us-east-1`. Die Region, mit der Sie mounten, ist nur die * * Startregion: Ein einzelnes Laufwerk kann Buckets in verschiedenen Regionen erreichen (siehe[Greifen Sie von einem Laufwerk aus auf regionsübergreifende Buckets zu](#pstools-s3-drive-regions)).

Ein schlechtes Profil oder ein fehlender Bucket oder ein fehlendes Präfix schlägt bei `Mount-S3PSDrive` fehl. Einige Berechtigungsfehler treten möglicherweise erst auf, wenn Sie auf ein Objekt zugreifen.

## Navigieren Sie in Amazon S3 wie auf einem lokalen Laufwerk
<a name="pstools-s3-drive-browse"></a>

Nachdem Sie das Laufwerk gemountet haben, navigieren Sie mit den gängigen PowerShell Laufwerksbefehlen. S3 hat keine echten Ordner, aber der Anbieter präsentiert Präfixe als Ordner, sodass Sie auf die gleiche Weise darin navigieren können.

```
# Change into a bucket, then a prefix
Set-Location S3:/amzn-s3-demo-reports/2026
# List the current location
Get-ChildItem
```

Beispielausgabe:

```
   Type     LastModified              Size Name
   ----     ------------              ---- ----
   Folder                                  q1
   Folder                                  q2
   Object   2026-03-31 18:02:11      48210 summary.txt
```

```
# List a path without changing location
Get-ChildItem S3:/amzn-s3-demo-bucket/reports/2026
```

Die Tabulatorvervollständigung funktioniert für Buckets, Präfixe und Objekte, sodass Sie einen Pfad vervollständigen können, ohne vollständige Namen eingeben zu müssen.

`Get-ChildItem`gibt jedes Element als Objekt zurück, das die Eigenschaften, `Name` `Type``Size`, und verfügbar macht. `LastModified` Diese Eigenschaften ermöglichen die direkte Weiterleitung von Auflistungen in Befehle wie `Where-Object` und`Sort-Object`. `Type`ist eines von `Bucket``Folder`, oder`Object`. Ordner und Eimer haben keine Größe.

```
# List the 10 largest objects with the prefix "2026"
Get-ChildItem S3:/amzn-s3-demo-app-logs/2026 -Recurse |
    Where-Object Type -eq 'Object' |
    Sort-Object Size -Descending |
    Select-Object -First 10 Name, Size, LastModified
```

Andere Navigationsbefehle funktionieren auch auf dem Laufwerk:

```
# Retrieve the single item at an exact path (no children)
Get-Item S3:/amzn-s3-demo-bucket/reports/index.txt
# Test whether a path exists and whether it is a folder or an object
Test-Path S3:/amzn-s3-demo-bucket/reports                              # -> True
Test-Path S3:/amzn-s3-demo-bucket/reports -PathType Container          # -> True (a prefix)
Test-Path S3:/amzn-s3-demo-bucket/reports/index.txt -PathType Leaf     # -> True (an object)
```

**Befehlsaliase unterscheiden sich je nach Betriebssystem**  
Das ist PowerShell Verhalten, nicht das Laufwerk. Unter Windows funktionieren die Unix-style Aliase `ls` und die `cat` Zuordnung zu den PowerShell Cmdlets. `rm` `ls S3:/amzn-s3-demo-bucket` Unter Linux und macOS PowerShell bleiben diese Namen an die nativen Tools (`/bin/ls`,,`/bin/cat`) gebunden`/bin/rm`, die keinen S3-Pfad erkennen. Infolgedessen `ls S3:/amzn-s3-demo-bucket` läuft das System `ls` und schlägt fehl. Verwenden Sie für Skripts, die auf jeder Plattform ausgeführt werden, die vollständigen Cmdlet-Namen: `Get-ChildItem``Remove-Item`, und. `Get-Content` (`cd`und `dir` haben auf allen Plattformen Aliasnamen, sodass diese überall funktionieren.)

Mit `-Recurse` `Name` ist der Schlüssel eines Elements * relativ zum Präfix * (sodass es Folgendes enthalten kann`/`), und derselbe Blattname kann unter verschiedenen Präfixen erscheinen. Wenn Sie ein aufgelistetes Objekt eindeutig identifizieren müssen (z. B. um es weiterzuleiten), verwenden Sie es anstelle von. `PSPath` `Name`

**Aufgelistete Objekte unter Windows 5.1 über eine Pipeline mit dem Zusatz „-“ weiterleiten AsByteStream PowerShell**  
Das Einleiten der `Get-ChildItem` Pipeline `Get-Content -AsByteStream` kann unter Windows PowerShell 5.1 fehlschlagen. Die Engine bindet möglicherweise, `-AsByteStream` bevor sie weiß, dass es sich bei der über die Pipeline weitergeleiteten Eingabe um einen S3-Pfad handelt, und der FileSystem Anbieter in 5.1 hat keinen solchen Parameter (siehe[Das Lesen der lokalen Dateibytes unterscheidet sich je nach Edition](#pstools-s3-drive-local-bytes)). Lesen Sie `PSPath` stattdessen jedes Element anhand seines expliziten Inhalts, was in beiden Editionen funktioniert:  

```
# Read each listed object by explicit PSPath
Get-ChildItem S3:/amzn-s3-demo-bucket/prefix | ForEach-Object {
    Get-Content -LiteralPath $_.PSPath -AsByteStream -Raw
}
```
Auf PowerShell 7\+ funktioniert die direkte Pipe, aber das Formular pro Element ist eine sichere Standardeinstellung für Skripte, die auf beiden Editionen ausgeführt werden.

**Angebote können gefahrlos unterbrochen werden**  
Angebote werden gestreamt, sobald jede Seite mit Ergebnissen von S3 eintrifft. Sie können gefahrlos mit Strg\+C unterbrochen werden. Ein Präfix mit einer großen Anzahl von Objekten beginnt sofort mit der Ausgabe, anstatt darauf zu warten, dass die vollständige Auflistung abgeschlossen ist.

**Platzhalterzeichen in Schlüsseln**  
S3-Schlüssel können legal PowerShell Platzhalterzeichen (`[`,, `]``*`,`?`) enthalten. Um einen solchen Schlüssel wortwörtlich zu adressieren`Get-Item`, verwenden Sie `-LiteralPath` (unterstützt von `Get-Content``Set-Content`,, und`Remove-Item`), genauso wie Sie es beim Dateisystemanbieter tun:  

```
Get-Content -LiteralPath 'S3:/amzn-s3-demo-bucket/data[2026].csv' -Raw
```

**Test-Path und Objekte, die Sie nicht lesen können**  
`Test-Path`gibt `$true` für einen Pfad zurück, den Sie nicht lesen können. Es bestätigt, dass der Pfad aufgelöst wird; es bestätigt nicht, dass Sie die Erlaubnis haben, ihn zu lesen oder zu schreiben.

## Objekte aus S3 lesen
<a name="pstools-s3-drive-read"></a>

`Get-Content`lädt ein Objekt herunter. Standardmäßig gibt es Text Zeile für Zeile zurück. Hinzufügen`-Raw`, um das gesamte Objekt als einzelne Zeichenfolge zurückzugeben. `Get-Content`Sowohl als auch `Set-Content` Unterstützung `-Encoding` für Text und `-AsByteStream` für binären Inhalt.

```
# Read an object line by line
Get-Content S3:/amzn-s3-demo-reports/2026/summary.txt
# Read the whole object as one string
Get-Content S3:/amzn-s3-demo-reports/2026/summary.txt -Raw
```

Verwenden Sie für Objekte, die keinen Text sind, `-AsByteStream` um die Rohbytes abzurufen. Auf einem S3-Pfad funktioniert dies sowohl unter PowerShell 7\+ als auch unter Windows PowerShell 5.1, da der S3-Anbieter den Parameter bereitstellt. Nur * lokale * Dateien unterscheiden sich je nach Edition (siehe[Das Lesen der lokalen Dateibytes unterscheidet sich je nach Edition](#pstools-s3-drive-local-bytes)). Um die Textdekodierung zu steuern, fügen Sie `-Encoding` einen der PowerShell Standardkodierungsnamen hinzu (`UTF8``UTF8BOM``Unicode`,`ASCII`,, usw.). Die Standardeinstellung ist UTF-8 ohne BOM, sowohl `Get-Content` für als auch. `Set-Content`

```
# Read raw bytes
Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw
# Decode as a specific text encoding
Get-Content S3:/amzn-s3-demo-bucket/data/report.csv -Encoding UTF8
```

`Get-Content`akzeptiert auch`-PartSize`, die Größe des mehrteiligen * * Download-Teils in Byte zwischen dem S3-Mindestwert von 5 MiB und dem Maximum von 5 GiB festzulegen. Es wird gespiegelt `-PartSize``Set-Content`, wodurch die Größe der Upload-Komponente festgelegt wird (siehe[Laden Sie sehr große Objekte hoch](#pstools-s3-drive-large-objects)).

**Einlesen von Rohbytes in eine Variable**  
Wenn Sie die Bytes eines Objekts in eine Variable laden (um sie zu hashen, zu messen oder an eine andere API zu übergeben), glätten Sie zuerst das `-AsByteStream` Ergebnis. Andernfalls `.Length` führen Byte-Vergleiche zu falschen Ergebnissen:  

```
$bytes = [byte[]]((Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw) | ForEach-Object { $_ })
```
Bei der Weiterleitung an eine Datei oder einen anderen Befehl (z. `Set-Content -AsByteStream` B. wie in[Kopieren Sie Objekte zwischen S3 und der lokalen Festplatte](#pstools-s3-drive-copy)) ist keine Abflachung erforderlich.

## Schreiben Sie Objekte in S3
<a name="pstools-s3-drive-write"></a>

`Set-Content`lädt ein Objekt hoch (und überschreibt) es.

```
# Write text
Set-Content S3:/amzn-s3-demo-reports/2026/notes.txt -Value 'Draft complete'
# Write several lines
Set-Content S3:/amzn-s3-demo-bucket/notes/list.txt -Value @('alpha', 'beta', 'gamma')
# Write raw bytes
Set-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Value $bytes
```

Uploads haben die folgenden Optionen:


| Parameter | Zweck | 
| --- | --- | 
| `-Encoding` | Textkodierung für die On-Wire-Bytes (Standard UTF-8, keine BOM). | 
| `-NoNewline` | Lassen Sie den abschließenden Zeilenumbruch nach jedem Textwert weg. | 
| `-StorageClass` | Speicherklasse für dieses Objekt (z. B.`STANDARD_IA`). `GLACIER` | 
| `-PartSize` | Größe der mehrteiligen Komponente für diesen Upload in Byte (zwischen dem S3-Mindestwert von 5 MiB und dem Höchstwert von 5 GiB). Siehe [Laden Sie sehr große Objekte hoch](#pstools-s3-drive-large-objects). | 

Sie können einen Upload jederzeit mit Strg\+C abbrechen. Bis der Upload abgeschlossen ist, wird nichts festgeschrieben. Beim Abbrechen bleibt also kein halb geschriebenes Objekt an der Stelle des alten.

**Text-Uploads verwenden LF-Zeilenenden**  
Text-Uploads verwenden LF-Zeilenenden, sodass ein unter Windows, Linux oder macOS geschriebenes Objekt byteidentisch ist. Wenn Sie die genaue Kontrolle über die Bytes benötigen, verwenden Sie. `-AsByteStream`

### Laden Sie sehr große Objekte hoch
<a name="pstools-s3-drive-large-objects"></a>

Jeder Upload über das Laufwerk ist ein mehrteiliger Upload, und S3 begrenzt einen mehrteiligen Upload auf 10.000 Teile. Bei einer Standard-Bauteilgröße von 5 MiB, die ein einzelnes Objekt auf etwa 48 GiB begrenzt, und bei einem Upload, der die Obergrenze überschreitet, gehen die Teile aus und der Vorgang schlägt fehl. Um etwas Größeres hochzuladen, erhöhen Sie den Wert `-PartSize` so, dass es mindestens`object size / 10,000`:

```
# Upload a ~200 GiB object with 64 MiB parts (200 GiB / 10,000 = 21 MiB, so 64 MiB is plenty)

# PowerShell 7+
Get-Content ./huge.bin -AsByteStream -ReadCount 8MB |
    Set-Content S3:/amzn-s3-demo-bucket/archive/huge.bin -AsByteStream -PartSize 64MB

# Windows PowerShell 5.1 (local read uses -Encoding Byte; the S3 write keeps -AsByteStream -PartSize)
Get-Content ./huge.bin -Encoding Byte -ReadCount 8MB |
    Set-Content S3:/amzn-s3-demo-bucket/archive/huge.bin -AsByteStream -PartSize 64MB
```

`-PartSize`und `-StorageClass` sind S3-Zielparameter. Verwenden Sie sie mit einem expliziten S3-Zielpfad (wie im vorherigen Beispiel), nicht mit einem Pipeline-gebundenen Zielobjekt.

`-PartSize`akzeptiert einen Wert zwischen dem S3-Minimum von 5 MiB und dem Maximum von 5 GiB. Bei einem Maximum von 5 GiB decken 10.000 Teile das größte Objekt ab, das S3 unterstützt (5 TiB).

**Auswahl einer Bauteilgröße**  
Eine größere Bauteilgröße bedeutet auch, dass bei einem großen Upload weniger Hin- und Rückläufe erforderlich sind. Allerdings wird jedes Teil während des Fluges im Speicher gespeichert, sodass sehr große Teile mehr Speicher beanspruchen. 5 MiB bis ein paar hundert MiB sind ein vernünftiger Bereich. Gehen Sie nur höher, wenn die Objektgröße dies erfordert.

## Kopieren Sie Objekte zwischen S3 und der lokalen Festplatte
<a name="pstools-s3-drive-copy"></a>

Das Kopieren * innerhalb von * S3 mit `Copy-Item` wird nicht unterstützt (siehe[Unterstützte und nicht unterstützte Operationen](#pstools-s3-drive-supported)). Um Daten zwischen Ihrer lokalen Festplatte und S3 zu verschieben, leiten Sie den Inhalt über `Get-Content` und weiter`Set-Content`.

Lesen und schreiben Sie bei Binärdaten die Bytes exakt. Ein ** ** S3-Pfad wird in beiden PowerShell Editionen verwendet`-AsByteStream`; nur die * lokale * Seite unterscheidet sich, wie unter beschrieben[Das Lesen der lokalen Dateibytes unterscheidet sich je nach Edition](#pstools-s3-drive-local-bytes).

```
# Upload a local file (PowerShell 7+; on Windows PowerShell 5.1 the local read uses -Encoding Byte)
Get-Content ./report.csv -AsByteStream -ReadCount 8MB | Set-Content S3:/amzn-s3-demo-bucket/data/report.csv -AsByteStream

# Download to a local file (on Windows PowerShell 5.1 the local write uses -Encoding Byte)
Get-Content S3:/amzn-s3-demo-bucket/data/report.csv -AsByteStream | Set-Content ./report.csv -AsByteStream
```

**Verwenden Sie den Byte-Modus an beiden Enden für Binärdaten**  
Lesen und schreiben Sie beim Kopieren von Binärdaten Bytes ** an ** beiden Enden. Im Textmodus wird der Inhalt dekodiert und erneut codiert. Für jede Zeile wird ein Zeilenumbruch normalisiert oder angehängt, wodurch Daten, die keine Textdaten sind, beschädigt werden. Byte-mode Beim Lesen und Schreiben werden die Bytes exakt kopiert. Bei Textdateien `Get-Content | Set-Content` funktioniert plain, mit einer Ausnahme: Der Textmodus `Set-Content` fügt einen abschließenden Zeilenumbruch (LF) an und normalisiert die Zeilenenden, sodass die Kopie nicht Byte für Byte mit der Quelle identisch ist. Wenn Sie eine exakte Kopie benötigen, verwenden Sie sie an beiden Enden. `-AsByteStream`

### Das Lesen der lokalen Dateibytes unterscheidet sich je nach Edition
<a name="pstools-s3-drive-local-bytes"></a>

Für das Targeting auf eine lokale Datei wird PowerShell der integrierte FileSystem Provider verwendet, und dieser Anbieter hat `-AsByteStream` in Windows PowerShell 5.1 keinen (er wurde in PowerShell 6 eingeführt). Verwenden Sie stattdessen `-Encoding Byte` dort. Dies ist eine 5.1-Beschränkung, die nicht vom S3-Laufwerk gesteuert wird; ein S3-Pfad gilt `-AsByteStream` für beide Editionen.


| Edition | Liest lokale Dateibytes | Lokale Dateibytes schreiben | 
| --- | --- | --- | 
| **PowerShell 7\+ ** | `Get-Content $f -AsByteStream -ReadCount 8MB` | `Set-Content $f -AsByteStream` | 
| **Windows 5.1 PowerShell ** | `Get-Content $f -Encoding Byte -ReadCount 8MB` | `Set-Content $f -Encoding Byte` | 

Verwenden Sie für serverseitige S3-to-S3 Kopien das [ Copy-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html) Cmdlet.

## Löschen Sie Objekte und Präfixe
<a name="pstools-s3-drive-delete"></a>

`Remove-Item`löscht ein einzelnes Objekt. Das Löschen eines Präfixes (eines Ordners mit Inhalten) erfordert`-Recurse`, dass alles, was sich darunter befindet, stapelweise entfernt wird.

```
# Delete a single object
Remove-Item S3:/amzn-s3-demo-bucket/notes/todo.txt
# Delete a prefix and everything under it
Remove-Item S3:/amzn-s3-demo-bucket/old-logs -Recurse
```

Ob `Remove-Item` Eingabeaufforderungen angezeigt werden, hängt davon ab, worauf Sie abzielen:
+ Ein einzelnes Objekt, ohne`-Recurse`: keine Aufforderung. Das Objekt wird gelöscht.
+ Ein Präfix mit`-Recurse`: ohne Eingabeaufforderung. Alles unter dem Präfix wird gelöscht.
+ Ein nicht leeres Präfix ohne`-Recurse`: PowerShell fordert zur Bestätigung auf. Dies ist das Verhalten des Dateisystemanbieters „Container hat Kinder“. Wenn Sie dies bestätigen, wird das Löschen erneut ausgeführt. Wenn Sie ablehnen, wird nichts gelöscht. Auf einem nicht interaktiven Host blockiert diese Aufforderung. Übergeben Sie `-Recurse` die Taste, um ohne Aufforderung fortzufahren.

Verwenden Sie die systemeigenen PowerShell Schalter, um eine Vorschau anzuzeigen oder einen Löschvorgang durchzuführen:

```
# Preview without deleting
Remove-Item S3:/amzn-s3-demo-bucket/old-logs -Recurse -WhatIf
# Ask for confirmation
Remove-Item S3:/amzn-s3-demo-bucket/notes/todo.txt -Confirm
```

**Versioning-enabled Buckets speichern nicht aktuelle Versionen**  
`Remove-Item`Führt in einem Bucket mit aktivierter Amazon S3-Versionierung eine Standardlöschung durch. Es fügt eine Löschmarkierung hinzu und blendet die aktuelle Version aus. Unaktuelle Versionen werden jedoch nicht entfernt, da diese beibehalten werden und weiterhin Speicherkosten verursachen. Um Versionen dauerhaft zu entfernen, verwenden Sie die S3-Cmdlets (z. B. [ Remove-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Object.html) mit einer Versions-ID) oder eine Amazon S3-Lebenszyklusregel.

**Remove-Item -Recurse löscht ohne Aufforderung**  
`Remove-Item -Recurse`löscht jedes Objekt unter dem Präfix ohne Aufforderung, genau wie. `rm -r` Bei einem Bucket ohne Versionierung ist das rekursive Löschen dauerhaft. In einem Bucket mit aktivierter Versionierung werden Löschmarkierungen hinzugefügt, wie im vorherigen Hinweis beschrieben. Verwenden Sie `-WhatIf` zuerst, wenn Sie sich nicht sicher sind, was entfernt werden soll.

Sie können nicht einen ganzen * Bucket * über das Laufwerk löschen, da die Vorgänge im Bucket-Lebenszyklus nicht in den Geltungsbereich fallen. Verwenden Sie stattdessen [Remove-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Bucket.html).

## Ordnen Sie einem Laufwerk einen Bucket oder ein Präfix zu
<a name="pstools-s3-drive-scoped-mount"></a>

Mounten mit`-Root`, um ein Laufwerk auf einen Bucket oder ein Präfix innerhalb eines Buckets zu beschränken. Das Stammverzeichnis des Laufwerks * ist dann * dieser Standort, und die Navigation ist darunter beschränkt.

```
# Mount rooted at a bucket: the drive root lists the bucket's top-level entries
Mount-S3PSDrive -Name Data -Root amzn-s3-demo-bucket -ProfileName my-profile -Region us-east-1
Get-ChildItem Data:/                 # top-level keys in amzn-s3-demo-bucket
Get-Content Data:/reports/index.txt  # -> amzn-s3-demo-bucket/reports/index.txt

# Mount rooted at a bucket + prefix
Mount-S3PSDrive -Name Reports -Root amzn-s3-demo-reports/2026 -ProfileName my-profile -Region us-east-1
Get-ChildItem Reports:/              # contents of amzn-s3-demo-reports/2026/
```

Das Stammverzeichnis muss bereits existieren. Ein Bucket oder Präfix, das nicht existiert, schlägt beim Mounten fehl. Da relative Pfade nicht über das Stammverzeichnis hinausgehen können (`..`weil sie von der Engine blockiert werden), erhalten Sie bei einem Mount mit Geltungsbereich einen fokussierten Überblick über genau die Daten eines Projekts.

## Greifen Sie von einem Laufwerk aus auf regionsübergreifende Buckets zu
<a name="pstools-s3-drive-regions"></a>

Ein einzelnes montiertes Laufwerk kann Buckets in verschiedenen Regionen erreichen. Wenn Sie einen Bucket zum ersten Mal berühren, sucht der Anbieter nach seiner Region und leitet nachfolgende Anrufe automatisch an den richtigen Endpunkt weiter. Sie benötigen nicht für jede Region ein eigenes Laufwerk.

```
# Mounted in us-east-1, but this bucket is in us-west-2 and commands work without extra configuration
Mount-S3PSDrive -Name S3 -ProfileName my-profile -Region us-east-1
Get-ChildItem S3:/amzn-s3-demo-west-bucket
Get-Content   S3:/amzn-s3-demo-west-bucket/data/report.csv -Raw
```

## Legen Sie eine Standardspeicherklasse fest
<a name="pstools-s3-drive-storage-class"></a>

Legen Sie bei der Bereitstellung mit eine festplattenweite Standardspeicherklasse fest. `-StorageClass` Jeder Upload über dieses Laufwerk verwendet die angegebene Klasse, es sei denn, eine bestimmte Klasse `Set-Content` überschreibt sie durch eine eigene. `-StorageClass`

```
# Set all uploads to default to STANDARD_IA
Mount-S3PSDrive -Name Archive -ProfileName my-profile -Region us-east-1 -StorageClass STANDARD_IA
Set-Content Archive:/amzn-s3-demo-bucket/cold/data.txt -Value '...'                        # STANDARD_IA
Set-Content Archive:/amzn-s3-demo-bucket/hot/data.txt  -Value '...' -StorageClass STANDARD # overrides to STANDARD
```

## Hängen Sie ein Laufwerk aus
<a name="pstools-s3-drive-unmount"></a>

Verwenden Sie `Dismount-S3PSDrive` (einen Wrapper über`Remove-PSDrive`), um ein Laufwerk zu entfernen. Wechseln Sie zuerst zu einem anderen Standort, da dadurch PowerShell kein Laufwerk entfernt wird, das Ihrem aktuellen Standort entspricht.

```
Set-Location $HOME           # or C:\ on Windows
Dismount-S3PSDrive -Name S3
```

## Unterstützte und nicht unterstützte Operationen
<a name="pstools-s3-drive-supported"></a>

Verwenden Sie das Laufwerk zum Durchsuchen und Verschieben von * Objektinhalten*. Der Bucket-Lebenszyklus und die serverseitigen Kopiervorgänge verbleiben bei den dedizierten S3-Cmdlets.

### Unterstützt
<a name="pstools-s3-drive-supported-list"></a>
+ Navigation und Auflistung:`Set-Location`, `Get-ChildItem` (einschließlich`-Recurse`),,, Tabulatorvervollständigung `Get-Item` `Test-Path`
+ Inhalt: `Get-Content` (herunterladen), `Set-Content` (hochladen)
+ Löschen: `Remove-Item` (einzelnes Objekt; Präfixe mit`-Recurse`)
+ Aufgelistete Elemente in und weiterleiten `Get-Content` `Remove-Item`

### Nicht unterstützt
<a name="pstools-s3-drive-not-supported"></a>


| Befehl | Warum/was soll man stattdessen verwenden | 
| --- | --- | 
| `Copy-Item` | S3-to-S3 Die Kopie wird nicht über das Laufwerk angezeigt. Wird [ Copy-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html) für serverseitige Kopien verwendet. Für lokale Zu-S3-Übertragungen oder S3-to-local Übertragungen verwenden Sie die Pipeline. `Get-Content \| Set-Content` | 
| `Move-Item`, `Rename-Item` | S3 hat keine Umbenennung. Führen Sie mit den Cmdlets ein Kopieren und Löschen durch. | 
| `New-Item`(Verzeichnis) | S3 hat keine echten Ordner. Ein Präfix erscheint, wenn Sie ein Objekt darunter schreiben. | 
| `Clear-Content`, `Add-Content` | Objekte werden als Ganzes von geschrieben`Set-Content`. Es gibt kein direktes Anfügen oder Löschen. | 
| `Get-ItemProperty`, `Set-ItemProperty`, `Clear-ItemProperty` | Das Laufwerk implementiert die PowerShell Eigenschaftenschnittstelle nicht, daher schlagen diese Befehle fehl und es wird anstelle der Meldung des PowerShell Laufwerks der Engine-eigene Fehler „Schnittstelle nicht unterstützt“ angezeigt. Die Elemente, die in `Get-ChildItem` und `Get-Item` zurückgegeben werden, enthalten nur`Name`,, `Type` und. `Size` `LastModified` Verwenden Sie oder, um S3-Objektmetadaten zu lesen [ Get-S3ObjectMetadata ](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ObjectMetadata.html) oder festzulegen [ Write-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Write-S3Object.html). | 
| Buckets erstellen oder löschen | Verwenden Sie [ New-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/New-S3Bucket.html)/[Remove-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Bucket.html). | 

Befehle, die nicht unterstützt werden, schlagen mit einer Meldung fehl, die den Befehl benennt und auf die Alternative verweist. Beispiel: "Copy-Item wird vom S3-Laufwerk nicht unterstützt. Verwenden Sie Copy-S3Object, oder leiten Sie Get-Content die Pipeline an Set-Content.“ Die `*-ItemProperty` Befehle stellen eine Ausnahme dar, wie in der vorherigen Tabelle beschrieben.

## Befehlsreferenz
<a name="pstools-s3-drive-command-reference"></a>

Die vollständige Parameterliste für [ Mount-S3PSDrive ](https://docs.aws.amazon.com/powershell/v5/reference/items/Mount-S3PSDrive.html) und [ Dismount-S3PSDrive ](https://docs.aws.amazon.com/powershell/v5/reference/items/Dismount-S3PSDrive.html) finden Sie in der [AWS -Tools für PowerShell Cmdlet-Referenz. ](https://docs.aws.amazon.com/powershell/v5/reference/)

Auf einem S3-Pfad fügt das Laufwerk auch dynamische Parameter hinzu `Get-Content``Set-Content`, die in der PowerShell Dokumentation für diese Cmdlets nicht behandelt werden:


| Befehl | Parameters | 
| --- | --- | 
| `Get-Content` | `-AsByteStream`, `-Raw`, `-Encoding`, `-PartSize` | 
| `Set-Content` | `-AsByteStream`,`-Encoding`, `-NoNewline``-StorageClass`, `-PartSize` (siehe) [Laden Sie sehr große Objekte hoch](#pstools-s3-drive-large-objects) | 

## Fehlerbehebung
<a name="pstools-s3-drive-troubleshooting"></a>

### „Das Laufwerk kann nicht getrennt werden, da es gerade verwendet wird.“
<a name="pstools-s3-drive-ts-dismount"></a>

Das S3-Laufwerk ist der aktuelle Standort. Wechseln Sie zu einem Speicherort auf einem anderen Laufwerk, z. B.`$HOME`, und führen Sie den Vorgang `Dismount-S3PSDrive` erneut aus.

### Das Mounten schlägt fehl mit der Meldung „root wurde nicht gefunden oder ist nicht erreichbar“.
<a name="pstools-s3-drive-ts-root"></a>

Der Bucket oder das Präfix in `-Root` existiert nicht. Überprüfen Sie den Namen (und die Region, falls sich der Bucket in einem Bucket befindet, den Ihre Anmeldeinformationen nicht standardmäßig verwenden). Ein * Fehler bei den * Anmeldeinformationen führt zu einem anderen Fehler, nicht zu dieser Meldung „Nicht erreichbar“. Ein Berechtigungsfehler im Stammverzeichnis tritt möglicherweise erst auf, wenn Sie auf ein Objekt zugreifen. Eine erfolgreiche Bereitstellung garantiert also nicht, dass Sie jeden Pfad darunter lesen können.

### Das Löschen eines nicht leeren Präfixes hängt in einem Skript.
<a name="pstools-s3-drive-ts-delete-hangs"></a>

Dies passiert, wenn Sie ein nicht leeres Präfix * ohne * `-Recurse` löschen. Die PowerShell Engine gibt eine Bestätigungsaufforderung aus, da das Präfix untergeordnete Elemente hat (das Verhalten des Dateisystemanbieters, der Container hat Kinder). Ein nicht interaktiver Host kann die Aufforderung nicht beantworten, weshalb der Befehl blockiert wird.

Übergeben Sie die Taste`-Recurse`, um den Inhalt des Präfixes ohne Aufforderung zu löschen, oder bestätigen Sie interaktiv, um fortzufahren. (`-Force`wird vom Löschpfad des Laufwerks nicht berücksichtigt, daher hat er hier keine Auswirkung.)

### „Ein Objekt, das ich gerade außerhalb des Laufwerks geändert habe, zeigt immer noch die alte Liste an.“
<a name="pstools-s3-drive-ts-stale-listing"></a>

Angebote werden kurz zwischengespeichert (etwa eine Sekunde), um die Navigation zu beschleunigen. *Über * das Laufwerk vorgenommene Änderungen werden sofort angezeigt. Änderungen, die von einem anderen Tool vorgenommen wurden, werden nach Ablauf des kurzen Caches angezeigt.

### „Ein Schlüssel enthält einen Backslash.“
<a name="pstools-s3-drive-ts-backslash"></a>

Ob das Laufwerk einen Schlüssel adressieren kann, der einen umgekehrten Schrägstrich enthält, hängt vom Betriebssystem ab, da das Laufwerk das native Pfadtrennzeichen der Plattform akzeptiert:
+ **Windows ** — `\` ist ein Pfadtrennzeichen, das Laufwerk liest es also als eins und normalisiert es auf. `/` Ein Schlüssel, der einen wörtlichen Backslash enthält, kann nicht über das Laufwerk adressiert werden. Verwenden Sie stattdessen die S3-Cmdlets, z. B. oder. [ Get-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3Object.html) [ Read-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Read-S3Object.html)
+ **Linux und macOS ** — nur das `/` ist ein Pfadtrenner. Ein Backslash ist ein normales Zeichen in einem Schlüssel, daher adressiert das Laufwerk diese Schlüssel normal.

**Weitere Informationen finden Sie auch unter**
+  [Was sind die AWS -Tools für PowerShell?](pstools-welcome.md) 
+  [AWS -Tools für PowerShell Cmdlet-Referenz ](https://docs.aws.amazon.com/powershell/v5/reference/) 
+  [Amazon S3-Dokumentation ](https://docs.aws.amazon.com/s3/) 