functions/service/Manage-DynamicsNavService.ps1
function Manage-DynamicsNavService { <# .SYNOPSIS Startet, stoppt oder startet eine Dynamics NAV/BC Serviceinstanz neu. .DESCRIPTION Diese Funktion überprüft den Status der angegebenen Dynamics NAV/Business Central Serverinstanz und führt die gewünschte Aktion (Start, Stop oder Restart) aus. Falls die nötigen Cmdlets noch nicht importiert wurden, erfolgt dies automatisch über Import-DynamicsNavModule. .PARAMETER PlatformVersion Die installierte Dynamics NAV/BC Plattformversion (z. B. "150"). .PARAMETER ServerInstance Der Name der Dynamics NAV/BC Serverinstanz, z. B. "BC150". .PARAMETER Action Die gewünschte Aktion, die auf die Serverinstanz angewendet wird. Mögliche Werte: Start, Stop, Restart. .EXAMPLE Manage-DynamicsNavService -PlatformVersion 150 -ServerInstance "BC150" -Action Start Startet die Serverinstanz "BC150", sofern sie nicht bereits läuft. .EXAMPLE Manage-DynamicsNavService -PlatformVersion 150 -ServerInstance "BC150" -Action Restart Startet die Instanz neu, falls sie bereits läuft. .INPUTS Keine. .OUTPUTS Keine. Gibt Statusmeldungen auf der Konsole aus. .NOTES Autor: Dein Name Datum: 2025-06-05 #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string]$PlatformVersion, [Parameter(Mandatory = $true)] [string]$ServerInstance, [Parameter(Mandatory = $true)] [ValidateSet("Start", "Stop", "Restart")] [string]$Action ) if (-not (Get-Command -Name Stop-NAVServerInstance -ErrorAction SilentlyContinue)) { Import-DynamicsNavModule -PlatformVersion $PlatformVersion } $instance = Get-NAVServerInstance -ServerInstance $ServerInstance if (-not $instance) { throw "ServerInstance '$ServerInstance' wurde nicht gefunden!" } switch ($Action) { "Start" { if ($instance.State -ne "Running") { Start-NAVServerInstance -ServerInstance $ServerInstance | Out-Null Write-Host "ServerInstance '$ServerInstance' gestartet." } else { Write-Host "ServerInstance '$ServerInstance' läuft bereits." } } "Stop" { if ($instance.State -eq "Running") { Stop-NAVServerInstance -ServerInstance $ServerInstance | Out-Null Write-Host "ServerInstance '$ServerInstance' gestoppt." } else { Write-Host "ServerInstance '$ServerInstance' ist nicht aktiv." } } "Restart" { if ($instance.State -eq "Running") { Stop-NAVServerInstance -ServerInstance $ServerInstance | Out-Null Write-Host "ServerInstance '$ServerInstance' gestoppt." Start-Sleep -Seconds 3 } Start-NAVServerInstance -ServerInstance $ServerInstance | Out-Null Write-Host "ServerInstance '$ServerInstance' gestartet." } } } |