This was a bit of a different problem. How to find if a property in a custom object has a NULL value. The client had a collection of objects that they gathered from their environment with PowerShell. They needed a way to find out if any of the NoteProperties had a NULL value. I created the function below. You send it the collection of objects you are interested in probing for a NULL property value and it will return the index number of the object in the collection that has one.
Function Find-NullProperty
{
[cmdletbinding(HelpUri="http://get-help-jason-yoder.blogspot.com/2012/10/find-nullproperty.html")]
Param (
[Parameter(Mandatory=$True)]$Object
)
# Check to see if an object has any NULL values in
# its properties.
# Create an object to output to the calling statement.
$Output = @()
# Index number to return for to denote the instance of an object
# (should multiple instances be sent) that the Null value if found
# in.
$Index = -1
# Extract the names of the properties of the object.
$PropNames = (($Object | GM) |
Where {$_.MemberType -eq "NoteProperty"} |
Select-Object -Property Name).Name
#Cycle through each object
ForEach ($Obj in $Object)
{
# Increment the Index.
$Index++
# Set to $True is a $Null value
#is found in a property.
$NullFound = $False
ForEach ($Prop in $PropNames)
{
If ($Obj.$Prop -contains $Null)
{
$NullFound = $True
}
}
If ($NullFound)
{
# Create the object to be returned.
$Obj = New-Object -TypeName PSObject
# Add object members
$Obj | Add-Member `
-MemberType NoteProperty `
-Name "Index" `
-Value $Index
# Send the object to the output array.
$Output += $Obj
}
}
Write-Output $Output
<#
.SYNOPSIS
Indicates if an object has a property that is $NULL
.DESCRIPTION
Search through a collection of custom objects and returns the index
number of any instance that has a $NULL value in a NoteProperty
.PARAMETER Object
The Object, or collection of objects that may contain a NULL value
in a note property.
.EXAMPLE
Find-NullProperty $Object
Index
-----
1
2
Returns the index number of instance of a collection of object in which
a NoteProperty has a NULL value.
.NOTES
Provided without warranty or support.
Author: Jason Yoder.
#>
}
Comments