We willen beleid voor voorwaardelijke toegang importeren in de Microsoft Entra-tenant. Nu kunnen we het beleid voor voorwaardelijke toegang herstellen met behulp van het Microsoft Entra-beheercentrum. Maar dat is een enkele beleidsupload voor voorwaardelijke toegang. Wat moet ik doen als u meerdere beleidsregels voor voorwaardelijke toegang hebt die u wilt importeren? PowerShell is de gemakkelijkste en snelste manier. In dit artikel leert u hoe u beleid voor voorwaardelijke toegang vanuit een JSON-bestand in Microsoft Entra importeert met Microsoft Graph PowerShell.
Voordat je begint
U moet het beleid voor voorwaardelijke toegang in JSON-bestanden hebben, omdat het script de JSON-bestanden doorloopt en deze in de Microsoft Entra-tenant importeert.
Als u de JSON-bestanden al heeft, bent u klaar om te gaan. Als dit niet het geval is, lees dan meer over Beleid voor voorwaardelijke toegang exporteren.
Installeer Microsoft Graph PowerShell
Voordat we verder kunnen gaan en al het beleid voor voorwaardelijke toegang in de Microsoft Entra-tenant kunnen herstellen, moeten we Microsoft Graph PowerShell installeren.
Start Windows PowerShell als beheerder en voer de onderstaande opdracht uit.
Install-Module Microsoft.Graph -ForceBelangrijk:Update altijd naar de nieuwste versie van de Microsoft Graph PowerShell-module voordat u een cmdlet of script uitvoert om fouten en onjuiste resultaten te voorkomen.
Nu we de Microsoft Graph PowerShell SDK-module hebben geïnstalleerd, kunnen we naar de volgende stap gaan.
Import-CAPolicies PowerShell-script voorbereiden
Maak twee mappen op de(C:)drijfveer:
Lees ook:Hoe contacten naar een nieuwe iPhone te importeren
- Temp
- Scripts
Download en plaats het Import-CAPolicies.ps1 PowerShell-script in hetC:scriptsmap. Het script importeert de JSON-bestanden die aanwezig zijn inC:tempmap naar de Microsoft Entra-tenant.
Zorg ervoor dat het bestand is gedeblokkeerd om fouten bij het uitvoeren van het script te voorkomen. Lees meer in het artikel Fout niet digitaal ondertekend bij het uitvoeren van PowerShell-script.
Een andere optie is om de onderstaande code te kopiëren en in Kladblok te plakken. Geef het de naamImport-CAPolicies.ps1en plaats deze in deC:scriptsmap.
<#
.SYNOPSIS
Import-CAPolicies.ps1
.DESCRIPTION
Import Conditional Access policies from JSON files for restore purposes.
.LINK
www.alitajran.com/import-conditional-access-policies/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 11/19/2023 - Initial version
#>
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Policy.Read.All", "Policy.ReadWrite.ConditionalAccess", "Application.Read.All"
# Define the path to the directory containing your JSON files
$jsonFilesDirectory = "C:temp"
# Get all JSON files in the directory
$jsonFiles = Get-ChildItem -Path $jsonFilesDirectory -Filter *.json
# Check if there are no JSON files
if ($jsonFiles.Count -eq 0) {
Write-Host "No JSON files found in the directory to import." -ForegroundColor Yellow
}
else {
# Loop through each JSON file
foreach ($jsonFile in $jsonFiles) {
try {
# Read the content of the JSON file and convert it to a PowerShell object
$policyJson = Get-Content -Path $jsonFile.FullName | ConvertFrom-Json
# Create a custom object
$policyObject = [PSCustomObject]@{
displayName = $policyJson.displayName
conditions = $policyJson.conditions
grantControls = $policyJson.grantControls
sessionControls = $policyJson.sessionControls
state = $policyJson.state
}
# Convert the custom object to JSON with a depth of 10
$policyJsonString = $policyObject | ConvertTo-Json -Depth 10
# Create the Conditional Access policy using the Microsoft Graph API
$null = New-MgIdentityConditionalAccessPolicy -Body $policyJsonString
# Print a success message
Write-Host "Policy created successfully: $($policyJson.displayName) " -ForegroundColor Green
}
catch {
# Print an error message if an exception occurs
Write-Host "An error occurred while creating the policy: $_" -ForegroundColor Red
}
}
}Dit is hoe het eruit ziet.

Bereid JSON-bestanden voor voorwaardelijke toegang voor
Zorg ervoor dat alle JSON-bestanden van het CA-beleid aanwezig zijnC:temp.

Verwijder al het beleid voor voorwaardelijke toegang met PowerShell
We hebben veel CA-beleidsregels beschikbaar in onze Microsoft Entra-tenant en we willen deze verwijderen. Stel dat u het beleid dat al aanwezig is wilt behouden, of dat het al leeg is, dan kunt u deze stap overslaan.
Laten we al het CA-beleid verwijderen met het Remove-CAPolicies.ps1 PowerShell-script.
<#
.SYNOPSIS
Remove-CAPolicies.ps1
.DESCRIPTION
Remove all Conditional Access policies from Microsoft Entra.
.LINK
www.alitajran.com/import-conditional-access-policies/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 11/19/2023 - Initial version
#>
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Policy.Read.All", "Policy.ReadWrite.ConditionalAccess", "Application.Read.All"
# Get all policies
$policies = Get-MgIdentityConditionalAccessPolicy -All
# Check if there are any policiesX
if ($policies.Count -eq 0) {
Write-Host "There are no Conditional Access policies to delete." -ForegroundColor Yellow
}
else {
# Loop through each policy and delete it
foreach ($policy in $policies) {
Remove-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $policy.Id
Write-Host "Policy deleted successfully: $($policy.DisplayName)" -ForegroundColor Green
}
}Nu er geen beleid voor voorwaardelijke toegang meer is in de Microsoft Entra-tenant, gaan we het CA-beleid toevoegen door de JSON-bestanden te importeren.
Voer het importbeleid voor voorwaardelijke toegang uit PowerShell-script
Voer het PowerShell-script Import-CAPolicies.ps1 uit om al het JSON-beleid voor voorwaardelijke toegang op te halenC:tempmap en importeer deze naar de Microsoft Entra-tenant.
C:scriptsImport-CAPolicies.ps1Opmerking:Als u al over het CA-beleid in Microsoft Entra beschikt, wordt dit niet overschreven en wordt ook niet gecontroleerd of het beleid aanwezig is. Het voegt het beleid met dezelfde naam toe, en u kunt ze herkennen als u naar de aanmaakdatum kijkt. U kunt het beleid dat al aanwezig is verwijderen of uitschakelen.
De uitvoer toont:
Policy created successfully: Block legacy authentication
Policy created successfully: Require multifactor authentication for all usersControleer het beleid voor voorwaardelijke toegang
Controleer of het beleid voor voorwaardelijke toegang succesvol is geïmporteerd met PowerShell. Voer deGet-MgIdentityConditionalAccessPolicycmdlet.
Get-MgIdentityConditionalAccessPolicy -AllZo ziet het er in ons voorbeeld uit.
Id CreatedDateTime Description DisplayName ModifiedDateTime State
-- --------------- ----------- ----------- ---------------- -----
a800fccb-1912-45b6-ad7b-634e60a33c6c 11/19/2023 5:14:01 PM Block legacy authentication disabled
6bfb32e1-92cf-40fb-8fce-0143bcb39584 11/19/2023 5:14:02 PM Require multifactor authentication for all users enabledEen andere manier om te controleren of het beleid voor voorwaardelijke toegang met succes is geïmporteerd, is via het Microsoft Entra-beheercentrum:
- Meld u aan bijMicrosoft Entra-beheercentrum
- UitbreidenIdentiteit > Bescherming
- Klik opVoorwaardelijke toegang
- SelecteerBekijk al het beleid
In ons voorbeeld zijn er twee CA-beleidsregels. Eén van de beleidsregels is ingeschakeld en de andere is uitgeschakeld.

Alles ziet er geweldig uit!
Heeft dit u geholpen bij het herstellen van het beleid voor voorwaardelijke toegang van JSON-bestanden naar de Microsoft Entra-tenant?
Conclusie
U hebt geleerd hoe u beleid voor voorwaardelijke toegang importeert met PowerShell. Het is sneller om het CA-beleid te importeren met PowerShell als u meer dan één CA-beleid heeft. Maak eerst verbinding met Microsoft Graph PowerShell en voer het Import-CAPolicies PowerShell-script uit. Daarna zijn al het beleid voor voorwaardelijke toegang en hun configuraties beschikbaar in Microsoft Entra.
Vond je dit artikel leuk? Mogelijk vindt u het ook leuk om Microsoft Entra ID-gebruikers naar CSV te exporteren met PowerShell. Vergeet ons niet te volgen en dit artikel te delen.














