The Powershell not equal operator is –ne. This how you use it.
When dealing with numbers:
PS> $a = 3
PS> $b = 5
PS> $a -ne $b
True
When dealing with strings you have a bit more choice:
PS> $a = ‘abcd’
PS> $b = ‘efgh’
PS> $a -ne $b
True
By default PowerShell is case insensitive so
PS> $a = ‘abcd’
PS> $b = ‘ABCD’
PS> $a -ne $b
False
If the only difference is case then –ne reports they are the same.
If you need a case insensitive test use –cne
PS> $a = ‘abcd’
PS> $b = ‘ABCD’
PS> $a -cne $b
True
Because there are case differences the strings are different so you get a result of True
If you need a case insensitive test use –ine so you know you’re ignoring case
PS> $a = ‘abcd’
PS> $b = ‘ABCD’
PS> $a -ine $b
False
The major problem with use not equal is that you’re in double negative
if X –ne Y then it means they are the same if the result is false
PS> $a = 3
PS> $b = 3
PS> $a -ne $b
False
Its always easier to comprehend a test for equality rather than inequality especially if you’re nesting tests.