Module/Administration/Import-BCSDynamicsNavModules.ps1
<#
.SYNOPSIS Import NavAdminTool modules via a BC Server Instance .DESCRIPTION Import NavAdminTool modules via a BC Server Instance .PARAMETER serverInstance The Business Central Server Instance to import module from .EXAMPLE Import-BCSDynamicsNavModules -ServerInstance BC .NOTES Author: Mathias Stjernfelt Website: http://www.brightcom.se #> <# .SYNOPSIS .DESCRIPTION .EXAMPLE .NOTES Author: Mathias Stjernfelt Website: http://www.brightcom.se #> function Import-BCSDynamicsNavModules { Param ( [Parameter(ValueFromPipelineByPropertyName, Mandatory = $false)] [string]$serverInstance, [Parameter(ValueFromPipelineByPropertyName, Mandatory = $false)] [string]$bcVersion ) begin {} process { # Remove the module if it's installed if (Get-Module -Name NavAdminTool -All) { Remove-Module -Name NavAdminTool -Force Write-Host "NavAdminTool module has been removed." } else { Write-Host "NavAdminTool module is not installed." } if (-not [string]::IsNullOrEmpty($serverInstance)) { $ServicePath = (Get-WmiObject win32_service | Where-Object { $_.Name -eq "MicrosoftDynamicsNavServer`$${serverInstance}" } | Select-Object Name, DisplayName, @{Name = "Path"; Expression = { $_.PathName.split('"')[1] } }).Path $modulePath = Get-Item (Join-Path (Split-Path -Path $ServicePath -Parent) 'NavAdminTool.ps1') Import-Module $modulePath -Force | Out-Null Write-Host "$modulePath has been imported using ServerInstance." return; } if (-not [string]::IsNullOrEmpty($bcVersion)) { $modulePath = Get-Item "C:\Program Files\Microsoft Dynamics 365 Business Central\$bcVersion\Service\NavAdminTool.ps1" Import-Module $modulePath -Force | Out-Null Write-Host "$modulePath has been imported using BCVersion." return; } if ([String]::IsNullOrEmpty($serverInstance) -and [String]::IsNullOrEmpty($bcVersion)) { $modulePath = Get-Item 'C:\Program Files\Microsoft Dynamics 365 Business Central\*\Service\NavAdminTool.ps1' Import-Module $modulePath[0] -Force | Out-Null Write-Host "$($modulePath[0]) has been imported." return; } Write-Host "No module has been imported." } end { } } Export-ModuleMember -Function Import-BCSDynamicsNavModules |