When using powershell contains method you should be aware of the type of the object that is used.
Lets examine the below string which was used with contains on a powershell script.
Processed 384 pages for database ‘restore’, file ‘restore’ on file 1.
Processed 2 pages for database ‘restore’, file ‘restore_log’ on file 1.
RESTORE DATABASE successfully processed 386 pages in 0.004 seconds (752.929 MB/sec).
The string was stored on $result variable and I wanted to capture if a specific string was included in the variable. Although the string is included in the variable the result was false.
After investigating I was able to figure that the object type of the $result variable was an object and Contains could not evaluate successfully
In this situation you would have to cast the object on a string data type to evaluate correctly.
For example when using Get-Content you could cast to a string like below.
[string]$result = Get-Content C:\Users\galexiou\Desktop\2.txt
Then the object type will be of type string
The evaluation will work as expected.