Public/Set-AGMLibImage.ps1
Function Set-AGMLibImage ([array]$imagelist,$filename,[string]$imagename,[string]$label) { <# .SYNOPSIS Sets the label for an image or a range of images using either an array of images or a CSV file .EXAMPLE Set-AGMLibImage -imagename Image_1234 -label "ConfirmedGood" Set the label for the image with imagename Image_1234 .EXAMPLE Set-AGMLibImage -imagelist $imagelist Uses the $imagelist variable that you need to create beforehand that lists imagname, image ID and new label and sets the label specified for each image .EXAMPLE Set-AGMLibImage -filename fileofimages.csv Loads the CSV file fileofimages.csv and then for each image in the file, sets the label specified for that image in that file .DESCRIPTION We can create an imagelist several ways. This method literally gets every image $imagelist = Get-AGMImage | select id,backupname,label We could update the label field like this: foreach ($image in $imagelist) { $image.label = "Needs Checking" } Then run the command: Set-AGMLibImage -imagelist $imagelist We could then export like this: $imagelist | Export-Csv -Path images.csv Then edit the file and when reading save the CSV and run this command: Set-AGMLibImage -filename images.csv Another way to create the image list is with: New-AGMLibImageRange #> if ( (!($AGMSESSIONID)) -or (!($AGMIP)) ) { Get-AGMErrorMessage -messagetoprint "Not logged in or session expired. Please login using Connect-AGM" return } $sessiontest = Get-AGMVersion if ($sessiontest.errormessage) { Get-AGMErrorMessage -messagetoprint "AGM session has expired. Please login again using Connect-AGM" return } if ((!($imagelist)) -and (!($filename)) -and (!($imagename))) { Write-host "This function is used to label a large number of images in a single command. This is done by supplying one of the following: -- A list of images to label, normally created with New-AGMLibImageRange. We then use: Set-AGMLibImage -imagelist <imagelist> -- A CSV file contained a list of images with new labels. The file needs to have at least id,backupname,label as headings. You could use New-AGMLibImageRange to create this file. Then use: Set-AGMLibImage -filename <filename.csv> -- An imagename. You could learn this in the AGM Web GUI. Then use: Set-AGMLibImage -imagename <imagename> -label <newlabel>" } if ($filename) { if ([IO.File]::Exists($filename)) { $imagelist = Import-Csv -Path $filename } } if ($imagelist) { if ((!($imagelist.id)) -or (!($imagelist.label)) -or (!($imagelist.backupname))) { Get-AGMErrorMessage -messagetoprint "The imagelist specified with -imagelist needs to contain the following fields: id, backupname, label" return } } if ($imagename) { if (!($label)) { [string]$label = Read-host "Label" } Set-AGMImage -imagename $imagename -label $label } else { foreach ($image in $imagelist | where-object {$_.label.length -gt 0}) { Set-AGMImage -id $image.id -label $image.label -imagename $image.backupname } } } |