Schnellstart: Erstellen und Verwalten einer Azure-Dateifreigabe mit Azure PowerShellQuickstart: Create and manage an Azure file share with Azure PowerShell

In dieser Anleitung werden Schritt für Schritt die Grundlagen der Verwendung von Azure-Dateifreigaben mit PowerShell beschrieben.This guide walks you through the basics of working with Azure file shares with PowerShell. Azure-Dateifreigaben sind genau wie andere Dateifreigaben, werden jedoch in der Cloud gespeichert und von der Azure-Plattform unterstützt.Azure file shares are just like other file shares, but stored in the cloud and backed by the Azure platform. Azure-Dateifreigaben unterstützen das SMB-Protokoll (Server Message Block) nach Industriestandard sowie das NFS-Protokoll (Network File System, Vorschau) und ermöglichen es, Dateien für mehrere Computer, Anwendungen und Instanzen freizugeben.Azure File shares support the industry standard Server Message Block (SMB) protocol, the Network File System (NFS) protocol (preview), and enables file sharing across multiple machines, applications, and instances.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Verwenden von Azure Cloud ShellUse Azure Cloud Shell

Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Starten von Azure Cloud Shell:To start Azure Cloud Shell:

OptionOption Beispiel/LinkExample/Link
Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Durch die Auswahl von Ausprobieren wird der Code nicht automatisch in Cloud Shell kopiert.Selecting Try It doesn't automatically copy the code to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Rufen Sie https://shell.azure.com auf, oder wählen Sie die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Starten von Cloud Shell in einem neuen FensterLaunch Cloud Shell in a new window
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Cloud Shell-Schaltfläche im Azure-Portal

Ausführen des Codes in diesem Artikel in Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Starten Sie Cloud Shell.Start Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock, um den Code zu kopieren.Select the Copy button on a code block to copy the code.

  3. Fügen Sie den Code mit STRG+UMSCHALT+V unter Windows und Linux oder Cmd+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Drücken Sie die EINGABETASTE, um den Code auszuführen.Select Enter to run the code.

Wenn Sie PowerShell lokal installieren und nutzen möchten, müssen Sie für diese Anleitung mindestens die Version Az 0.7 des Azure PowerShell-Moduls verwenden.If you would like to install and use the PowerShell locally, this guide requires the Azure PowerShell module Az version 0.7 or later. Führen Sie Get-Module -ListAvailable Az aus, um zu ermitteln, welche Version des Azure PowerShell-Moduls Sie ausführen.To find out which version of the Azure PowerShell module you are running, execute Get-Module -ListAvailable Az. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu.If you need to upgrade, see Install Azure PowerShell module. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Login-AzAccount ausführen, um sich bei Ihrem Azure-Konto anzumelden.If you are running PowerShell locally, you also need to run Login-AzAccount to login to your Azure account.

Erstellen einer RessourcengruppeCreate a resource group

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.A resource group is a logical container into which Azure resources are deployed and managed. Falls Sie nicht bereits über eine Azure-Ressourcengruppe verfügen, können Sie mit dem Cmdlet New-AzResourceGroup eine neue erstellen.If you don't already have an Azure resource group, you can create a new one with the New-AzResourceGroup cmdlet.

Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region „USA, Westen 2“ erstellt:The following example creates a resource group named myResourceGroup in the West US 2 region:

$resourceGroupName = "myResourceGroup"
$region = "westus2"

New-AzResourceGroup `
    -Name $resourceGroupName `
    -Location $region | Out-Null

Speicherkonto erstellenCreate a storage account

Bei einem Speicherkonto handelt es sich um einen gemeinsam genutzten Pool mit Speicherplatz, den Sie zum Bereitstellen von Azure-Dateifreigaben verwenden können.A storage account is a shared pool of storage you can use to deploy Azure file shares. Ein Speicherkonto kann eine unbegrenzte Anzahl von Freigaben enthalten, und eine Freigabe kann eine unbegrenzte Anzahl von Dateien speichern, bis die Kapazitätsgrenze des Speicherkontos erreicht ist.A storage account can contain an unlimited number of shares, and a share can store an unlimited number of files, up to the capacity limits of the storage account. In diesem Beispiel wird ein Speicherkonto vom Typ „Allgemein v2“ (General Purpose version 2, GPv2) erstellt, in dem Standard-Azure-Dateifreigaben sowie andere Speicherressourcen wie Blobs oder Warteschlangen auf einem Festplattenlaufwerk (Hard-Disk Drive, HDD) gespeichert werden können.This example creates a general purpose version 2 (GPv2 storage account), which can storage standard Azure file shares or other storage resources such as blobs or queues, on hard-disk drive (HDD) rotational media. Azure Files unterstützt auch SSDs (Solid State Drives). Premium-Azure-Dateifreigaben können in FileStorage-Speicherkonten erstellt werden.Azure Files also supports premium solid-state disk drives (SSDs); premium Azure file shares can be created in FileStorage storage accounts.

In diesem Beispiel wird mithilfe des Cmdlets New-AzStorageAccount ein Speicherkonto erstellt.This example creates a storage account using the New-AzStorageAccount cmdlet. Das Speicherkonto wird mit dem Namen mystorageaccount<random number> versehen, und ein Verweis auf das Speicherkonto wird in der Variablen $storageAcct gespeichert.The storage account is named mystorageaccount<random number> and a reference to that storage account is stored in the variable $storageAcct. Da Speicherkontonamen eindeutig sein müssen, sollten Sie Get-Random verwenden, um zu diesem Zweck eine Zahl an den Namen anzufügen.Storage account names must be unique, so use Get-Random to append a number to the name to make it unique.

$storageAccountName = "mystorageacct$(Get-Random)"

$storageAcct = New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $storageAccountName `
    -Location $region `
    -Kind StorageV2 `
    -SkuName Standard_ZRS `
    -EnableLargeFileShare

Hinweis

Freigaben mit einer Größe von mehr als 5 TiB (bis maximal 100 TiB pro Freigabe) sind nur in Speicherkonten mit lokal redundantem Speicher (LRS) und zonenredundantem Speicher (ZRS) verfügbar.Shares greater than 5 TiB (up to a maximum of 100 TiB per share) are only available in locally redundant (LRS) and zone redundant (ZRS) storage accounts. Wenn Sie ein Konto mit georedundantem Speicher (GRS) oder geozonenredundantem Speicher (GZRS) erstellen möchten, entfernen Sie den Parameter -EnableLargeFileShare.To create a geo-redundant (GRS) or geo-zone-redundant (GZRS) storage account, remove the -EnableLargeFileShare parameter.

Erstellen einer Azure-DateifreigabeCreate an Azure file share

Jetzt können Sie Ihre erste Azure-Dateifreigabe erstellen.Now you can create your first Azure file share. Für die Erstellung einer Dateifreigabe können Sie das Cmdlet New-AzRmStorageShare verwenden.You can create a file share using the New-AzRmStorageShare cmdlet. In diesem Beispiel wird eine Freigabe mit dem Namen myshare erstellt.This example creates a share named myshare.

$shareName = "myshare"

New-AzRmStorageShare `
    -StorageAccount $storageAcct `
    -Name $shareName `
    -EnabledProtocol SMB `
    -QuotaGiB 1024 | Out-Null

Freigabenamen dürfen nur Kleinbuchstaben, Zahlen und einzelne Bindestriche enthalten und dürfen nicht mit einem Bindestrich beginnen.Share names need to be all lower-case letters, numbers, and single hyphens but cannot start with a hyphen. Ausführliche Informationen zur Benennung von Dateifreigaben und Dateien finden Sie unter Benennen und Referenzieren von Freigaben, Verzeichnissen, Dateien und Metadaten.For complete details about naming file shares and files, see Naming and Referencing Shares, Directories, Files, and Metadata.

Verwenden Ihrer Azure-DateifreigabeUse your Azure file share

Azure Files bietet zwei Methoden für die Arbeit mit Dateien und Ordnern in Ihrer Azure-Dateifreigabe: das SMB-Protokoll (Server Message Block) nach Industriestandard und das REST-Protokoll „File“.Azure Files provides two methods of working with files and folders within your Azure file share: the industry standard Server Message Block (SMB) protocol and the File REST protocol.

Informationen zum Einbinden einer Dateifreigabe mit SMB finden Sie im folgenden Dokument für Ihr jeweiliges Betriebssystem:To mount a file share with SMB, see the following document based on your OS:

Verwenden einer Azure-Dateifreigabe mit dem REST-Protokoll „File“Using an Azure file share with the File REST protocol

Das REST-Protokoll „File“ kann direkt verwendet werden (d. h. Sie können REST-HTTP-Aufrufe selbst erstellen). Gängiger ist jedoch die Verwendung des Azure PowerShell-Moduls, der Azure-Befehlszeilenschnittstelle oder eines Azure Storage SDK. Bei allen diesen Methoden steht ein praktischer Wrapper um das REST-Protokoll „File“ in der Skript-/Programmiersprache Ihrer Wahl zur Verfügung.It is possible work with the File REST protocol directly (i.e. handcrafting REST HTTP calls yourself), but the most common way to use the File REST protocol is to use the Azure PowerShell module, the Azure CLI, or an Azure Storage SDK, all of which provide a nice wrapper around the File REST protocol in the scripting/programming language of your choice.

In den meisten Fällen werden Sie ihre Azure-Dateifreigabe über das SMB-Protokoll nutzen, da Sie so die bereits vorhandenen Anwendungen und Tools verwenden können, die sie erwarten. Es gibt jedoch auch Gründe, die für die Verwendung der REST-API „File“ sprechen:In most cases, you will use your Azure file share over the SMB protocol, as this allows you to use the existing applications and tools you expect to be able to use, but there are several reasons why it is advantageous to use the File REST API rather than SMB, such as:

  • Sie durchsuchen Ihre Dateifreigabe per Cloud Shell in PowerShell. (In diesem Fall können Dateifreigaben nicht über SMB eingebunden werden.)You are browsing your file share from the PowerShell Cloud Shell (which cannot mount file shares over SMB).
  • Sie nutzen serverlose Ressourcen (beispielsweise Azure Functions).You are taking advantage of serverless resources, such as Azure Functions.
  • Sie erstellen einen Mehrwertdienst, der mit zahlreichen Azure-Dateifreigaben interagiert, um beispielsweise Sicherungen zu erstellen oder Antivirenüberprüfungen durchzuführen.You are creating a value-add service that will interact with many Azure file shares, such as performing backup or antivirus scans.

Die folgenden Beispiele zeigen, wie Sie mit dem Azure PowerShell-Modul Ihre Azure-Dateifreigabe mit dem REST-Protokoll „File“ ändern.The following examples show how to use the Azure PowerShell module to manipulate your Azure file share with the File REST protocol. Der Parameter -Context dient zum Abrufen des Speicherkontoschlüssels, um die angegebenen Aktionen für die Dateifreigabe auszuführen.The -Context parameter is used to retrieve the storage account key to perform the indicated actions against the file share. Um den Speicherkontoschlüssel abrufen zu können, müssen Sie für das Speicherkonto über die Azure-Rolle Owner verfügen.To retrieve the storage account key, you must have the Azure role of Owner on the storage account.

Erstellen eines VerzeichnissesCreate directory

Verwenden Sie das Cmdlet New-AzStorageDirectory, um im Stammverzeichnis Ihrer Azure-Dateifreigabe ein neues Verzeichnis mit dem Namen myDirectory zu erstellen.To create a new directory named myDirectory at the root of your Azure file share, use the New-AzStorageDirectory cmdlet.

New-AzStorageDirectory `
   -Context $storageAcct.Context `
   -ShareName $shareName `
   -Path "myDirectory"

Hochladen einer DateiUpload a file

Um das Hochladen einer Datei mit dem Cmdlet Set-AzStorageFileContent demonstrieren zu können, müssen wir zuerst auf Ihrem temporären Laufwerk von PowerShell Cloud Shell eine Datei erstellen, die hochgeladen werden kann.To demonstrate how to upload a file using the Set-AzStorageFileContent cmdlet, we first need to create a file inside your PowerShell Cloud Shell's scratch drive to upload.

In diesem Beispiel werden das aktuelle Datum und die Uhrzeit in eine neue Datei auf Ihrem temporären Laufwerk eingefügt, und anschließend wird die Datei auf die Dateifreigabe hochgeladen.This example puts the current date and time into a new file on your scratch drive, then uploads the file to the file share.

# this expression will put the current date and time into a new file on your scratch drive
cd "~/CloudDrive/"
Get-Date | Out-File -FilePath "SampleUpload.txt" -Force

# this expression will upload that newly created file to your Azure file share
Set-AzStorageFileContent `
   -Context $storageAcct.Context `
   -ShareName $shareName `
   -Source "SampleUpload.txt" `
   -Path "myDirectory\SampleUpload.txt"

Beim lokalen Ausführen von PowerShell sollten Sie ~/CloudDrive/ durch einen Pfad ersetzen, der auf Ihrem Computer vorhanden ist.If you're running PowerShell locally, you should substitute ~/CloudDrive/ with a path that exists on your machine.

Nach dem Hochladen der Datei können Sie das Cmdlet Get-AzStorageFile zum Überprüfen verwenden, um sicherzustellen, dass die Datei auf Ihre Azure-Dateifreigabe hochgeladen wurde.After uploading the file, you can use Get-AzStorageFile cmdlet to check to make sure that the file was uploaded to your Azure file share.

Get-AzStorageFile `
    -Context $storageAcct.Context `
    -ShareName $shareName `
    -Path "myDirectory\" 

Herunterladen einer DateiDownload a file

Sie können das Cmdlet Get-AzStorageFileContent verwenden, um eine Kopie der Datei herunterzuladen, die Sie gerade auf das temporäre Laufwerk von Cloud Shell hochgeladen haben.You can use the Get-AzStorageFileContent cmdlet to download a copy of the file you just uploaded to the scratch drive of your Cloud Shell.

# Delete an existing file by the same name as SampleDownload.txt, if it exists because you've run this example before.
Remove-Item `
    -Path "SampleDownload.txt" `
    -Force `
    -ErrorAction SilentlyContinue

Get-AzStorageFileContent `
    -Context $storageAcct.Context `
    -ShareName $shareName `
    -Path "myDirectory\SampleUpload.txt" `
    -Destination "SampleDownload.txt"

Nach dem Herunterladen der Datei können Sie Get-ChildItem verwenden, um zu prüfen, ob die Datei auf das temporäre Laufwerk der Cloud Shell von PowerShell heruntergeladen wurde.After downloading the file, you can use the Get-ChildItem to see that the file has been downloaded to your PowerShell Cloud Shell's scratch drive.

Get-ChildItem | Where-Object { $_.Name -eq "SampleDownload.txt" }

Kopieren von DateienCopy files

Eine gängige Aufgabe ist das Kopieren von Dateien zwischen Dateifreigaben.One common task is to copy files from one file share to another file share. Zum Demonstrieren dieser Funktionalität können Sie eine neue Freigabe erstellen und die Datei, die Sie gerade hochgeladen haben, mit dem Cmdlet Start-AzStorageFileCopy auf diese neue Freigabe kopieren.To demonstrate this functionality, you can create a new share and copy the file you just uploaded over to this new share using the Start-AzStorageFileCopy cmdlet.

$otherShareName = "myshare2"

New-AzRmStorageShare `
    -StorageAccount $storageAcct `
    -Name $otherShareName `
    -EnabledProtocol SMB `
    -QuotaGiB 1024 | Out-Null
  
New-AzStorageDirectory `
   -Context $storageAcct.Context `
   -ShareName $otherShareName `
   -Path "myDirectory2"

Start-AzStorageFileCopy `
    -Context $storageAcct.Context `
    -SrcShareName $shareName `
    -SrcFilePath "myDirectory\SampleUpload.txt" `
    -DestShareName $otherShareName `
    -DestFilePath "myDirectory2\SampleCopy.txt" `
    -DestContext $storageAcct.Context

Wenn Sie die Dateien auf der neuen Freigabe auflisten, sollte die kopierte Datei angezeigt werden.Now, if you list the files in the new share, you should see your copied file.

Get-AzStorageFile `
    -Context $storageAcct.Context `
    -ShareName $otherShareName `
    -Path "myDirectory2" 

Das Cmdlet Start-AzStorageFileCopy eignet sich für Ad-hoc-Dateiverschiebungen zwischen Azure-Dateifreigaben. Für Migrationen und umfangreichere Datenverschiebungen wird die Verwendung von robocopy (unter Windows) bzw. rsync (unter macOS und Linux) empfohlen.While the Start-AzStorageFileCopy cmdlet is convenient for ad hoc file moves between Azure file shares, for migrations and larger data movements, we recommend robocopy on Windows and rsync on macOS and Linux. Von robocopy und rsync wird für Datenverschiebungen nicht die FileREST-API, sondern SMB verwendet.robocopy and rsync use SMB to perform the data movements instead of the FileREST API.

Erstellen und Verwalten von FreigabemomentaufnahmenCreate and manage share snapshots

Eine weitere nützliche Aufgabe, die Sie mit einer Azure-Dateifreigabe durchführen können, ist die Erstellung von Freigabemomentaufnahmen.One additional useful task you can do with an Azure file share is to create share snapshots. Mit einer Momentaufnahme wird für eine Azure-Dateifreigabe ein bestimmter Zeitpunkt beibehalten.A snapshot preserves a point in time for an Azure file share. Freigabemomentaufnahmen ähneln Betriebssystemtechnologien, mit denen Sie unter Umständen bereits vertraut sind:Share snapshots are similar to operating system technologies you may already be familiar with such as:

Sie können eine Freigabemomentaufnahme für eine Freigabe erstellen, indem Sie die Snapshot-Methode im PowerShell-Objekt für eine Dateifreigabe verwenden, die mit dem Cmdlet Get-AzStorageShare abgerufen wird.You can create a share snapshot for a share by using the Snapshot method on PowerShell object for a file share, which is retrieved with the Get-AzStorageShare cmdlet.

$share = Get-AzStorageShare -Context $storageAcct.Context -Name $shareName
$snapshot = $share.CloudFileShare.Snapshot()

Durchsuchen von FreigabemomentaufnahmenBrowse share snapshots

Sie können den Inhalt der Freigabemomentaufnahme durchsuchen, indem Sie den Momentaufnahmenverweis ($snapshot) an den Parameter -Share des Get-AzStorageFile-Cmdlets übergeben.You can browse the contents of the share snapshot by passing the snapshot reference ($snapshot) to the -Share parameter of the Get-AzStorageFile cmdlet.

Get-AzStorageFile -Share $snapshot

Auflisten von FreigabemomentaufnahmenList share snapshots

Sie können die Liste mit den Momentaufnahmen, die Sie für Ihre Freigabe erstellt haben, mit dem folgenden Befehl anzeigen.You can see the list of snapshots you've taken for your share with the following command.

Get-AzStorageShare `
        -Context $storageAcct.Context | `
    Where-Object { $_.Name -eq $shareName -and $_.IsSnapshot -eq $true }

Wiederherstellen von einer FreigabemomentaufnahmeRestore from a share snapshot

Sie können eine Datei wiederherstellen, indem Sie den Befehl Start-AzStorageFileCopy verwenden, den wir bereits genutzt haben.You can restore a file by using the Start-AzStorageFileCopy command we used before. In dieser Schnellstartanleitung löschen wir zuerst unsere Datei SampleUpload.txt, die wir hochgeladen haben, damit wir sie aus der Momentaufnahme wiederherstellen können.For the purposes of this quickstart, we'll first delete our SampleUpload.txt file we previously uploaded so we can restore it from the snapshot.

# Delete SampleUpload.txt
Remove-AzStorageFile `
    -Context $storageAcct.Context `
    -ShareName $shareName `
    -Path "myDirectory\SampleUpload.txt"

# Restore SampleUpload.txt from the share snapshot
Start-AzStorageFileCopy `
    -SrcShare $snapshot `
    -SrcFilePath "myDirectory\SampleUpload.txt" `
    -DestContext $storageAcct.Context `
    -DestShareName $shareName `
    -DestFilePath "myDirectory\SampleUpload.txt"

Löschen einer FreigabemomentaufnahmeDelete a share snapshot

Sie können eine Freigabemomentaufnahme löschen, indem Sie das Cmdlet Remove-AzStorageShare mit der Variablen verwenden, die den Verweis $snapshot auf den Parameter -Share enthält.You can delete a share snapshot by using the Remove-AzStorageShare cmdlet, with the variable containing the $snapshot reference to the -Share parameter.

Remove-AzStorageShare `
    -Share $snapshot `
    -Confirm:$false `
    -Force

Bereinigen von RessourcenClean up resources

Wenn Sie fertig sind, können Sie die Ressourcengruppe und alle zugehörigen Ressourcen mit dem Cmdlet Remove-AzResourceGroup entfernen.When you are done, you can use the Remove-AzResourceGroup cmdlet to remove the resource group and all related resources.

Remove-AzResourceGroup -Name myResourceGroup

Alternativ hierzu können Sie Ressourcen einzeln entfernen:You can alternatively remove resources one by one:

  • Zum Entfernen der Azure-Dateifreigaben, die wir für diese Schnellstartanleitung erstellt habenTo remove the Azure file shares we created for this quickstart.

    Get-AzRmStorageShare -StorageAccount $storageAcct | Remove-AzRmStorageShare -Force
    

    Hinweis

    Vor dem Löschen der Azure-Dateifreigabe müssen alle Freigabemomentaufnahmen für die erstellten Azure-Dateifreigaben gelöscht werden.You must delete all the share snapshots for the Azure file shares you created before deleting the Azure file share.

  • Zum Entfernen des eigentlichen Speicherkontos (Es werden implizit die von uns erstellten Azure-Dateifreigaben sowie alle anderen Speicherressourcen entfernt, die Sie ggf. erstellt haben, z.B. ein Azure Blob Storage-Container.)To remove the storage account itself (this will implicitly remove the Azure file shares we created as well as any other storage resources you may have created such as an Azure Blob storage container).

    Remove-AzStorageAccount `
        -ResourceGroupName $storageAcct.ResourceGroupName `
        -Name $storageAcct.StorageAccountName
    

Nächste SchritteNext steps