Functions/function-Test-BackupObject.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
function Test-BackupObject { <# .SYNOPSIS Check an Object is of type BackupOpbject .DESCRIPTION Check an Object is of type BackupOpbject. returns $true if it is, $false if not .EXAMPLE Test-BackupObject -BackupObject $BackupObject .Example $BackupObject | Test-BackupObject .Example Test-BackupObject $BackupObject .PARAMETER BackupObject object to test #> [CmdletBinding()] param ( [Parameter(Mandatory=$True, ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True)] [object]$backupObject ) Write-Verbose "Test-BackupObject - Entering" $properties = ( 'filename', 'LastLSN', 'BackupType', 'StartDate', 'FinishDate', 'DatabaseName', 'SQLVersion', 'TotalSize', 'Files', 'RelocateFile', 'Position' ) if ($backupObject.gettype().name -ne "PSCustomObject"){ Write-Verbose "Test-BackupObject - Wrong type of object, false" return $false } if ((($backupObject | Get-Member).count) -ne ($properties.count + 4)){ Write-Verbose "Test-BackupObject - Wrong number of properties, false" return $false } $counter = 0 foreach ($property in $properties){ if ($backupObject.$property -eq ''){ $counter++ } } if (($backupobject | Get-Member).count -ne $properties.count+4){ Write-Verbose "Test-BackupObject - Not all properties matched, false" return $false } Write-Verbose "Test-BackupObject - Leaving" return $true } |