diff --git a/Misc/Fix-VSSBackup.ps1 b/Misc/Fix-VSSBackup.ps1 index 12a51d7..639048b 100644 --- a/Misc/Fix-VSSBackup.ps1 +++ b/Misc/Fix-VSSBackup.ps1 @@ -54,6 +54,19 @@ param( ) ) +# ---------- Auto-defaults wanneer GEEN parameters zijn meegegeven ---------- +$NoParams = ($PSBoundParameters.Count -eq 0) +if ($NoParams) { + try { + if (-not (Test-Path -LiteralPath 'C:\Temp')) { + New-Item -ItemType Directory -Path 'C:\Temp' -Force | Out-Null + } + } catch {} + $LogPath = "C:\Temp\VSS-Restart-$(Get-Date -Format 'yyyyMMdd_HHmmss').log" +} +# Force-effectiviteit wordt later bepaald met $ForceEffective i.p.v. $Force direct te wijzigen +$ForceEffective = ($NoParams -or $Force.IsPresent) + # ---------- Helpers ---------- function Write-Log { param([string]$Message) @@ -69,9 +82,9 @@ function Test-VssErrors { $filters = @( @{ LogName='Application'; ProviderName='VSS' }, - @{ LogName='System'; ProviderName='VolSnap' }, # Volsnap driver errors - @{ LogName='Application'; ProviderName='Backup'; }, # Sommige backupapps loggen onder 'Backup' - @{ LogName='Application'; ProviderName='Windows Server Backup' } # WSB + @{ LogName='System'; ProviderName='VolSnap' }, # Volsnap driver errors + @{ LogName='Application'; ProviderName='Backup' }, # Sommige backupapps loggen onder 'Backup' + @{ LogName='Application'; ProviderName='Windows Server Backup' } # WSB ) $events = foreach ($f in $filters) { @@ -196,7 +209,7 @@ if ($RequireFailedWriter -and $failedWriters.Count -eq 0) { if ($shouldAct) { Write-Log "Services worden herstart. Aantal in lijst: $($ServiceList.Count)." foreach ($svcName in $ServiceList) { - Restart-ServiceSafe -Name $svcName -ForceStop:$Force.IsPresent + Restart-ServiceSafe -Name $svcName -ForceStop:$ForceEffective } Start-Sleep -Seconds 5