top of page

Streamline NAV Tenant Synchronization with PowerShell

Are you tired of manually rerunning powershell scripts when an error occurs? Like synchronizing your NAV (Navision) tenant and dealing with potential errors?


We've got a handy PowerShell try-catch example that will make your life easier.


This is just an example and you shouldn't drop your SQL tables ;-)

So handle with care.



Install-Module SqlServer
Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\140\Service\NavAdminTool.ps1"
Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\140\Service\Microsoft.Dynamics.Nav.Management.psd1"


$done = $false
while ($done -eq $false)
{
    try {  
        Sync-NAVTenant –ServerInstance BC140 -tenant default -ErrorAction Stop -Force
        $done = $true
    }
    catch {
        $message = $_.Exception.Message
        $tablename = $message | Select-String -Pattern '\"(.*\$.*)"'
        $deleteQuery = 'drop table [dbo].['+$tablename.matches.groups[1]+']'
        Write-Host $deleteQuery
        #$done = $true
        if ($tablename.matches.groups[1].Value.contains('$')) {
            Invoke-Sqlcmd -ServerInstance SQLSERVER -Database DATABASENAME -Query $deleteQuery       
        }
        else
        {
            Write-Error $message
            $done = $true
        }
        
    }
}


The script revolves around the Sync-NAVTenant cmdlet, which simplifies the synchronization of NAV tenants on a specified server instance.


To get started, simply copy the script into your PowerShell environment, adjust any necessary parameters, and execute it.


Enhance your NAV tenant management today with this powerful PowerShell script.

Experience the convenience and efficiency it brings to your daily operations.


Happy doing!

43 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen
bottom of page