In order to do this, we first have to disable Veeam's automatic logic to assign tapes to vaults. (We will have to write our own logic to perform this operation, since Veeam doesn't support how we exactly do things.)
Anyway, when I went to try to do this, I ran into some unexpected difficulties with the Set-VBRTapeMediaPool option.
First, it appears that the -Library option is improperly set as "mandatory". This doesn't make sense, since we don't want to change the Library the pools are assigned to, we want to leave those settings untouched.
Second, it appears that the -MoveOfflineToVault option is done as a switch, which makes it difficult to say "no", normally just omitting a switch is how you "disable" it, but then will the cmdlet know to actually turn it off? I hope my question makes sense, this parameter IMO should be a boolean parameter, not a switch.
Anyway, this is what I've tried:
Code: Select all
PS C:\Users\redacted> $p = Get-VBRTapeMediaPool
PS C:\Users\redacted> $p | where MoveOfflineToVault | Set-VBRTapeMediaPool -MoveOfflineToVault:$false
Set-VBRTapeMediaPool : The input object cannot be bound because it did not contain the information required to bind all mandatory parameters: Library
At line:1 char:33
+ ... MoveOfflineToVault | Set-VBRTapeMediaPool -MoveOfflineToVault:$false
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (<redacted>:PSObject) [Set-VBRTapeMediaPool], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectMissingMandatory,Veeam.Backup.PowerShell.Cmdlets.SetVBRTapeMediaPool
So, since it seems the Powershell cmdlets for doing this seem to be a bit lacking in their design, what might I try to use instead?
I also have a support case open for this, but the support wasn't able to get me an immediate answer on this without going to Engineering, so I suspect taking it here on the forums as well would be useful.
#Edited by Mod: Removed Contract ID