Glad you got it working
@iihaus; I want to comment a bit on "sane" practices for anything powershell, specifically text validation/regex since I know we've had a lot of topics on this forum from many users about string validation issues and Powershell "nuances".
Powershell is not great at it unlike bash or other sh descendants, so it's best to avoid it whenever possible. As best I know, every object our cmdlets return will have an ID and also potentially other properties with IDs linking to related resources (e.g., a CBackup object will have RepositoryID, JobID, etc) and many cmdlets will accept -Id as a parameter making for fast lookups from the DB typically.
Powershell has some weird behaviors with strings, especially if you use non-alphanumerics like brackets (e.g { } or [ ] or ( ) ) or diacritic marks, stuff like that. There are workarounds, but they're ugly and don't always work. Just avoid strings
Whenever possible, use those UUIDs, it will save you many headaches. Similarly, you can pre-populate some arrays with things like Get-VBRBackup, Get-VBRRestorePoint, etc at the beginning of monitoring scripts and just have nice data arrays you can pull from via the UUIDs you need.
Try to avoid string validation whenever possible imo, it's just a headache especially when you can pipe to Where-Object {$_.[relevantProperty] -eq "your uuid"} or use -Id parameter.
Study the objects returned by Get-VBRJob, Get-VBRBackup, Get-VBRRestorePoint by piping them to Get-Member (or gm for short) and just see how they relate to each other. It will make your scripting way more simple, and if any relationship isn't clear, feel free to ask here.
If people would like a "cheat sheet" on how the main cmdlets relate to one another, this can be created if there's enough interest.