Instrukcje: zmienianie nazwy usługi Azure AD

Nazwa usługi Azure Active Directory (Azure AD) została zmieniona na Microsoft Entra ID w celu lepszego komunikowania funkcji wielochmurowych, wieloplatformowych produktu i ujednolicenia nazewnictwa rodziny produktów Microsoft Entra.

Ten artykuł zawiera najlepsze rozwiązania i pomoc techniczną dla klientów i organizacji, którzy chcą zaktualizować swoją dokumentację lub zawartość przy użyciu nowej nazwy i ikony produktu.

Wymagania wstępne

Przed zmianą wystąpień usługi Azure AD na microsoft Entra ID w dokumentacji lub zawartości zapoznaj się ze wskazówkami w artykule Nowa nazwa usługi Azure AD , aby:

  • Informacje o nazwie produktu i przyczynach wprowadzenia zmiany

  • Pobierz ikonę nowego produktu

  • Pobieranie listy nazw, które nie zmieniają się

  • Uzyskaj odpowiedzi na często zadawane pytania i nie tylko

Ocena i określanie zakresu zmian nazw aktualizacji zawartości

Przeprowadź inspekcję środowisk, aby znaleźć odwołania do usługi Azure AD i jej ikon.

  1. Przeskanuj zawartość , aby zidentyfikować odwołania do usługi Azure AD i jej synonimów. Skompiluj szczegółową listę wszystkich wystąpień.

    • Wyszukaj następujące terminy: Azure Active Directory (Azure AD), , Azure Active Directory, Azure ADAAD
    • Wyszukaj grafikę z ikoną usługi Azure AD (Ikona produktu usługi Azure ADAlternatywna ikona produktu usługi Azure AD), aby zastąpić ikoną Identyfikator entra firmy Microsoft ()Ikona produktu Microsoft Entra ID

    Ikonę identyfikatora Entra firmy Microsoft możesz pobrać tutaj: ikony architektury Entra firmy Microsoft

  2. Zidentyfikuj wyjątki na liście.

    • Nie wprowadzaj zmian powodujących niezgodność.
    • Przejrzyj sekcję Jakie nazwy nie zmieniają się? w wskazówkach dotyczących nazewnictwa i zanotuj, która terminologia usługi Azure AD nie zmienia się.
    • Nie zmieniaj wystąpień programu Active Directory. Zmieniana jest tylko Azure Active Directory nazwa, a nie Active Directory, czyli skrócona nazwa innego produktu, Windows Server Active Directory.
  3. Ocenianie i określanie priorytetów na podstawie przyszłego użycia. Zastanów się, która zawartość musi być aktualizowana na podstawie tego, czy jest ona widoczna dla użytkowników, czy ma szeroki wgląd w organizację, odbiorców lub bazę klientów. Możesz zdecydować, że jakiś kod lub zawartość nie musi być aktualizowany, jeśli ma ograniczoną ekspozycję na użytkowników końcowych.

    Zdecyduj, czy aktualna zawartość, taka jak filmy wideo lub blogi, warto zaktualizować dla przyszłych widzów. Nie można zmienić nazwy starej zawartości. Aby pomóc użytkownikom końcowym, możesz dodać zastrzeżenie, takie jak "Azure AD is now Microsoft Entra ID".

Używanie funkcji "znajdź i zamień" dla zawartości opartej na tekście

Zaktualizuj zawartość i środowiska organizacji przy użyciu odpowiednich narzędzi.

  1. Prawie wszystkie narzędzia do edycji oferują funkcje "wyszukaj i zastąp" lub "znajdź i zastąp", natywnie lub przy użyciu wtyczek. Użyj preferowanej aplikacji.

  2. Użyj polecenia "znajdź i zastąp", aby znaleźć ciągi Azure Active Directory (Azure AD), , Azure Active DirectoryAzure AD, AAD.

  3. Nie zastąp wszystkich wystąpień identyfikatorem Entra firmy Microsoft.

  4. Sprawdź, czy każde wystąpienie odnosi się do produktu, czy funkcji produktu.

    • Usługa Azure AD jako sama nazwa produktu powinna zostać zastąpiona identyfikatorem Entra firmy Microsoft.

    • Funkcje lub funkcje usługi Azure AD stają się funkcjami lub funkcjami firmy Microsoft Entra. Na przykład "Dostęp warunkowy usługi Azure AD" staje się "Dostęp warunkowy firmy Microsoft Entra".

Automatyzowanie edycji zbiorczej przy użyciu kodu niestandardowego

Użyj następujących kryteriów, aby określić zmiany, które należy wprowadzić w wystąpieniach Azure Active Directory (Azure AD), , Azure Active DirectoryAzure AD, AAD.

  1. Jeśli ciąg tekstowy zostanie znaleziony w słowniku nazewnictwa poprzednich terminów, zmień go na nowy termin.

  2. Jeśli znak interpunkcyjny jest zgodny Azure Active Directory (Azure AD)z ciągiem , , Azure Active DirectoryAzure ADlub AAD, zastąp ciąg , Microsoft Entra ID ponieważ jest to nazwa produktu.

  3. Jeśli Azure Active Directory (Azure AD)ciąg , , lub następuje ciąg , Premium, Plan, P1lub P2, zastąp element , Microsoft Entra ID ponieważ odwołuje się do nazwy jednostki SKU lub planu usługi.AAD Azure ADAzure Active Directoryfor

  4. Jeśli artykuł (, an, ) lub opętny (ayour, your organization's) poprzedza (Azure Active Directory (Azure AD), Azure Active Directory, Azure AD, AAD), a następnie zastąp element nazwąMicrosoft Entra, ponieważ jest to nazwa thefunkcji. Na przykład:

    1. "dzierżawa usługi Azure AD" staje się "dzierżawą firmy Microsoft Entra"
    2. "Dzierżawa usługi Azure AD twojej organizacji" staje się "dzierżawą firmy Microsoft Entra"
  5. Jeśli Azure Active Directory (Azure AD)w poprzednich krokach , Azure Active Directory, Azure ADlub AAD następuje przymiotnik lub noun, a nie w poprzednich krokach, zastąp ciąg nazwą Microsoft Entra funkcji. Na przykład Azure AD Conditional Access staje się , a Azure AD tenant staje Microsoft Entra Conditional Accesssię .Microsoft Entra tenant

  6. W przeciwnym razie zastąp ciąg Azure Active Directory (Azure AD), Azure Active Directory, Azure ADlub AAD ciągiem Microsoft Entra ID.

    Zobacz sekcję Słownik zaktualizowanej terminologii , aby dokładniej uściślić logikę niestandardową.

Aktualizowanie grafiki i ikon

Wykonaj następujące kroki, aby zaktualizować grafikę i ikony.

  1. Zastąp ikonę usługi Azure AD ikoną Identyfikator entra firmy Microsoft.

  2. Zastąp tytuły lub tekst zawierający Azure Active Directory (Azure AD)wartości , Azure Active Directory, Azure ADlub AAD Microsoft Entra ID.

Przekazywanie zmian klientom

Aby ułatwić klientom przejście, zalecamy dodanie notatki do zaktualizowanej zawartości lub dokumentacji.

  1. Dodaj Azure Active Directory is now Microsoft Entra ID lub postępuj zgodnie z formerly Azure Active Directory nową nazwą dla pierwszego roku.

Przykładowy skrypt programu PowerShell

Aby zmienić nazwy odwołań usługi Azure AD w dokumentacji lub zawartości, możesz użyć następującego skryptu programu PowerShell jako punktu odniesienia. Ten przykładowy kod:

  • Skanuje .resx pliki w określonym folderze i wszystkie zagnieżdżone foldery.
  • Edytuje pliki, zastępując wszelkie odwołania do , , Azure ADpoprawną terminologią zgodnie z nową nazwą usługi Azure AD. AAD Azure Active DirectoryAzure Active Directory (Azure AD)

Edytuj skrypt punktu odniesienia zgodnie z potrzebami i zakresem plików, które należy zaktualizować. Może być konieczne uwzględnienie przypadków brzegowych i zmodyfikowanie skryptu zgodnie ze sposobem definiowania komunikatów w plikach źródłowych. Skrypt nie jest w pełni zautomatyzowany. Jeśli używasz skryptu w stanie rzeczywistym, musisz przejrzeć dane wyjściowe i może być konieczne wprowadzenie większej liczby korekt, aby postępować zgodnie ze wskazówkami w temacie Nowa nazwa usługi Azure AD.

# Define the old and new terminology
$terminology = @(
    @{ Key = 'Azure AD External Identities'; Value = 'Microsoft Entra External ID' },
    @{ Key = 'Azure AD Identity Governance'; Value = 'Microsoft Entra ID Governance' },
    @{ Key = 'Azure AD Verifiable Credentials'; Value = 'Microsoft Entra Verified ID' },
    @{ Key = 'Azure AD Workload Identities'; Value = 'Microsoft Entra Workload ID' },
    @{ Key = 'Azure AD Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'Azure AD access token authentication'; Value = 'Microsoft Entra access token authentication' },
    @{ Key = 'Azure AD admin center'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'Azure AD portal'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'Azure AD application proxy'; Value = 'Microsoft Entra application proxy' },
    @{ Key = 'Azure AD authentication'; Value = 'Microsoft Entra authentication' },
    @{ Key = 'Azure AD Conditional Access'; Value = 'Microsoft Entra Conditional Access' },
    @{ Key = 'Azure AD cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'Azure AD Connect'; Value = 'Microsoft Entra Connect' },
    @{ Key = 'AD Connect'; Value = 'Microsoft Entra Connect' },
    @{ Key = 'AD Connect Sync'; Value = 'Microsoft Entra Connect Sync' },
    @{ Key = 'Azure AD Connect Sync'; Value = 'Microsoft Entra Connect Sync' },
    @{ Key = 'Azure AD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure AD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure AD Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'Azure AD Enterprise Applications'; Value = 'Microsoft Entra enterprise applications' },
    @{ Key = 'Azure AD federation services'; Value = 'Active Directory Federation Services' },
    @{ Key = 'Azure AD hybrid identities'; Value = 'Microsoft Entra hybrid identities' },
    @{ Key = 'Azure AD identities'; Value = 'Microsoft Entra identities' },
    @{ Key = 'Azure AD role'; Value = 'Microsoft Entra role' },
    @{ Key = 'Azure AD'; Value = 'Microsoft Entra ID' },
    @{ Key = 'AAD'; Value = 'ME-ID' },
    @{ Key = 'Azure AD auth'; Value = 'Microsoft Entra auth' },
    @{ Key = 'Azure AD-only auth'; Value = 'Microsoft Entra-only auth' },
    @{ Key = 'Azure AD object'; Value = 'Microsoft Entra object' },
    @{ Key = 'Azure AD identity'; Value = 'Microsoft Entra identity' },
    @{ Key = 'Azure AD schema'; Value = 'Microsoft Entra schema' },
    @{ Key = 'Azure AD seamless single sign-on'; Value = 'Microsoft Entra seamless single sign-on' },
    @{ Key = 'Azure AD self-service password reset'; Value = 'Microsoft Entra self-service password reset' },
    @{ Key = 'Azure AD SSPR'; Value = 'Microsoft Entra SSPR' },
    @{ Key = 'Azure AD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure AD group'; Value = 'Microsoft Entra group' },
    @{ Key = 'Azure AD login'; Value = 'Microsoft Entra login' },
    @{ Key = 'Azure AD managed'; Value = 'Microsoft Entra managed' },
    @{ Key = 'Azure AD managed identities'; Value = 'Managed identities for Azure resources' },
    @{ Key = 'Azure AD entitlement'; Value = 'Microsoft Entra entitlement' },
    @{ Key = 'Azure AD access review'; Value = 'Microsoft Entra access review' },
    @{ Key = 'Azure AD Identity Protection'; Value = 'Microsoft Entra ID Protection' },
    @{ Key = 'Azure AD pass-through'; Value = 'Microsoft Entra pass-through' },
    @{ Key = 'Azure AD password'; Value = 'Microsoft Entra password' },
    @{ Key = 'Azure AD Privileged Identity Management'; Value = 'Microsoft Entra Privileged Identity Management' },
    @{ Key = 'Azure AD registered'; Value = 'Microsoft Entra registered' },
    @{ Key = 'Azure AD reporting and monitoring'; Value = 'Microsoft Entra reporting and monitoring' },
    @{ Key = 'Azure AD enterprise app'; Value = 'Microsoft Entra enterprise app' },
    @{ Key = 'Azure AD cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'Cloud Knox'; Value = 'Microsoft Entra Permissions Management' },
    @{ Key = 'Azure AD Premium P1'; Value = 'Microsoft Entra ID P1' },
    @{ Key = 'AD Premium P1'; Value = 'Microsoft Entra ID P1' },
    @{ Key = 'Azure AD Premium P2'; Value = 'Microsoft Entra ID P2' },
    @{ Key = 'AD Premium P2'; Value = 'Microsoft Entra ID P2' },
    @{ Key = 'Azure AD F2'; Value = 'Microsoft Entra ID F2' },
    @{ Key = 'Azure AD Free'; Value = 'Microsoft Entra ID Free' },
    @{ Key = 'Azure AD for education'; Value = 'Microsoft Entra ID for education' },
    @{ Key = 'Azure AD work or school account'; Value = 'Microsoft Entra work or school account' },
    @{ Key = 'federated with Azure AD'; Value = 'federated with Microsoft Entra' },
    @{ Key = 'Hybrid Azure AD Join'; Value = 'Microsoft Entra hybrid join' },
    @{ Key = 'Azure Active Directory External Identities'; Value = 'Microsoft Entra External ID' },
    @{ Key = 'Azure Active Directory Identity Governance'; Value = 'Microsoft Entra ID Governance' },
    @{ Key = 'Azure Active Directory Verifiable Credentials'; Value = 'Microsoft Entra Verified ID' },
    @{ Key = 'Azure Active Directory Workload Identities'; Value = 'Microsoft Entra Workload ID' },
    @{ Key = 'Azure Active Directory Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'Azure Active Directory access token authentication'; Value = 'Microsoft Entra access token authentication' },
    @{ Key = 'Azure Active Directory admin center'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'Azure Active Directory portal'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'Azure Active Directory application proxy'; Value = 'Microsoft Entra application proxy' },
    @{ Key = 'Azure Active Directory authentication'; Value = 'Microsoft Entra authentication' },
    @{ Key = 'Azure Active Directory Conditional Access'; Value = 'Microsoft Entra Conditional Access' },
    @{ Key = 'Azure Active Directory cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'Azure Active Directory Connect'; Value = 'Microsoft Entra Connect' },
    @{ Key = 'Azure Active Directory Connect Sync'; Value = 'Microsoft Entra Connect Sync' },
    @{ Key = 'Azure Active Directory domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure Active Directory domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure Active Directory Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'Azure Active Directory Enterprise Applications'; Value = 'Microsoft Entra enterprise applications' },
    @{ Key = 'Azure Active Directory federation services'; Value = 'Active Directory Federation Services' },
    @{ Key = 'Azure Active Directory hybrid identities'; Value = 'Microsoft Entra hybrid identities' },
    @{ Key = 'Azure Active Directory identities'; Value = 'Microsoft Entra identities' },
    @{ Key = 'Azure Active Directory role'; Value = 'Microsoft Entra role' },
    @{ Key = 'Azure Active Directory'; Value = 'Microsoft Entra ID' },
    @{ Key = 'Azure Active Directory auth'; Value = 'Microsoft Entra auth' },
    @{ Key = 'Azure Active Directory-only auth'; Value = 'Microsoft Entra-only auth' },
    @{ Key = 'Azure Active Directory object'; Value = 'Microsoft Entra object' },
    @{ Key = 'Azure Active Directory identity'; Value = 'Microsoft Entra identity' },
    @{ Key = 'Azure Active Directory schema'; Value = 'Microsoft Entra schema' },
    @{ Key = 'Azure Active Directory seamless single sign-on'; Value = 'Microsoft Entra seamless single sign-on' },
    @{ Key = 'Azure Active Directory self-service password reset'; Value = 'Microsoft Entra self-service password reset' },
    @{ Key = 'Azure Active Directory SSPR'; Value = 'Microsoft Entra SSPR' },
    @{ Key = 'Azure Active Directory SSPR'; Value = 'Microsoft Entra SSPR' },
    @{ Key = 'Azure Active Directory domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'Azure Active Directory group'; Value = 'Microsoft Entra group' },
    @{ Key = 'Azure Active Directory login'; Value = 'Microsoft Entra login' },
    @{ Key = 'Azure Active Directory managed'; Value = 'Microsoft Entra managed' },
    @{ Key = 'Azure Active Directory entitlement'; Value = 'Microsoft Entra entitlement' },
    @{ Key = 'Azure Active Directory access review'; Value = 'Microsoft Entra access review' },
    @{ Key = 'Azure Active Directory Identity Protection'; Value = 'Microsoft Entra ID Protection' },
    @{ Key = 'Azure Active Directory pass-through'; Value = 'Microsoft Entra pass-through' },
    @{ Key = 'Azure Active Directory password'; Value = 'Microsoft Entra password' },
    @{ Key = 'Azure Active Directory Privileged Identity Management'; Value = 'Microsoft Entra Privileged Identity Management' },
    @{ Key = 'Azure Active Directory registered'; Value = 'Microsoft Entra registered' },
    @{ Key = 'Azure Active Directory reporting and monitoring'; Value = 'Microsoft Entra reporting and monitoring' },
    @{ Key = 'Azure Active Directory enterprise app'; Value = 'Microsoft Entra enterprise app' },
    @{ Key = 'Azure Active Directory cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'Azure Active Directory Premium P1'; Value = 'Microsoft Entra ID P1' },
    @{ Key = 'Azure Active Directory Premium P2'; Value = 'Microsoft Entra ID P2' },
    @{ Key = 'Azure Active Directory F2'; Value = 'Microsoft Entra ID F2' },
    @{ Key = 'Azure Active Directory Free'; Value = 'Microsoft Entra ID Free' },
    @{ Key = 'Azure Active Directory for education'; Value = 'Microsoft Entra ID for education' },
    @{ Key = 'Azure Active Directory work or school account'; Value = 'Microsoft Entra work or school account' },
    @{ Key = 'federated with Azure Active Directory'; Value = 'federated with Microsoft Entra' },
    @{ Key = 'Hybrid Azure Active Directory Join'; Value = 'Microsoft Entra hybrid join' },
    @{ Key = 'AAD External Identities'; Value = 'Microsoft Entra External ID' },
    @{ Key = 'AAD Identity Governance'; Value = 'Microsoft Entra ID Governance' },
    @{ Key = 'AAD Verifiable Credentials'; Value = 'Microsoft Entra Verified ID' },
    @{ Key = 'AAD Workload Identities'; Value = 'Microsoft Entra Workload ID' },
    @{ Key = 'AAD Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'AAD access token authentication'; Value = 'Microsoft Entra access token authentication' },
    @{ Key = 'AAD admin center'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'AAD portal'; Value = 'Microsoft Entra admin center' },
    @{ Key = 'AAD application proxy'; Value = 'Microsoft Entra application proxy' },
    @{ Key = 'AAD authentication'; Value = 'Microsoft Entra authentication' },
    @{ Key = 'AAD Conditional Access'; Value = 'Microsoft Entra Conditional Access' },
    @{ Key = 'AAD cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'AAD Connect'; Value = 'Microsoft Entra Connect' },
    @{ Key = 'AAD Connect Sync'; Value = 'Microsoft Entra Connect Sync' },
    @{ Key = 'AAD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'AAD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'AAD Domain Services'; Value = 'Microsoft Entra Domain Services' },
    @{ Key = 'AAD Enterprise Applications'; Value = 'Microsoft Entra enterprise applications' },
    @{ Key = 'AAD federation services'; Value = 'Active Directory Federation Services' },
    @{ Key = 'AAD hybrid identities'; Value = 'Microsoft Entra hybrid identities' },
    @{ Key = 'AAD identities'; Value = 'Microsoft Entra identities' },
    @{ Key = 'AAD role'; Value = 'Microsoft Entra role' },
    @{ Key = 'AAD'; Value = 'Microsoft Entra ID' },
    @{ Key = 'AAD auth'; Value = 'Microsoft Entra auth' },
    @{ Key = 'AAD-only auth'; Value = 'Microsoft Entra-only auth' },
    @{ Key = 'AAD object'; Value = 'Microsoft Entra object' },
    @{ Key = 'AAD identity'; Value = 'Microsoft Entra identity' },
    @{ Key = 'AAD schema'; Value = 'Microsoft Entra schema' },
    @{ Key = 'AAD seamless single sign-on'; Value = 'Microsoft Entra seamless single sign-on' },
    @{ Key = 'AAD self-service password reset'; Value = 'Microsoft Entra self-service password reset' },
    @{ Key = 'AAD SSPR'; Value = 'Microsoft Entra SSPR' },
    @{ Key = 'AAD SSPR'; Value = 'Microsoft Entra SSPR' },
    @{ Key = 'AAD domain'; Value = 'Microsoft Entra domain' },
    @{ Key = 'AAD group'; Value = 'Microsoft Entra group' },
    @{ Key = 'AAD login'; Value = 'Microsoft Entra login' },
    @{ Key = 'AAD managed'; Value = 'Microsoft Entra managed' },
    @{ Key = 'AAD entitlement'; Value = 'Microsoft Entra entitlement' },
    @{ Key = 'AAD access review'; Value = 'Microsoft Entra access review' },
    @{ Key = 'AAD Identity Protection'; Value = 'Microsoft Entra ID Protection' },
    @{ Key = 'AAD pass-through'; Value = 'Microsoft Entra pass-through' },
    @{ Key = 'AAD password'; Value = 'Microsoft Entra password' },
    @{ Key = 'AAD Privileged Identity Management'; Value = 'Microsoft Entra Privileged Identity Management' },
    @{ Key = 'AAD registered'; Value = 'Microsoft Entra registered' },
    @{ Key = 'AAD reporting and monitoring'; Value = 'Microsoft Entra reporting and monitoring' },
    @{ Key = 'AAD enterprise app'; Value = 'Microsoft Entra enterprise app' },
    @{ Key = 'AAD cloud-only identities'; Value = 'Microsoft Entra cloud-only identities' },
    @{ Key = 'AAD Premium P1'; Value = 'Microsoft Entra ID P1' },
    @{ Key = 'AAD Premium P2'; Value = 'Microsoft Entra ID P2' },
    @{ Key = 'AAD F2'; Value = 'Microsoft Entra ID F2' },
    @{ Key = 'AAD Free'; Value = 'Microsoft Entra ID Free' },
    @{ Key = 'AAD for education'; Value = 'Microsoft Entra ID for education' },
    @{ Key = 'AAD work or school account'; Value = 'Microsoft Entra work or school account' },
    @{ Key = 'federated with AAD'; Value = 'federated with Microsoft Entra' },
    @{ Key = 'Hybrid AAD Join'; Value = 'Microsoft Entra hybrid join' }
)

$postTransforms = @(
    @{ Key = 'Microsoft Entra ID B2C'; Value = 'Azure AD B2C' },
    @{ Key = 'Microsoft Entra ID B2B'; Value = 'Microsoft Entra B2B' },
    @{ Key = 'ME-ID B2C'; Value = 'AAD B2C' },
    @{ Key = 'ME-ID B2B'; Value = 'Microsoft Entra B2B' },
    @{ Key = 'ME-IDSTS'; Value = 'AADSTS' },
    @{ Key = 'ME-ID Connect'; Value = 'Microsoft Entra Connect' }
    @{ Key = 'Microsoft Entra ID tenant'; Value = 'Microsoft Entra tenant' }
    @{ Key = 'Microsoft Entra ID organization'; Value = 'Microsoft Entra tenant' }
    @{ Key = 'Microsoft Entra ID account'; Value = 'Microsoft Entra account' }
    @{ Key = 'Microsoft Entra ID resources'; Value = 'Microsoft Entra resources' }
    @{ Key = 'Microsoft Entra ID admin'; Value = 'Microsoft Entra admin' }
    @{ Key = ' an Microsoft Entra'; Value = ' a Microsoft Entra' }
    @{ Key = '>An Microsoft Entra'; Value = '>A Microsoft Entra' }
    @{ Key = ' an ME-ID'; Value = ' a ME-ID' }
    @{ Key = '>An ME-ID'; Value = '>A ME-ID' }
    @{ Key = 'Microsoft Entra ID administration portal'; Value = 'Microsoft Entra administration portal' }
    @{ Key = 'Microsoft Entra ID Advanced Threat'; Value = 'Azure Advanced Threat' }
    @{ Key = 'Entra ID hybrid join'; Value = 'Entra hybrid join' }
    @{ Key = 'Microsoft Entra ID join'; Value = 'Microsoft Entra join' }
    @{ Key = 'ME-ID join'; Value = 'Microsoft Entra join' }
    @{ Key = 'Microsoft Entra ID service principal'; Value = 'Microsoft Entra service principal' }
    @{ Key = 'Download Microsoft Entra Connector'; Value = 'Download connector' }
    @{ Key = 'Microsoft Microsoft'; Value = 'Microsoft' }
)

# Sort the replacements by the length of the keys in descending order
$terminology = $terminology.GetEnumerator() | Sort-Object -Property { $_.Key.Length } -Descending
$postTransforms = $postTransforms.GetEnumerator() | Sort-Object -Property { $_.Key.Length } -Descending

# Get all resx files in the current directory and its subdirectories, ignoring .gitignored files.
Write-Host "Getting all resx files in the current directory and its subdirectories, ignoring .gitignored files."
$gitIgnoreFiles = Get-ChildItem -Path . -Filter .gitignore -Recurse
$targetFiles = Get-ChildItem -Path . -Include *.resx -Recurse

$filteredFiles = @()
foreach ($file in $targetFiles) {
    $ignoreFile = $gitIgnoreFiles | Where-Object { $_.DirectoryName -eq $file.DirectoryName }
    if ($ignoreFile) {
        $excludedPatterns = Get-Content $ignoreFile.FullName | Select-String -Pattern '^(?!#).*' | ForEach-Object { $_.Line }
        if ($excludedPatterns -notcontains $file.Name) {
            $filteredFiles += $file
        }
    }
    else {
        $filteredFiles += $file
    }
}

$scriptPath = $MyInvocation.MyCommand.Path
$filteredFiles = $filteredFiles | Where-Object { $_.FullName -ne $scriptPath }

# This command will get all the files with the extensions .resx in the current directory and its subdirectories, and then filter out those that match the patterns in the .gitignore file. The Resolve-Path cmdlet will find the full path of the .gitignore file, and the Get-Content cmdlet will read its content as a single string. The -notmatch operator will compare the full name of each file with the .gitignore content using regular expressions, and return only those that do not match.
Write-Host "Found $($filteredFiles.Count) files."

function Update-Terminology {
    param (
        [Parameter(Mandatory = $true)]
        [ref]$Content,
        [Parameter(Mandatory = $true)]
        [object[]]$Terminology
    )

    foreach ($item in $Terminology.GetEnumerator()) {
        $old = [regex]::Escape($item.Key)
        $new = $item.Value
        $toReplace = '(?<!(name=\"[^$]{1,100}|https?://aka.ms/[a-z0-9/-]{1,100}))' + $($old)

        # Replace the old terminology with the new one
        $Content.Value = $Content.Value -replace $toReplace, $new
    }
}

# Loop through each file
foreach ($file in $filteredFiles) {
    # Read the content of the file
    $content = Get-Content $file.FullName

    Write-Host "Processing $file"

    Update-Terminology -Content ([ref]$content) -Terminology $terminology
    Update-Terminology -Content ([ref]$content) -Terminology $postTransforms

    $newContent = $content -join "`n"
    if ($newContent -ne (Get-Content $file.FullName -Raw)) {
        Write-Host "Updating $file"
        # Write the updated content back to the file
        Set-Content -Path $file.FullName -Value $newContent
    }
}