The following script runs detailed inventory on all unknown tapes in all the libraries attached to the specified DPM server. Save this script as a .ps1 file and run it. Usage and examples of scripts can be found by calling them with ‘-?’ or ‘-help’ from inside DPM Management Shell.
This is for manually running the detailed inventory job. Btw, for running the inventory on a regular scheduled basis, then use Get/Set-MaintenanceJobStartTime and DPM will automatically run the inventory at the specified time.
-------------------------------- Start of Script ----------------------------------------
param ([string] $DPMServerName)
if(("-?","-help") -contains $args[0]){ Write-Host "Description: This script runs detailed inventory on all unknown tapes in all the libraries attached to the specified DPM server." Write-Host "Usage: Inventory-UnknownTapes.ps1 [-DPMServerName] <Name of the DPM server>" Write-Host "Example: Inventory-UnknownTapes.ps1 mohitc02"
exit 0}
if (!$DPMServerName){ $DPMServerName = Read-Host "DPM server name"
if (!$DPMServerName) { Write-Error "Dpm server name not specified." exit 1 }}
if (!(Connect-DPMServer $DPMServerName)){ Write-Error "Failed to connect To DPM server $DPMServerName" exit 1}
$libraryList = Get-DPMLibrary -DPMServerName $DPMServerName
foreach ($library in $libraryList){ $unknownTapeList = @(Get-Tape -DPMLibrary $library | ? {$_ -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.LibraryManagement.ArchiveMedia] -and $_.OmidState -eq "Unknown"})
if ($unknownTapeList.Length -gt 0) { Write-Host "Starting detailed inventory on $($library.UserFriendlyName) for $($unknownTapeList.Length) tape(s)." Start-DPMLibraryInventory -DPMLibrary $library -DetailedInventory -Tape $unknownTapeList }}
----------------------------------- End of Script ---------------------------------------
- Mohit Chakraborty