Verwalten von DNS-Zonen mithilfe der PowerShellHow to manage DNS Zones using PowerShell

In diesem Artikel wird gezeigt, wie DNS-Zonen mithilfe von Azure PowerShell verwaltet werden.This article shows you how to manage your DNS zones by using Azure PowerShell. Sie können Ihre DNS-Zonen auch mithilfe der plattformübergreifenden Azure CLI oder über das Azure-Portal verwalten.You can also manage your DNS zones using the cross-platform Azure CLI or the Azure portal.

Dieses Handbuch befasst sich insbesondere mit öffentlichen DNS-Zonen.This guide specifically deals with Public DNS zones. Informationen zur Verwendung von Azure PowerShell zum Verwalten von privaten Zonen in Azure DNS finden Sie unter Erste Schritte mit Azure DNS Private Zones mithilfe von Azure PowerShell.For information on using Azure PowerShell to manage Private Zones in Azure DNS, see Get started with Azure DNS Private Zones using Azure PowerShell.

Eine DNS-Zone wird zum Hosten der DNS-Einträge für eine bestimmte Domäne verwendet.A DNS zone is used to host the DNS records for a particular domain. Wenn Sie eine Domäne in Azure DNS hosten möchten, müssen Sie eine DNS-Zone für diesen Domänennamen erstellen.To start hosting your domain in Azure DNS, you need to create a DNS zone for that domain name. Jeder DNS-Eintrag für Ihre Domäne wird dann in dieser DNS-Zone erstellt.Each DNS record for your domain is then created inside this DNS zone.

Beispiel: Die Domäne „contoso.com“ kann eine Reihe von DNS-Einträgen wie „mail.contoso.com“ (für einen E-Mail-Server) und „www.contoso.com“ (für eine Website) enthalten.For example, the domain 'contoso.com' may contain several DNS records, such as 'mail.contoso.com' (for a mail server) and 'www.contoso.com' (for a web site).

Beim Erstellen einer DNS-Zone in Azure DNS gilt Folgendes:When creating a DNS zone in Azure DNS:

  • Der Name der Zone muss innerhalb der Ressourcengruppe eindeutig sein. Außerdem darf die Zone noch nicht vorhanden sein.The name of the zone must be unique within the resource group, and the zone must not exist already. Andernfalls ist der Vorgang nicht erfolgreich.Otherwise, the operation fails.
  • Der gleiche Zonennamen kann in einer anderen Ressourcengruppe oder einem anderen Azure-Abonnement erneut verwendet werden.The same zone name can be reused in a different resource group or a different Azure subscription.
  • Wenn mehrere Zonen den gleichen Namen haben, erhält jede Instanz eine andere Adresse für den Namenserver.Where multiple zones share the same name, each instance is assigned different name server addresses. Mit der Domänennamen-Registrierungsstelle kann nur ein Satz von Adressen konfiguriert werden.Only one set of addresses can be configured with the domain name registrar.

Hinweis

Sie müssen keinen Domänennamen besitzen, um eine DNS-Zone mit diesem Domänennamen in Azure DNS zu erstellen.You do not have to own a domain name to create a DNS zone with that domain name in Azure DNS. Sie müssen jedoch die Domäne besitzen, um die Azure DNS-Namenserver als korrekte Namenserver für den Domänennamen mit der Domänennamen-Registrierungsstelle zu konfigurieren.However, you do need to own the domain to configure the Azure DNS name servers as the correct name servers for the domain name with the domain name registrar.

Weitere Informationen finden Sie unter Delegieren einer Domäne an Azure DNS.For more information, see Delegate a domain to Azure DNS.

Einrichten des Azure PowerShell für Azure DNSSet up Azure PowerShell for Azure DNS

VoraussetzungenBefore you begin

Wichtig

Die Verwendung dieser Azure-Funktion mit PowerShell erfordert, dass Sie das AzureRM-Modul installiert haben.Using this Azure feature from PowerShell requires that you have the AzureRM module installed. Dies ist ein älteres Modul, das nur für Windows PowerShell 5.x verfügbar ist und kritische Updates empfängt, aber keine neuen Funktionen mehr erhält.This is an older module only available for Windows PowerShell 5.x that receives critical updates, but no longer gets new features. Wenn Sie das Az-Modul installiert haben, müssen Sie ebenfalls AzureRM installieren.If you have the Az module installed, you will need to install AzureRM as well. So installieren Sie AzureRMTo install AzureRM:

  1. Deaktivieren Sie AzureRM-Aliase in Az (sofern aktiviert) mit Disable-AzAlias.Disable AzureRM aliases in Az (if enabled) with Disable-AzAlias. Das Ausführen dieses Befehls ohne installiertes Az oder mit deaktivierten Aliasen ist problemlos möglich.Running this command without Az installed or with aliases disabled is harmless.
  2. Befolgen Sie die neuesten Installationsanweisungen für AzureRM.Follow the latest install instructions for AzureRM. Selbst wenn Sie AzureRM installiert haben, aktualisieren Sie auf die neueste Version.Even if you have AzureRM installed, update to the latest version.

Vergewissern Sie sich vor Beginn der Konfiguration, dass Sie über Folgendes verfügen:Verify that you have the following items before beginning your configuration.

Zur Verwendung von Private Zones (Public Preview) benötigen Sie zudem folgende PowerShell-Module und -Versionen:In addition, to use Private Zones (Public Preview), you need to ensure you have the below PowerShell modules and versions.

Find-Module -Name AzureRM.Dns 
Find-Module -Name AzureRM.Network 

In der Ausgabe der obigen Befehle muss die AzureRM.Dns-Version mindestens 4.1.0 und die AzureRM.Network-Version mindestens 5.4.0 sein.The output of the above commands needs to show that the version of AzureRM.Dns is 4.1.0 or higher version, and for AzureRM.Network is 5.4.0 or higher version.

Sollten in Ihrem System ältere Versionen vorhanden sein, können Sie entweder die neueste Version von Azure PowerShell installieren oder die obigen Module aus dem PowerShell-Katalog herunterladen und installieren. Verwenden Sie dazu die obigen Links neben den Modulversionen.In case your system has earlier versions, you can either install the latest version of Azure PowerShell, or download and install the above modules from the PowerShell Gallery, using the links above next to the Module versions. Anschließend können Sie sie mithilfe der weiter unten bereitgestellten Befehle installieren.You can then install them using the below commands. Beide Module sind erforderlich und vollständig abwärtskompatibel.Both the modules are required and are fully backwards compatible.

Install-Module -Name AzureRM.Dns -Force
Install-Module -Name AzureRM.Network -Force

Anmelden bei Ihrem Azure-KontoSign in to your Azure account

Öffnen Sie die PowerShell-Konsole, und stellen Sie eine Verbindung mit Ihrem Konto her.Open your PowerShell console and connect to your account. Weitere Informationen finden Sie unter Anmelden.For more information, see Sign in.

Connect-AzureRmAccount

Auswählen des AbonnementsSelect the subscription

Überprüfen Sie die Abonnements für das Konto.Check the subscriptions for the account.

Get-AzureRmSubscription

Wählen Sie aus, welches Azure-Abonnement Sie verwenden möchten.Choose which of your Azure subscriptions to use.

Select-AzureRmSubscription -SubscriptionName "your_subscription_name"

Erstellen einer RessourcengruppeCreate a resource group

Azure Resource Manager erfordert, dass alle Ressourcengruppen einen Speicherort angeben.Azure Resource Manager requires that all resource groups specify a location. Dieser wird als Standardspeicherort für Ressourcen in dieser Ressourcengruppe verwendet.This location is used as the default location for resources in that resource group. Da alle DNS-Ressourcen global und nicht regional sind, hat die Auswahl des Speicherorts für die Ressourcengruppe jedoch keine Auswirkungen auf Azure DNS.However, because all DNS resources are global, not regional, the choice of resource group location has no impact on Azure DNS.

Dieser Schritt kann übersprungen werden, wenn Sie eine vorhandene Ressourcengruppe verwenden.You can skip this step if you are using an existing resource group.

New-AzureRmResourceGroup -Name MyAzureResourceGroup -location "West US"

Registrieren des RessourcenanbietersRegister resource provider

Der Azure DNS-Dienst wird vom Ressourcenanbieter "Microsoft.Network" verwaltet.The Azure DNS service is managed by the Microsoft.Network resource provider. Ihr Azure-Abonnement muss für die Verwendung dieses Ressourcenanbieters registriert werden, bevor Sie Azure DNS verwenden können.Your Azure subscription must be registered to use this resource provider before you can use Azure DNS. Dieser Schritt muss einmal für jedes Abonnement ausgeführt werden.This is a one-time operation for each subscription.

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Network

Erstellen einer DNS-ZoneCreate a DNS zone

Eine DNS-Zone wird mit dem New-AzureRmDnsZone -Cmdlet erstellt.A DNS zone is created by using the New-AzureRmDnsZone cmdlet.

Im folgenden Beispiel wird in der Ressourcengruppe namens MyResourceGroup eine DNS-Zone namens contoso.com erstellt:The following example creates a DNS zone called contoso.com in the resource group called MyResourceGroup:

New-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

Das folgende Beispiel zeigt, wie Sie eine DNS-Zone mit zwei Azure Resource Manager-Tags erstellen: project = demo und env = test:The following example shows how to create a DNS zone with two Azure Resource Manager tags, project = demo and env = test:

New-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup -Tag @{ project="demo"; env="test" }

Azure DNS unterstützt jetzt auch private DNS-Zonen (zurzeit als öffentliche Vorschauversion verfügbar).Azure DNS now also supports private DNS zones (currently in public preview). Weitere Informationen zu privaten DNS-Zonen finden Sie unter Using Azure DNS for private domains (Verwenden von Azure DNS für private Domänen).To learn more about private DNS zones, see Using Azure DNS for private domains. Ein Beispiel zum Erstellen einer privaten DNS-Zone finden Sie unter Erste Schritte mit privaten Azure DNS-Zonen mithilfe von PowerShell.For an example of how to create a private DNS zone, see Get started with Azure DNS private zones using PowerShell.

Abrufen einer DNS-ZoneGet a DNS zone

Verwenden Sie zum Abrufen einer DNS-Zone das Cmdlet Get-AzureRmDnsZone.To retrieve a DNS zone, use the Get-AzureRmDnsZone cmdlet. Dieser Vorgang gibt ein DNS-Zonenobjekt zurück, das einer vorhandenen Zone in Azure DNS entspricht.This operation returns a DNS zone object corresponding to an existing zone in Azure DNS. Das Objekt enthält Daten über die Zone (z.B. die Anzahl der Ressourceneintragssätze), jedoch nicht die Ressourceneintragssätze selbst (siehe Get-AzureRmDnsRecordSet).The object contains data about the zone (such as the number of record sets), but does not contain the record sets themselves (see Get-AzureRmDnsRecordSet).

Get-AzureRmDnsZone -Name contoso.com –ResourceGroupName MyAzureResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

Auflisten von DNS-ZonenList DNS zones

Durch Auslassen des Zonennamens in Get-AzureRmDnsZone können Sie alle Zonen in einer Ressourcengruppe auflisten:By omitting the zone name from Get-AzureRmDnsZone, you can enumerate all zones in a resource group. Dieser Vorgang gibt ein Array von Zonenobjekten zurück.This operation returns an array of zone objects.

$zoneList = Get-AzureRmDnsZone -ResourceGroupName MyAzureResourceGroup

Durch das Weglassen des Zonennamens und des Ressourcengruppennamens aus Get-AzureRmDnsZone können Sie alle Zonen im Azure-Abonnement auflisten.By omitting both the zone name and the resource group name from Get-AzureRmDnsZone, you can enumerate all zones in the Azure subscription.

$zoneList = Get-AzureRmDnsZone

Aktualisieren einer DNS-ZoneUpdate a DNS zone

Änderungen an einer DNS-Zonenressource können mithilfe von Set-AzureRmDnsZonevorgenommen werden.Changes to a DNS zone resource can be made by using Set-AzureRmDnsZone. Durch dieses Cmdlet wird keine der DNS-Datensatzgruppen in der Zone aktualisiert (siehe Verwalten von DNS-Einträgen).This cmdlet does not update any of the DNS record sets within the zone (see How to Manage DNS records). Es wird nur verwendet, um Eigenschaften der Zonenressource selbst zu aktualisieren.It's only used to update properties of the zone resource itself. Die schreibbaren Zoneneigenschaften sind derzeit auf die Azure Resource Manager-„Tags“ für die Zonenressource beschränkt.The writable zone properties are currently limited to the Azure Resource Manager ‘tags’ for the zone resource.

Verwenden Sie eine der folgenden zwei Möglichkeiten, um eine DNS-Zone zu aktualisieren:Use one of the following two ways to update a DNS zone:

Angeben der Zone mithilfe des Zonennamens und der RessourcengruppeSpecify the zone using the zone name and resource group

Mit diesem Ansatz werden die vorhandenen Zonen-Tags durch die angegebenen Werte ersetzt.This approach replaces the existing zone tags with the values specified.

Set-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup -Tag @{ project="demo"; env="test" }

Angeben der Zone mithilfe eines $zone-ObjektsSpecify the zone using a $zone object

Mit diesem Ansatz werden das vorhandene Zonenobjekt abgerufen, die Tags geändert und dann ein Commit für die Änderungen ausgeführt.This approach retrieves the existing zone object, modifies the tags, and then commits the changes. Auf diese Weise können vorhandene Tags beibehalten werden.In this way, existing tags can be preserved.

# Get the zone object
$zone = Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzureRmDnsZone -Zone $zone

Wenn Sie Set-AzureRmDnsZone mit einem $zone-Objekt verwenden, wird durch ETag-Überprüfungen sichergestellt, dass gleichzeitige Änderungen nicht überschrieben werden.When using Set-AzureRmDnsZone with a $zone object, Etag checks are used to ensure concurrent changes are not overwritten. Diese Überprüfungen können mithilfe des optionalen Switchs -Overwrite unterdrückt werden.You can use the optional -Overwrite switch to suppress these checks.

Löschen einer DNS-ZoneDelete a DNS Zone

DNS-Zonen können mithilfe des Remove-AzureRmDnsZone-Cmdlets gelöscht werden.DNS zones can be deleted using the Remove-AzureRmDnsZone cmdlet.

Hinweis

Durch das Löschen einer DNS-Zone werden auch alle DNS-Einträge in der Zone gelöscht.Deleting a DNS zone also deletes all DNS records within the zone. Dieser Vorgang kann nicht rückgängig gemacht werden.This operation cannot be undone. Wenn die DNS-Zone verwendet wird, tritt in Diensten, die die Zone verwenden, ein Fehler auf.If the DNS zone is in use, services using the zone will fail when the zone is deleted.

Informationen dazu, wie Sie Zonen vor versehentlichem Löschen schützen, finden Sie unter How to protect DNS zones and records (Schützen von DNS-Zonen und -Einträgen).To protect against accidental zone deletion, see How to protect DNS zones and records.

Verwenden Sie eine der beiden folgenden Möglichkeiten, um eine DNS-Zone zu entfernen:Use one of the following two ways to delete a DNS zone:

Geben Sie die Zone mithilfe des Zonennamens und des Ressourcengruppennamens an.Specify the zone using the zone name and resource group name

Remove-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup

Angeben der Zone mithilfe eines $zone-ObjektsSpecify the zone using a $zone object

Sie können festlegen, dass die Zone mithilfe eines von Get-AzureRmDnsZone zurückgegebenen $zone-Objekts gelöscht werden soll.You can specify the zone to be deleted using a $zone object returned by Get-AzureRmDnsZone.

$zone = Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup
Remove-AzureRmDnsZone -Zone $zone

Das Zonenobjekt kann auch weitergeleitet werden, anstatt als Parameter übergeben zu werden:The zone object can also be piped instead of being passed as a parameter:

Get-AzureRmDnsZone -Name contoso.com -ResourceGroupName MyAzureResourceGroup | Remove-AzureRmDnsZone

Wie bei Set-AzureRmDnsZone ermöglicht die Angabe der Zone mithilfe eines $zone-Objekts die ETag-Überprüfung, um sicherzustellen, dass gleichzeitige Änderungen nicht gelöscht werden.As with Set-AzureRmDnsZone, specifying the zone using a $zone object enables Etag checks to ensure concurrent changes are not deleted. Verwenden Sie den -Overwrite-Switch, um diese Überprüfungen zu unterdrücken.Use the -Overwrite switch to suppress these checks.

BestätigungsaufforderungenConfirmation prompts

Die Cmdlets New-AzureRmDnsZone, Set-AzureRmDnsZone und Remove-AzureRmDnsZone unterstützen jeweils Bestätigungsaufforderungen.The New-AzureRmDnsZone, Set-AzureRmDnsZone, and Remove-AzureRmDnsZone cmdlets all support confirmation prompts.

Sowohl New-AzureRmDnsZone als auch Set-AzureRmDnsZone fordern eine Bestätigung an, wenn die PowerShell-Einstellungsvariable $ConfirmPreference einen Wert von Medium oder weniger hat.Both New-AzureRmDnsZone and Set-AzureRmDnsZone prompt for confirmation if the $ConfirmPreference PowerShell preference variable has a value of Medium or lower. Aufgrund der potenziell wesentlichen Auswirkungen der Löschung einer DNS-Zone forder das Remove-AzureRmDnsZone-Cmdlet zur Bestätigung auf, wenn die PowerShell-Variable $ConfirmPreference einen anderen Wert als None aufweist.Due to the potentially high impact of deleting a DNS zone, the Remove-AzureRmDnsZone cmdlet prompts for confirmation if the $ConfirmPreference PowerShell variable has any value other than None.

Da High der Standardwert für $ConfirmPreference ist, fordert nur Remove-AzureRmDnsZone standardmäßig zur Bestätigung auf.Since the default value for $ConfirmPreference is High, only Remove-AzureRmDnsZone prompts for confirmation by default.

Die aktuelle Einstellung für $ConfirmPreference kann mithilfe des -Confirm-Parameters überschrieben werden.You can override the current $ConfirmPreference setting using the -Confirm parameter. Bei Angabe von -Confirm oder -Confirm:$True fordert das Cmdlet vor der Ausführung eine Bestätigung an.If you specify -Confirm or -Confirm:$True , the cmdlet prompts you for confirmation before it runs. Bei Verwendung von -Confirm:$False fordert das Cmdlet keine Bestätigung an.If you specify -Confirm:$False , the cmdlet does not prompt you for confirmation.

Weitere Informationen zu -Confirm und $ConfirmPreference finden Sie unter About Preference Variables (Informationen zu Einstellungsvariablen).For more information about -Confirm and $ConfirmPreference, see About Preference Variables.

Nächste SchritteNext steps

Erfahren Sie, wie Sie Ressourceneintragssätze und Einträge in Ihrer DNS-Zone verwalten.Learn how to manage record sets and records in your DNS zone.
Erfahren Sie, wie Sie Ihre Domäne an Azure DNS delegieren.Learn how to delegate your domain to Azure DNS.
Machen Sie sich mit der Azure DNS PowerShell-Referenzdokumentation vertraut.Review the Azure DNS PowerShell reference documentation.