Włączanie usług Microsoft Entra Domain Services przy użyciu programu PowerShell
Microsoft Entra Domain Services udostępnia zarządzane usługi domenowe, takie jak przyłączenie do domeny, zasady grupy, LDAP, uwierzytelnianie Kerberos/NTLM, które jest w pełni zgodne z usługą Active Directory systemu Windows Server. Te usługi domenowe są używane bez samodzielnego wdrażania kontrolerów domeny, zarządzania nimi i stosowania poprawek. Usługi Domain Services integrują się z istniejącą dzierżawą firmy Microsoft Entra. Ta integracja umożliwia użytkownikom logowanie się przy użyciu poświadczeń firmowych, a także zabezpieczanie dostępu do zasobów przy użyciu istniejących grup i kont użytkowników.
W tym artykule pokazano, jak włączyć usługi Domain Services przy użyciu programu PowerShell.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Do ukończenia tego artykułu potrzebne są następujące zasoby:
Zainstaluj i skonfiguruj program Azure PowerShell.
- W razie potrzeby postępuj zgodnie z instrukcjami, aby zainstalować moduł Azure PowerShell i nawiązać połączenie z subskrypcją platformy Azure.
- Upewnij się, że logujesz się do subskrypcji platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount .
Zainstaluj i skonfiguruj program MS Graph PowerShell.
- W razie potrzeby postępuj zgodnie z instrukcjami, aby zainstalować moduł PROGRAMU PowerShell programu MS Graph i połączyć się z identyfikatorem Entra firmy Microsoft.
- Upewnij się, że logujesz się do dzierżawy firmy Microsoft Entra przy użyciu polecenia cmdlet Connect-MgGraph .
- W razie potrzeby postępuj zgodnie z instrukcjami, aby zainstalować moduł PROGRAMU PowerShell programu MS Graph i połączyć się z identyfikatorem Entra firmy Microsoft.
-
Do zarządzania tą funkcją jest wymagany administrator globalny.
Uprawnienia współautora dla subskrypcji platformy Azure są wymagane dla tej funkcji.
Ważne
Chociaż moduł Az.ADDomainServices programu PowerShell jest w wersji zapoznawczej, należy zainstalować go oddzielnie przy użyciu
Install-Module
polecenia cmdlet .Install-Module -Name Az.ADDomainServices
Tworzenie wymaganych zasobów firmy Microsoft Entra
Usługi Domain Services wymagają jednostki usługi do uwierzytelniania i komunikacji oraz grupy Entra firmy Microsoft w celu zdefiniowania użytkowników z uprawnieniami administracyjnymi w domenie zarządzanej.
Najpierw utwórz jednostkę usługi Microsoft Entra przy użyciu określonego identyfikatora aplikacji o nazwie Domain Controller Services. Wartość identyfikatora to 2565bd9d-da50-47d4-8b85-4c97f669dc36 dla globalnej platformy Azure i 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 dla innych chmur platformy Azure. Nie zmieniaj tego identyfikatora aplikacji.
Utwórz jednostkę usługi Microsoft Entra przy użyciu polecenia cmdlet New-MgServicePrincipal :
New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"
Teraz utwórz grupę Firmy Microsoft Entra o nazwie Administratorzy kontrolera domeny usługi AAD. Użytkownicy dodani do tej grupy otrzymują uprawnienia do wykonywania zadań administracyjnych w domenie zarządzanej.
Najpierw pobierz identyfikator obiektu grupy Administratorzy kontrolera domeny usługi AAD przy użyciu polecenia cmdlet Get-MgGroup. Jeśli grupa nie istnieje, utwórz ją za pomocą grupy Administratorzy kontrolera domeny usługi AAD przy użyciu polecenia cmdlet New-MgGroup :
# 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."
}
Po utworzeniu grupy Administratorzy kontrolera domeny usługi AAD uzyskaj identyfikator obiektu żądanego użytkownika przy użyciu polecenia cmdlet Get-MgUser , a następnie dodaj użytkownika do grupy przy użyciu polecenia cmdlet New-MgGroupMemberByRef .
W poniższym przykładzie identyfikator obiektu użytkownika dla konta z nazwą UPN .admin@contoso.onmicrosoft.com
Zastąp to konto użytkownika nazwą UPN użytkownika, który chcesz dodać do grupy Administratorzy kontrolera domeny usługi AAD:
# 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
Tworzenie zasobów sieciowych
Najpierw zarejestruj dostawcę zasobów microsoft Entra Domain Services przy użyciu polecenia cmdlet Register-AzResourceProvider :
Register-AzResourceProvider -ProviderNamespace Microsoft.AAD
Następnie utwórz grupę zasobów przy użyciu polecenia cmdlet New-AzResourceGroup . W poniższym przykładzie grupa zasobów nosi nazwę myResourceGroup i jest tworzona w regionie westus . Użyj własnej nazwy i żądanego regionu:
$ResourceGroupName = "myResourceGroup"
$AzureLocation = "westus"
# Create the resource group.
New-AzResourceGroup `
-Name $ResourceGroupName `
-Location $AzureLocation
Utwórz sieć wirtualną i podsieci dla usług Microsoft Entra Domain Services. Tworzone są dwie podsieci — jedna dla usługi DomainServices i jedna dla obciążeń. Usługi domenowe są wdrażane w dedykowanej podsieci DomainServices . Nie wdrażaj innych aplikacji ani obciążeń w tej podsieci. Użyj oddzielnych obciążeń lub innych podsieci dla pozostałych maszyn wirtualnych.
Utwórz podsieci przy użyciu polecenia cmdlet New-AzVirtualNetworkSubnetConfig , a następnie utwórz sieć wirtualną przy użyciu polecenia cmdlet 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
Tworzenie sieciowej grupy zabezpieczeń
Usługi Domain Services wymagają sieciowej grupy zabezpieczeń, aby zabezpieczyć porty wymagane dla domeny zarządzanej i zablokować cały pozostały ruch przychodzący. Sieciowa grupa zabezpieczeń zawiera listę reguł, które zezwalają na ruch sieciowy w sieci wirtualnej platformy Azure lub zezwalają na nie. W usługach Domain Services sieciowa grupa zabezpieczeń działa jako dodatkowa warstwa ochrony w celu blokowania dostępu do domeny zarządzanej. Aby wyświetlić wymagane porty, zobacz Sieciowe grupy zabezpieczeń i wymagane porty.
Następujące polecenia cmdlet programu PowerShell używają polecenia New-AzNetworkSecurityRuleConfig do tworzenia reguł, a następnie polecenia New-AzNetworkSecurityGroup w celu utworzenia sieciowej grupy zabezpieczeń. Sieciowa grupa zabezpieczeń i reguły są następnie skojarzone z podsiecią sieci wirtualnej przy użyciu polecenia cmdlet Set-AzVirtualNetworkSubnetConfig .
$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
Tworzenie domeny zarządzanej
Teraz utwórzmy domenę zarządzaną. Ustaw identyfikator subskrypcji platformy Azure, a następnie podaj nazwę domeny zarządzanej, na przykład dscontoso.com. Identyfikator subskrypcji można uzyskać przy użyciu polecenia cmdlet Get-AzSubscription .
Jeśli wybierzesz region, który obsługuje Strefy dostępności, zasoby usług domenowych są dystrybuowane między strefami w celu zapewnienia nadmiarowości.
Strefy dostępności to unikatowe fizyczne lokalizacje w regionie świadczenia usługi Azure. Każda strefa składa się z co najmniej jednego centrum danych wyposażonego w niezależne zasilanie, chłodzenie i sieć. W celu zapewnienia odporności istnieją co najmniej trzy osobne strefy we wszystkich włączonych regionach.
Nie ma nic do skonfigurowania, aby usługi Domain Services były dystrybuowane między strefami. Platforma Azure automatycznie obsługuje dystrybucję stref zasobów. Aby uzyskać więcej informacji i wyświetlić dostępność regionów, zobacz Co to są Strefy dostępności na platformie 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
Utworzenie zasobu i zwrócenie kontroli do wiersza polecenia programu PowerShell może potrwać kilka minut. Domena zarządzana nadal jest aprowizowana w tle i może upłynąć do godziny, aby ukończyć wdrożenie. W centrum administracyjnym firmy Microsoft Entra na stronie Przegląd domeny zarządzanej jest wyświetlany bieżący stan na tym etapie wdrażania.
Gdy centrum administracyjne firmy Microsoft Entra pokazuje, że domena zarządzana zakończyła aprowizację, należy wykonać następujące zadania:
- Zaktualizuj ustawienia DNS dla sieci wirtualnej, aby maszyny wirtualne mogły znaleźć domenę zarządzaną na potrzeby przyłączania do domeny lub uwierzytelniania.
- Aby skonfigurować usługę DNS, wybierz domenę zarządzaną w portalu. W oknie Przegląd zostanie wyświetlony monit o automatyczne skonfigurowanie tych ustawień DNS.
- Włącz synchronizację haseł w usługach Domain Services , aby użytkownicy końcowi mogli logować się do domeny zarządzanej przy użyciu poświadczeń firmowych.
Ukończ skrypt programu PowerShell
Poniższy kompletny skrypt programu PowerShell łączy wszystkie zadania przedstawione w tym artykule. Skopiuj skrypt i zapisz go w pliku z .ps1
rozszerzeniem. W przypadku globalnej platformy Azure użyj wartości AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. W przypadku innych chmur platformy Azure użyj wartości AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Uruchom skrypt w lokalnej konsoli programu PowerShell lub w usłudze Azure Cloud Shell.
Do zarządzania tą funkcją jest wymagany administrator globalny.
Uprawnienia współautora dla subskrypcji platformy Azure są wymagane dla tej funkcji.
# 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
Utworzenie zasobu i zwrócenie kontroli do wiersza polecenia programu PowerShell może potrwać kilka minut. Domena zarządzana nadal jest aprowizowana w tle i może upłynąć do godziny, aby ukończyć wdrożenie. W centrum administracyjnym firmy Microsoft Entra na stronie Przegląd domeny zarządzanej jest wyświetlany bieżący stan na tym etapie wdrażania.
Gdy centrum administracyjne firmy Microsoft Entra pokazuje, że domena zarządzana zakończyła aprowizację, należy wykonać następujące zadania:
- Zaktualizuj ustawienia DNS dla sieci wirtualnej, aby maszyny wirtualne mogły znaleźć domenę zarządzaną na potrzeby przyłączania do domeny lub uwierzytelniania.
- Aby skonfigurować usługę DNS, wybierz domenę zarządzaną w portalu. W oknie Przegląd zostanie wyświetlony monit o automatyczne skonfigurowanie tych ustawień DNS.
- Włącz synchronizację haseł w usługach Domain Services , aby użytkownicy końcowi mogli logować się do domeny zarządzanej przy użyciu poświadczeń firmowych.
Następne kroki
Aby wyświetlić domenę zarządzaną w akcji, możesz dołączyć do domeny maszynę wirtualną z systemem Windows, skonfigurować bezpieczny protokół LDAP i skonfigurować synchronizację skrótów haseł.