Vide paramètre n'est pas Null dans la fonction

Compte tenu de cette fonction de base:

Function TestFunction {
    Param ( [int]$Par1, [string]$Par2, [string]$Par3 )
    If ($Par1 -ne $Null) { Write-Output "Par1 = $Par1" }
    If ($Par2 -ne $Null -or $Par2 -ne '') { Write-Output "Par2 = $Par2" }
    If ($Par3 -ne $Null) { Write-Output "Par3 = $Par3" }
}
TestFunction -Par1 1 -Par3 'par3'

...la sortie est:

Par1 = 1
Par2 = 
Par3 = par3

Même si je n'ai pas passer n'importe quoi dans le $Par2 variable, il n'est toujours pas la valeur Null ou vide. Ce qui s'est passé, et comment puis-je réécrire l'instruction afin que la deuxième if est fausse (False) et le script-bloc ne soit pas exécutée?

(J'ai ajouté le -or $Par2 -ne '' juste pour tester, il se comporte de la même avec et sans elle.)

InformationsquelleAutor Mark | 2015-04-19