TestimoX

API Reference

Command

New-ADXMigrationPlan

Namespace ADPlayground.PowerShell
Outputs
ADPlayground.Migrations.Core.AdMigrationPlan

Creates an AD migration plan from typed migration DSL items.

Examples

Authored help example

Example 1: Create a migration plan from DSL items and include SIDHistory due-diligence evidence.


$plan = New-ADXMigrationPlan -SourceDomain old.contoso.com -DestinationDomain new.contoso.com -SourceDomainController old-pdc.old.contoso.com -DestinationDomainController new-dc01.new.contoso.com -DestinationOrganizationalUnit 'OU=Migrated,DC=new,DC=contoso,DC=com' -SourceAuditReady -SourceTcpipClientSupportReady -ResourceAclScanCompleted -BusinessJustification CAB-1234 {
                New-ADXMigrationUser -SourceSamAccountName alice -CredentialStrategy ResetRandom -MigrateMembership
                New-ADXMigrationComputer -SourceSamAccountName 'PC001$' -OfflineDomainJoin -MigrateProfile
                New-ADXMigrationResource -Path '\\FS1\Finance' -ReAclMode AddDestinationBeforeRemoveSource
            }
            if ($plan | Test-ADXMigrationPlan) {
                $preview = $plan | Invoke-ADXMigrationPlan
                $preview.Phases | Format-Table Kind, Item, Status, Changed, Message -AutoSize
            }
        

Example 2: Inspect blockers and planned phases before execution.


$checked = $plan | Test-ADXMigrationPlan -PassThru
            $checked.Issues | Format-Table Severity, Code, Target, Message -AutoSize
            $checked.Phases | Format-Table Kind, Item, IsMutating, RequiresMachineExecutor, Description -AutoSize
        

Example 3: Create a plan where a temporary password is referenced by secret ID rather than stored in the plan.


$plan = New-ADXMigrationPlan -SourceDomain old.contoso.com -DestinationDomain new.contoso.com -DestinationOrganizationalUnit 'OU=Migrated,DC=new,DC=contoso,DC=com' -BusinessJustification CAB-1234 {
                New-ADXMigrationUser -SourceSamAccountName bob -CredentialStrategy SetTemporary -CredentialSecretReference 'vault://migration/CAB-1234/bob-temp' -ForceCredentialChangeAtNextLogon
            }
            $plan | Test-ADXMigrationPlan -PassThru | Select-Object -ExpandProperty Phases | Where-Object { $_.Kind -in 'PrepareDestination','CredentialStrategy','SidHistory' } | Format-Table Kind, Item, Description -AutoSize
        

Example 4: Plan a migration without SIDHistory for a principal that no longer needs old-resource continuity.


$plan = New-ADXMigrationPlan -SourceDomain old.contoso.com -DestinationDomain new.contoso.com -DestinationOrganizationalUnit 'OU=Migrated,DC=new,DC=contoso,DC=com' {
                New-ADXMigrationUser -SourceSamAccountName retired.contractor -NoSidHistory -CredentialStrategy Manual
                New-ADXMigrationResource -Path '\\FS1\Archive' -ReAclMode ReportOnly
            }
            $plan | Test-ADXMigrationPlan -PassThru | Select-Object -ExpandProperty Phases | Format-Table Kind, Item, Description -AutoSize
        

Common Parameters

This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.

For more information, see about_CommonParameters.

Syntax

New-ADXMigrationPlan [-Definition <ScriptBlock>] -DestinationDomain <string> -SourceDomain <string> [-BusinessJustification <string>] [-DestinationDomainController <string>] [-DestinationOrganizationalUnit <string>] [-Item <AdMigrationItem[]>] [-ResourceAclDependencyCount <int>] [-ResourceAclScanCompleted] [-SourceAuditReady] [-SourceDomainController <string>] [-SourceTcpipClientSupportReady] [<CommonParameters>]
#

Parameters

Definition ScriptBlock optionalposition: 0pipeline: false
Migration definition script block returning New-ADXMigration* items.
DestinationDomain string requiredposition: namedpipeline: false
Default destination DNS domain.
SourceDomain string requiredposition: namedpipeline: false
Default source DNS domain.
BusinessJustification string optionalposition: namedpipeline: false
Default business justification or change ticket.
DestinationDomainController string optionalposition: namedpipeline: false
Default destination domain controller.
DestinationOrganizationalUnit string optionalposition: namedpipeline: false
Default destination organizational unit distinguished name for new or updated directory objects.
Item AdMigrationItem[] optionalposition: namedpipeline: false
Explicit migration items, useful for programmatic callers.
ResourceAclDependencyCount int optionalposition: namedpipeline: false
Number of resource ACL dependencies still relying on source SIDs.
ResourceAclScanCompleted SwitchParameter optionalposition: namedpipeline: false
Confirms resource ACL dependency discovery completed before SIDHistory migration.
SourceAuditReady SwitchParameter optionalposition: namedpipeline: false
Confirms source-domain auditing prerequisites for SIDHistory migration.
SourceDomainController string optionalposition: namedpipeline: false
Default source PDC emulator or domain controller.
SourceTcpipClientSupportReady SwitchParameter optionalposition: namedpipeline: false
Confirms source TcpipClientSupport prerequisites for SIDHistory migration.

Outputs

ADPlayground.Migrations.Core.AdMigrationPlan