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 nach Industriestandard und ermöglichen es, Dateien für mehrere Computer, Anwendungen und Instanzen freizugeben.Azure File shares support the industry standard SMB protocol and enable 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.

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For installation instructions, see Install Azure PowerShell.

Starten von Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.It has common Azure tools preinstalled and configured to use with your account. Klicken Sie einfach auf Kopieren, um den Code zu kopieren. Fügen Sie ihn anschließend in Cloud Shell ein, und drücken Sie die EINGABETASTE, um ihn auszuführen.Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Cloud Shell kann auf mehrere Arten gestartet werden:There are a few ways to launch the Cloud Shell:

Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Click Try It in the upper right corner of a code block. Cloud Shell in diesem Artikel
Öffnen Sie Cloud Shell in Ihrem Browser.Open Cloud Shell in your browser. https://shell.azure.com/powershell
Klicken Sie auf die Schaltfläche Cloud Shell im Menü oben rechts im Azure-Portal.Click the Cloud Shell button on the menu in the upper right of the Azure portal. Cloud Shell im PortalCloud Shell in the portal

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 „East US“ (USA, Osten) erstellt:The following example creates a resource group named myResourceGroup in the East US region:

New-AzResourceGroup `
    -Name myResourceGroup `
    -Location EastUS

Speicherkonto erstellenCreate a storage account

Ein Speicherkonto ist ein gemeinsam genutzter Pool mit Speicherplatz, den Sie zum Bereitstellen von Azure-Dateifreigaben oder anderen Speicherressourcen wie Blobs oder Warteschlangen verwenden können.A storage account is a shared pool of storage you can use to deploy Azure file shares, or other storage resources such as blobs or queues. 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 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<Zufallszahl> 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.

$storageAcct = New-AzStorageAccount `
                  -ResourceGroupName "myResourceGroup" `
                  -Name "mystorageacct$(Get-Random)" `
                  -Location eastus `
                  -SkuName Standard_LRS 

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-AzStorageShare verwenden.You can create a file share using the New-AzStorageShare cmdlet. In diesem Beispiel wird eine Freigabe mit dem Namen myshare erstellt.This example creates a share named myshare.

New-AzStorageShare `
   -Name myshare `
   -Context $storageAcct.Context

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 directly 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 müssen ein Skript oder eine Anwendung über einen Client ausführen, der keine SMB-Freigaben einbinden kann (beispielsweise ein lokaler Client, für den die Blockierung von Port 445 nicht aufgehoben wurde).You need to execute a script or application from a client which cannot mount an SMB shares, such as on-premises clients which do not have port 445 unblocked.
  • Sie nutzen serverlose Ressourcen (beispielsweise Azure Functions).You are taking advantage of serverless resources, such as Azure Functions.

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.

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 "myshare" `
   -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
Get-Date | Out-File -FilePath "C:\Users\ContainerAdministrator\CloudDrive\SampleUpload.txt" -Force

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

Beim lokalen Ausführen von PowerShell sollten Sie C:\Users\ContainerAdministrator\CloudDrive\ durch einen Pfad ersetzen, der auf Ihrem Computer vorhanden ist.If you're running PowerShell locally, you should substitute C:\Users\ContainerAdministrator\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 "myshare" -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 "C:\Users\ContainerAdministrator\CloudDrive\SampleDownload.txt" `
     -Force `
     -ErrorAction SilentlyContinue

Get-AzStorageFileContent `
    -Context $storageAcct.Context `
    -ShareName "myshare" `
    -Path "myDirectory\SampleUpload.txt" ` 
    -Destination "C:\Users\ContainerAdministrator\CloudDrive\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 -Path "C:\Users\ContainerAdministrator\CloudDrive"

Kopieren von DateienCopy files

Eine häufige Aufgabe besteht darin, Dateien von einer Dateifreigabe auf eine andere oder in bzw. aus einem Azure Blob-Speichercontainer zu kopieren.One common task is to copy files from one file share to another file share, or to/from an Azure Blob storage container. 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.

New-AzStorageShare `
    -Name "myshare2" `
    -Context $storageAcct.Context
  
New-AzStorageDirectory `
   -Context $storageAcct.Context `
   -ShareName "myshare2" `
   -Path "myDirectory2"

Start-AzStorageFileCopy `
    -Context $storageAcct.Context `
    -SrcShareName "myshare" `
    -SrcFilePath "myDirectory\SampleUpload.txt" `
    -DestShareName "myshare2" `
    -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 "myshare2" -Path "myDirectory2" 

Das Start-AzStorageFileCopy-Cmdlet eignet sich zwar gut für das Verschieben von Ad-hoc-Dateien zwischen Azure-Dateifreigaben und Azure Blob Storage-Containern, aber für umfangreichere Verschiebungen (in Bezug auf die Anzahl oder Größe von Dateien) empfehlen wir die Verwendung von AzCopy.While the Start-AzStorageFileCopy cmdlet is convenient for ad hoc file moves between Azure file shares and Azure Blob storage containers, we recommend AzCopy for larger moves (in terms of number or size of files being moved). Informieren Sie sich über AzCopy für Windows und AzCopy für Linux.Learn more about AzCopy for Windows and AzCopy for Linux. AzCopy muss lokal installiert werden und ist in Cloud Shell nicht verfügbar.AzCopy must be installed locally - it is not available in Cloud Shell.

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:

$share = Get-AzStorageShare -Context $storageAcct.Context -Name "myshare"
$snapshot = $share.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 "myshare" -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 "myshare" `
    -Path "myDirectory\SampleUpload.txt"
 # Restore SampleUpload.txt from the share snapshot
Start-AzStorageFileCopy `
    -SrcShare $snapshot `
    -SrcFilePath "myDirectory\SampleUpload.txt" `
    -DestContext $storageAcct.Context `
    -DestShareName "myshare" `
    -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

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-AzStorageShare -Context $storageAcct.Context | Where-Object { $_.IsSnapshot -eq $false } | ForEach-Object { 
        Remove-AzStorageShare -Context $storageAcct.Context -Name $_.Name
    }
    
  • 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