Aktivieren von Microsoft Entra Domain Services mithilfe von PowerShell

Microsoft Entra Domain Services stellen verwaltete Domänendienste bereit, z.B. Domänenbeitritt, Gruppenrichtlinie, LDAP, Kerberos/NTLM-Authentifizierung, die mit Windows Server Active Directory vollständig kompatibel sind. Sie können diese Domänendienste nutzen, ohne selbst Domänencontroller bereitstellen, verwalten und patchen zu müssen. Domain Services kann in Ihren vorhandenen Microsoft Entra-Mandanten integriert werden. Dank dieser Integration können Benutzer sich mit ihren Unternehmensanmeldeinformationen anmelden, und Sie können vorhandene Gruppen und Benutzerkonten verwenden, um den Zugriff auf Ressourcen zu sichern.

In diesem Artikel erfahren Sie, wie Sie Domain Services mithilfe von PowerShell aktivieren.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie folgende Ressourcen:

  • Installieren und konfigurieren Sie Azure PowerShell.

  • Installieren und konfigurieren Sie MS Graph PowerShell.

  • Sie benötigen Berechtigungen der Rolle Globaler Administrator in Ihrem Microsoft Entra-Mandanten, um Domain Services zu aktivieren.

  • Sie benötigen Berechtigungen der Rolle Mitwirkender in Ihrem Azure-Abonnement, um die erforderlichen Domain Services-Ressourcen zu erstellen.

    Wichtig

    Solange nur eine Vorschauversion des PowerShell-Moduls Az.ADDomainServices verfügbar ist, müssen Sie es separat mithilfe des Cmdlets Install-Module installieren.

    Install-Module -Name Az.ADDomainServices
    

Erstellen der erforderlichen Microsoft Entra-Ressourcen

Domain Services erfordert einen Dienstprinzipal für die Authentifizierung und Kommunikation sowie eine Microsoft Entra-Gruppe, um zu definieren, welche Benutzer*innen über Administratorberechtigungen in der verwalteten Domäne verfügen.

Erstellen Sie zunächst einen Microsoft Entra-Dienstprinzipal mit einer bestimmten Anwendungs-ID namens Domain Controller Services. Der ID-Wert lautet 2565bd9d-da50-47d4-8b85-4c97f669dc36 für Azure Global und 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 für andere Azure-Clouds. Ändern Sie diese Anwendungs-ID nicht.

Erstellen Sie einen Microsoft Entra-Dienstprinzipal mit dem Cmdlet New-MgServicePrincipal:

New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"

Erstellen Sie nun eine Microsoft Entra-Gruppe namens AAD DC Administrators. Den dieser Gruppe hinzugefügten Benutzern werden dann Berechtigungen zum Ausführen von Verwaltungsaufgaben für die verwaltete Domäne erteilt.

Rufen Sie zunächst mithilfe des Cmdlets Get-MgGroup die Objekt-ID für die Gruppe AAD DC-Administratoren ab. Wenn die Gruppe nicht vorhanden ist, erstellen Sie sie mithilfe des Cmdlets New-MgGroup und der Gruppe AAD DC Administratoren:

# First, retrieve the object ID of the 'AAD DC Administrators' group.
$GroupObject = Get-MgGroup `
  -Filter "DisplayName eq 'AAD DC Administrators'"

# If the group doesn't exist, create it
if (!$GroupObject) {
  $GroupObject = New-MgGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Microsoft Entra Domain Services" `
    -SecurityEnabled:$true `
    -MailEnabled:$false `
    -MailNickName "AADDCAdministrators"
  } else {
  Write-Output "Admin group already exists."
}

Wenn die Gruppe AAD DC Administratoren erstellt wurde, rufen Sie mithilfe des Cmdlets Get-MgUser die Objekt-ID des gewünschten Benutzers bzw. der gewünschten Benutzerin ab, und fügen Sie ihn oder sie dann mithilfe des Cmdlets New-MgGroupMember der Gruppe hinzu.

Das folgende Beispiel zeigt die Objekt-ID des Benutzers für das Konto mit dem Benutzerprinzipalnamen admin@contoso.onmicrosoft.com. Ersetzen Sie dieses Benutzerkonto durch den Benutzerprinzipalnamen des Benutzers, den Sie der Gruppe AAD DC Administrators hinzufügen möchten:

# Retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-MgUser `
  -Filter "UserPrincipalName eq 'admin@contoso.onmicrosoft.com'" | `
  Select-Object Id

# Add the user to the 'AAD DC Administrators' group.
New-MgGroupMember -GroupId $GroupObject.Id -DirectoryObjectId $UserObjectId.Id

Erstellen von Netzwerkressourcen

Registrieren Sie zunächst den Microsoft Entra Domain Services-Ressourcenanbieter mithilfe des Cmdlets Register-AzResourceProvider:

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Erstellen Sie anschließend mit dem Cmdlet New-AzResourceGroup eine neue Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region westus erstellt. Verwenden Sie Ihren eigenen Namen und die gewünschte Region:

$ResourceGroupName = "myResourceGroup"
$AzureLocation = "westus"

# Create the resource group.
New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $AzureLocation

Erstellen Sie das virtuelle Netzwerk und die Subnetze für Microsoft Entra Domain Services. Es werden zwei Subnetze erstellt, und zwar eins für DomainServices und eins für Workloads. Domain Services wird im dedizierten Subnetz DomainServices bereitgestellt. Stellen Sie keine anderen Anwendungen oder Workloads in diesem Subnetz bereit. Verwenden Sie das separate Subnetz Workloads oder andere Subnetze für die übrigen virtuellen Computer.

Erstellen Sie die Subnetze mithilfe des Cmdlets New-AzVirtualNetworkSubnetConfig, und erstellen Sie dann das virtuelle Netzwerk mithilfe des Cmdlets New-AzVirtualNetwork.

$VnetName = "myVnet"

# Create the dedicated subnet for Microsoft Entra Domain Services.
$SubnetName = "DomainServices"
$AaddsSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name $SubnetName `
  -AddressPrefix 10.0.0.0/24

# Create an additional subnet for your own VM workloads
$WorkloadSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name Workloads `
  -AddressPrefix 10.0.1.0/24

# Create the virtual network in which you will enable Microsoft Entra Domain Services.
$Vnet= New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location westus `
  -Name $VnetName `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $AaddsSubnet,$WorkloadSubnet

Erstellen einer Netzwerksicherheitsgruppe

Für Domain Services wird eine Netzwerksicherheitsgruppe benötigt, um die Ports zu schützen, die für die verwaltete Domäne erforderlich sind, und den gesamten anderen Datenverkehr in eingehender Richtung zu blockieren. Eine Netzwerksicherheitsgruppe (NSG) enthält eine Liste von Regeln, die den Netzwerkdatenverkehr für den Datenverkehr in einem virtuellen Azure-Netzwerk gestatten oder ablehnen. In Domain Services fungiert diese Netzwerksicherheitsgruppe als zusätzliche Schutzschicht zum Sperren des Zugriffs auf die verwaltete Domäne. Informationen zu den erforderlichen Ports finden Sie unter Netzwerksicherheitsgruppen und erforderliche Ports.

Die folgenden PowerShell-Cmdlets verwenden New-AzNetworkSecurityRuleConfig, um die Regeln zu erstellen, und dann New-AzNetworkSecurityGroup, um die Netzwerksicherheitsgruppe zu erstellen. Die Netzwerksicherheitsgruppe und die Regeln werden dann mit dem Cmdlet Set-AzVirtualNetworkSubnetConfig dem Subnetz des virtuellen Netzwerks zugeordnet.

$NSGName = "dsNSG"

# Create a rule to allow inbound TCP port 3389 traffic from Microsoft secure access workstations for troubleshooting
$nsg201 = New-AzNetworkSecurityRuleConfig -Name AllowRD `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 201 `
    -SourceAddressPrefix CorpNetSaw `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 3389

# Create a rule to allow TCP port 5986 traffic for PowerShell remote management
$nsg301 = New-AzNetworkSecurityRuleConfig -Name AllowPSRemoting `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 301 `
    -SourceAddressPrefix AzureActiveDirectoryDomainServices `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 5986

# Create the network security group and rules
$nsg = New-AzNetworkSecurityGroup -Name $NSGName `
    -ResourceGroupName $ResourceGroupName `
    -Location $AzureLocation `
    -SecurityRules $nsg201,$nsg301

# Get the existing virtual network resource objects and information
$vnet = Get-AzVirtualNetwork -Name $VnetName -ResourceGroupName $ResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $SubnetName
$addressPrefix = $subnet.AddressPrefix

# Associate the network security group with the virtual network subnet
Set-AzVirtualNetworkSubnetConfig -Name $SubnetName `
    -VirtualNetwork $vnet `
    -AddressPrefix $addressPrefix `
    -NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork

Erstellen einer verwalteten Domäne

Jetzt erstellen wir eine verwaltete Domäne. Legen Sie Ihre Azure-Abonnement-ID fest, und geben Sie dann einen Namen für die verwaltete Domäne an, z. B. dscontoso.com. Die ID Ihres Abonnements können Sie mithilfe des Cmdlets Get-AzSubscription abrufen.

Wenn Sie eine Region mit Unterstützung von Verfügbarkeitszonen auswählen, werden die Domain Services-Ressourcen auf mehrere Zonen verteilt, um Redundanz zu erzielen.

Verfügbarkeitszonen sind eindeutige physische Standorte in einer Azure-Region. Jede Zone besteht aus mindestens einem Rechenzentrum, dessen Stromversorgung, Kühlung und Netzwerkbetrieb unabhängig funktionieren. Zur Gewährleistung der Resilienz sind in allen aktivierten Regionen mindestens drei separate Zonen vorhanden.

Für die Verteilung auf Zonen für Domain Services fällt für Sie kein Konfigurationsaufwand an. Die Verteilung der Ressourcen auf Zonen wird von der Azure-Plattform automatisch durchgeführt. Weitere Informationen, z. B. zur regionalen Verfügbarkeit, finden Sie unter Was sind Verfügbarkeitszonen in Azure?.

$AzureSubscriptionId = "YOUR_AZURE_SUBSCRIPTION_ID"
$ManagedDomainName = "dscontoso.com"

# Enable Microsoft Entra Domain Services for the directory.
$replicaSetParams = @{
  Location = $AzureLocation
  SubnetId = "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"
}
$replicaSet = New-AzADDomainServiceReplicaSetObject @replicaSetParams

$domainServiceParams = @{
  Name = $ManagedDomainName
  ResourceGroupName = $ResourceGroupName
  DomainName = $ManagedDomainName
  ReplicaSet = $replicaSet
}
New-AzADDomainService @domainServiceParams

Es dauert einige Minuten, bis die Ressource erstellt und die Steuerung an die PowerShell-Eingabeaufforderung zurückgegeben wird. Die verwaltete Domäne wird weiterhin im Hintergrund bereitgestellt, und es kann bis zu einer Stunde dauern, bis die Bereitstellung abgeschlossen ist. Im Microsoft Entra Admin Center zeigt die Seite Übersicht für Ihre verwaltete Domäne den aktuellen Status in dieser Phase der Bereitstellung an.

Wenn im Microsoft Entra Admin Center angezeigt wird, dass die Bereitstellung der verwalteten Domäne abgeschlossen ist, müssen Sie die folgenden Aufgaben ausführen:

  • Aktualisieren Sie DNS-Einstellungen für das virtuelle Netzwerk, damit virtuelle Computer die verwaltete Domäne für den Domänenbeitritt oder die Domänenauthentifizierung finden können.
    • Wählen Sie zum Konfigurieren von DNS Ihre verwaltete Domäne im Portal aus. Im Fenster Übersicht werden Sie aufgefordert, diese DNS-Einstellungen automatisch zu konfigurieren.
  • Aktivieren Sie die Kennwortsynchronisierung für Domain Services, damit sich Endbenutzer*innen mit ihren Unternehmensanmeldeinformationen bei der verwalteten Domäne anmelden können.

Vollständiges PowerShell-Skript

Mit dem folgenden vollständigen PowerShell-Skript werden alle in diesem Artikel gezeigten Aufgaben kombiniert. Kopieren Sie das Skript, und speichern Sie es in einer Datei mit der Erweiterung „.ps1“. Verwenden Sie für Azure Global den AppId-Wert 2565bd9d-da50-47d4-8b85-4c97f669dc36. Verwenden Sie für andere Azure-Clouds den AppId-Wert 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Führen Sie das Skript in einer lokalen PowerShell-Konsole oder in der Azure Cloud Shell aus.

Hinweis

Um Domain Services zu aktivieren, benötigen Sie die Rolle „Globaler Administrator“ für den Microsoft Entra-Mandanten. Außerdem benötigen Sie mindestens die Berechtigung Mitwirkender im Azure-Abonnement.

# Change the following values to match your deployment.
$AaddsAdminUserUpn = "admin@contoso.onmicrosoft.com"
$ResourceGroupName = "myResourceGroup"
$VnetName = "myVnet"
$AzureLocation = "westus"
$AzureSubscriptionId = "YOUR_AZURE_SUBSCRIPTION_ID"
$ManagedDomainName = "dscontoso.com"

# Connect to your Microsoft Entra directory.
Connect-MgGraph -Scopes "Application.ReadWrite.All","Directory.ReadWrite.All"

# Login to your Azure subscription.
Connect-AzAccount

# Create the service principal for Microsoft Entra Domain Services.
New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"

# First, retrieve the object of the 'AAD DC Administrators' group.
$GroupObject = Get-MgGroup `
  -Filter "DisplayName eq 'AAD DC Administrators'"

# Create the delegated administration group for Microsoft Entra Domain Services if it doesn't already exist.
if (!$GroupObject) {
  $GroupObject = New-MgGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Microsoft Entra Domain Services" `
    -SecurityEnabled:$true `
    -MailEnabled:$false `
    -MailNickName "AADDCAdministrators"
  } else {
  Write-Output "Admin group already exists."
}

# Now, retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-MgUser `
  -Filter "UserPrincipalName eq '$AaddsAdminUserUpn'" | `
  Select-Object Id

# Add the user to the 'AAD DC Administrators' group.
New-MgGroupMember -GroupId $GroupObject.Id -DirectoryObjectId $UserObjectId.Id

# Register the resource provider for Microsoft Entra Domain Services with Resource Manager.
Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

# Create the resource group.
New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $AzureLocation

# Create the dedicated subnet for Microsoft Entra Domain Services.
$SubnetName = "DomainServices"
$AaddsSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name DomainServices `
  -AddressPrefix 10.0.0.0/24

$WorkloadSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name Workloads `
  -AddressPrefix 10.0.1.0/24

# Create the virtual network in which you will enable Microsoft Entra Domain Services.
$Vnet=New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $AzureLocation `
  -Name $VnetName `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $AaddsSubnet,$WorkloadSubnet

$NSGName = "dsNSG"

# Create a rule to allow inbound TCP port 3389 traffic from Microsoft secure access workstations for troubleshooting
$nsg201 = New-AzNetworkSecurityRuleConfig -Name AllowRD `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 201 `
    -SourceAddressPrefix CorpNetSaw `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 3389

# Create a rule to allow TCP port 5986 traffic for PowerShell remote management
$nsg301 = New-AzNetworkSecurityRuleConfig -Name AllowPSRemoting `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 301 `
    -SourceAddressPrefix AzureActiveDirectoryDomainServices `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 5986

# Create the network security group and rules
$nsg = New-AzNetworkSecurityGroup -Name $NSGName `
    -ResourceGroupName $ResourceGroupName `
    -Location $AzureLocation `
    -SecurityRules $nsg201,$nsg301

# Get the existing virtual network resource objects and information
$vnet = Get-AzVirtualNetwork -Name $VnetName -ResourceGroupName $ResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $SubnetName
$addressPrefix = $subnet.AddressPrefix

# Associate the network security group with the virtual network subnet
Set-AzVirtualNetworkSubnetConfig -Name $SubnetName `
    -VirtualNetwork $vnet `
    -AddressPrefix $addressPrefix `
    -NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork

# Enable Microsoft Entra Domain Services for the directory.
$replicaSetParams = @{
  Location = $AzureLocation
  SubnetId = "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"
}
$replicaSet = New-AzADDomainServiceReplicaSet @replicaSetParams

$domainServiceParams = @{
  Name = $ManagedDomainName
  ResourceGroupName = $ResourceGroupName
  DomainName = $ManagedDomainName
  ReplicaSet = $replicaSet
}
New-AzADDomainService @domainServiceParams

Es dauert einige Minuten, bis die Ressource erstellt und die Steuerung an die PowerShell-Eingabeaufforderung zurückgegeben wird. Die verwaltete Domäne wird weiterhin im Hintergrund bereitgestellt, und es kann bis zu einer Stunde dauern, bis die Bereitstellung abgeschlossen ist. Im Microsoft Entra Admin Center zeigt die Seite Übersicht für Ihre verwaltete Domäne den aktuellen Status in dieser Phase der Bereitstellung an.

Wenn im Microsoft Entra Admin Center angezeigt wird, dass die Bereitstellung der verwalteten Domäne abgeschlossen ist, müssen Sie die folgenden Aufgaben ausführen:

  • Aktualisieren Sie DNS-Einstellungen für das virtuelle Netzwerk, damit virtuelle Computer die verwaltete Domäne für den Domänenbeitritt oder die Domänenauthentifizierung finden können.
    • Wählen Sie zum Konfigurieren von DNS Ihre verwaltete Domäne im Portal aus. Im Fenster Übersicht werden Sie aufgefordert, diese DNS-Einstellungen automatisch zu konfigurieren.
  • Aktivieren Sie die Kennwortsynchronisierung für Domain Services, damit sich Endbenutzer*innen mit ihren Unternehmensanmeldeinformationen bei der verwalteten Domäne anmelden können.

Nächste Schritte

Wenn Sie die verwaltete Domäne in Aktion sehen möchten, können Sie einen virtuellen Windows-Computer in die Domäne einbinden, sicheres LDAP konfigurieren und die Kennworthashsynchronisierung konfigurieren.