Eu estava tendo o problema EXACT SAME.
O problema é que o script acima na resposta anterior não considera todos os dispositivos que podem estar associados ao DPM. A maneira que o script acima está escrito, leva o primeiro dispositivo com um ID de dispositivo de [0]. (O que geralmente é atribuído à unidade de fita e não à biblioteca). Portanto, você deve abordar o dispositivo adequado no script. Você pode emitir um comando Get-DPMLibrary para obter uma listagem de todos os seus dispositivos.
Get-DPMLibrary -DPMServerName " nome do servidor "
Isso listará todos os dispositivos associados ao DPM na ordem de menor número de dispositivo [0] a maior.
A biblioteca normalmente seria listada como a segunda entrada, que é a entrada 1, pois os dispositivos começam em 0 ....
(Observe o número do dispositivo e a linha de código 3 adicionada para a variável $ DPMLibrary)
Eu também removi " Get-DPMTape $ _ | Set-DPMTape -Free " Simplesmente não funcionou!
Substituí-lo por:
$ Tape = Get-Tape -DPMLibrary $ DPMLibrary
Set-DPMTape -Tape $ Tape -Free
Nota: O Set-DPMTape -Tape $ Tape -Free Produzirá erros. (não se assuste).
Tem a ver com fitas já sendo associadas a grupos de proteção.
O código MARCARÁ todas as fitas como livres, no entanto.
(Então copie o script abaixo substituindo o seu ID de dispositivo) .... aproveite:)
Import-Module DataProtectionManager
$Server = Get-Content env:computername
$DPMLibrary = get-dpmlibrary -DPMServerName $Server
Get-DPMLibrary $Server | foreach {
write-host
write-host Starting inventory for library $DPMLibrary[2]
$result = Start-DPMLibraryInventory -DPMLibrary $DPMLibrary[2] -DetailedInventory
while (!$result.HasCompleted)
{
write-host -NoNewline "."
sleep 1
}
write-host
write-host Inventory complete for library $DPMLibrary[2]
write-host Setting tape in library $DPMLibrary[2] as free
$Tape = Get-Tape -DPMLibrary $DPMLibrary
Set-DPMTape -Tape $Tape -Free
write-host Operation completed for library $DPMLibrary[2]
}